增强学习(Reinforcement Learning)
1. 增强学习基础
什么是增强学习
通过训练学到最优的state -action映射关系的过程,使得agent得到最好的value/reward。
- Agent:要学习的智能程序;
- Policy:程序知道所处某状态后采取行为的策略(复杂情况DL,简单情况lookup table)
- Environment:智能程序交互外界环境,接受action产生状态变化,返回reward,可以是真实世界,游戏模拟器,棋牌等。
激励方程 – reward function
某次行为结果产生的激励,如分数的增加;
定义增强学习的目的。
价值方程 – value function
agent 能够带来的长期累计回报,如累计的时间转换为价值;
激励方程短期,价值方程长期。
环境模型 – Model of the environment
环境模拟模型,模拟action作用之后环境返回的价值、激励以及状态的变化,模拟器中不需要,真实世界中有知道训练意义。
增强学习中的问题
- 策略学习policy learning
policy梯度学习
(每一个策略的概率不同,好的策略概率大) - 价值、回报迭代学习
确定方法:Q-learning;DQN,DQN扩展。
(确定策略执行后得到回报的概率) - 环境模型学习
知道此刻的状态以及行为(s,a)预测下一刻的状态以及回报,模拟真实的环境反馈。
Q-learning
- 下一状态最大回报作为价值
Q(st,at)=maxRt+1 - 能够达到价值最大的行为作为策略
π(s)=argmaxaQ(s,a) - 目标价值由当前回报和t+1时刻的价值
Q(s,a)=r+γmaxa′Q(s′,a′)
算法:
initialize Q[num_states, num_actions] arbitrarily
observe initial state s
repeat
select and carry out an action a
ovserve reward R and new state s'
Q(s,a) = R(s,a)+r*max(Q(s',ai))
until terminated
Q-learning 实例
假设我们在建筑物中连接了5个房间,如下图所示。 我们将每个房间的号码从0到4编号。建筑物的外部可以被认为是一个大的房间(5)。 注意,门1和4可以从5室(外部)进入建筑物。
我们可以在图表上表示房间,每个房间作为一个节点,每个门作为一个链接。
对于这个例子,我们想把智能体放在任何房间里,从那个房间里到外面去(这将是我们的目标房间)。 换句话说,目标房间是第5号。为了将这个房间设定为目标,我们将把每个门的奖励值(即节点之间的链接)相关联。 直接导向目标的门立刻得到100,其他没有直接连接到目标房间的门没有奖励。 因为门是双向的(0可以到4,4也可以到0),每个房间分配两个箭头。 每个箭头包含即时奖励值,如下所示:
Q-Learning中包括术语“state”和“action”。
我们会称每个房间为“state”,智能体从一个房间到另一个房间的运动将是一个“action”。 在我们的图中,“state”被描绘为一个节点,而“action”由箭头表示。
我们可以将状态图和即时奖励值构成奖励表矩阵R,如下所示:
我们将首先设置学习参数 γ=0.8 的值,将初始状态设置为Room 1。
将矩阵Q初始化为零矩阵:
- 假设:当前状态s:1,下一步随机到s:5。
Q(1,