机器学习:强化学习基础

阅读量 ,评论量

基础

Q-learning

关键:将(采取动作后的新状态下的最大Q值 + 采取该行动后得到的奖励)作为原状态下对应行动的Q值的目标值。

notation 含义
s 当前状态
s_ 采取动作后的新状态
a 动作
Q表 在各个状态s下采取各个动作a得到的Q值组成的表
Q(s0, a0) 在状态s0下采取动作a0得到的Q值
Q(s0) 在状态s0下采取某个动作a所能得到的最大Q值
r 奖励,通过设置不同状态对应不同奖励从而求得任务所需的Q表

Q表更新(学习)规则: \[ Q_{s_0, a_0} = Q_{s_0, a_0} + \alpha [(r_{s_1} + \gamma Q_{s_1}) - Q_{s_0, a_0}] \] 其中 \(\gamma\) 为未来奖励的衰减率,\(\alpha\) 为学习率,对其做递归展开得(设 \(\alpha = 1\) ): \[ \begin{align*} Q_{s_0, a_0} &= Q_{s_0} \\ &= r_{s_1} + \gamma Q_{s_1} \\ &= r_{s_1} + \gamma (r_{s_2} + \gamma Q_{s_2}) \\ &= r_{s_1} + \gamma r_{s_2} + \gamma^2 r_{s_3} + \dotso \end{align*} \]

\(\gamma\) 越大,对未来考虑越多。

详见demo(treasure_on_right)

Deep Q-learning

用神经网络来实现Q表的功能,解决状态取值为连续区间的问题(Q表允许的状态取值为离散值)。

demo_DQN

训练细节:

详见demo(DQN/run)

Policy Gradient

DQN 状态可以达到无限,但因输出的是已设定的各个动作的Q值(概率),故动作数量依然是有限的(有几个输出神经元便是所能采取的动作数量);通过直接输出动作的值而不是某个动作的概率的方法,可使得输出动作达到无限,这种方法称为 Policy Gradient 。

demo_policy-gradient

因为没有误差,只用奖励做参数更新,故只能回合更新: \[ vt[t] = vt[t] * 0.99 + ep_rs[t], \quad (t 为倒序). \] 详见demo(RL_brain/demo)

在目标检测中的应用

RPN

Deep Reinforcement Learning of Region Proposal Networks for Object Detection

详见 pdfsource