训练过程是怎样进行的
通用的更新方程
q ( s , a ) = q ( s , a ) + ϵ ( U − q ( s , a ) ) q(s,a)=q(s,a)+\epsilon(U-q(s,a)) q(s,a)=q(s,a)+ϵ(U−q(s,a))
其中, U U U是对 q ( s , a ) q(s,a) q(s,a)真实值的估计:
U = E [ q ( s , a ) ] = E [ r + γ ⋅ q ( s ′ , a ′ ) ] = E [ r ] + γ ⋅ E [ q ( s ′ , a ′ ) ] \begin{aligned} U &= E[q(s,a)] \\ &= E[r + \gamma·q(s',a')] \\ &= E[r] + \gamma·E[q(s',a')] \end{aligned} U=E[q(s,a)]=E[r+γ⋅q(s′,a′)]=E[r]+γ⋅E[q(s′,a′)]
实际应用过程中,
- 第1项 E [ r ] E[r] E[r],通常直接使用 r r r作为其粗略估计;
- 第2项 E [ q ( s ′ , a ′ ) ] E[q(s',a')] E[q(s′,a′)],不同算法则有着不同的估计方式:
不同的更新目标
SARSA,简单粗暴,认为“发生的事件”是“大概率事件”,因此可以作为期望的一种粗略估计(关注了主要矛盾…):
U
=
r
+
γ
⋅
q
(
s
′
,
a
′
)
U=r+\gamma·q(s',a')
U=r+γ⋅q(s′,a′)
Q-Learning,贪心且乐观,将价值的上限,视作价值期望粗略估计;
U
=
r
+
γ
⋅
max
q
(
s
′
,
a
′
)
U=r+\gamma·\max q(s',a')
U=r+γ⋅maxq(s′,a′)
Double Q-Learning,贪心,相对客观,同样将价值的上限视作价值期望的粗略估计,但通过使用两个智能体,(部分)抵消了乐观导致的正偏差;
U
=
r
+
γ
⋅
q
(
s
′
,
arg max
a
′
q
′
(
s
′
,
a
′
)
)
U=r+\gamma·q(s',\argmax_{a'} q'(s',a'))
U=r+γ⋅q(s′,a′argmaxq′(s′,a′))
实际上,上面三种 U U U的估计方式,都是一边按照现有 思维方式 / 评价模型 q ′ ( s ′ , a ′ ) q'(s',a') q′(s′,a′),一边使用已经发生的奖励 r r r作为修正项,两者按照 γ : 1 \gamma :1 γ:1的比例综合考虑的结果。
因此,智能体的训练过程,是通过不断地试错、自我优化、自我改进实现,即Sutton书(中译版)中的“自举”。
收敛性的直观理解
收敛性证明
- 表格型问题,收敛性可证明
- 基于压缩映射理论,属于泛函分析的数学范畴。
- 暂不展开,回头看有没有机会,单独开一小节(填坑)。。。
- 参数拟合型问题,收敛性不能保证,不可证明。
直观理解
一点直观的理解和感受,不一定对,仅供参考:
直观上看,更新目标是相对准确的。
按照更新方程,更新目标由两部分组成:
- 状态转移过程( s → a s ′ s \xrightarrow{a} s' sas′ )获得的短时收益,即奖励 r r r。
- 状态转移后一状态(基准状态s’)的价值 v ( s ′ ) v(s') v(s′);或者说随后执行动作 a ′ a' a′后达到的价值 q ( s ′ , a ′ ) q(s',a') q(s′,a′)。
其中,
- 从后向视角考虑(回顾已发生的事件),状态转移前状态(被更新状态 s s s)的价值和转移时获得的奖励 r r r相关。考虑到 r r r已经发生,因此(相比其他的虽然没有发生、但同样有发生的奖励值)距离 E [ r ] E[r] E[r]更近,可作为一种粗略估计;
- 从前向视角考虑(向未来看),状态转移后状态(基准状态 s ′ s' s′)相比于状态转移前状态(被更新状态 s s s),距离终点更近,变数更少,不确定性更低。
训练情况的感知
考虑loss
按照更新方程,loss并不能代表模型训练效果的好坏。
训练过程中的loss,描述的仅仅是对更新目标的拟合效果,而更新目标本身不是准确的,只不过强化学习借助“自举”的训练和学习模式,通过不断试错,实现自我完善,从而具有一定的收敛性,使得模型最终能够较好地对价值函数 q ( s , a ) q(s,a) q(s,a)进行估计。
因此,
- 模型训练到最优后,loss也会收敛到较小值;
- 但其逆命题不成立,loss较小不能代表模型已经最优;
- 一个相对容易理解的反例:模型陷入某种错误、但可以自圆其说的评价方式时,loss也会较小。例如使用了经验回放的模型训练初期,模型过拟合记住了经验库中的几乎所有经验,导致loss很低,但模型训练刚刚开始,模型效果还远远不达要求。
考虑回报
不同于监督学习,强化学习的训练阶段是通过类似一轮轮游戏的形式,让智能体和环境的交互中实现试错和自我完善。
而环境中充满着随机性,在一轮游戏中,智能体面对的任务可能很简单(游戏结束后通常拿到较多的回报),也可能相对较难(较少回报)。
因此,训练过程中回报,有着强烈的波动,直接观察回报的波动情况,难以直观感受到训练的情况和智能体状况。
回报均值和方差
针对环境中的随机性导致回报的剧烈波动,可以以某种大小的滑动窗口,如100轮游戏,统计窗口内回报的均值和方差,一定程度上可以消除环境的随机性对观测的影响,
- 均值,对应智能体的短期测试效果;
- 均值较小,则模型效果性对较差;
- 方差,对应智能体的试错和探索强度;
- 方差较小,则智能体在探索空间的移动,基本处于无波动的平稳状态,没有局部最优的跳进跳出;
直观上的感受:
- 均值低
方差增大 | 初期探索,频繁跳进跳出局部最优; |
方差缩小 | 找到重点,缩小探索范围到某个局部最优; 但重点可能不对,之后还会跳出来找到更好的局部最优; |
方差不变 | 仍在随机探索; |
- 均值保持中等水平
方差缩小 | 探索进行中,逐渐锁定重点,但一般为局部最优附近区域; |
方差保持 | 最某个的重点区域的阶段性探索完成,找到了局部最优; 但探索完成后发现,该重点区域意义不大,即局部最优的效果不能达到要求,更不是全局最优; |
方差变大 | 探索强度增加,频繁地在局部最优中跳进跳出; |
- 均值高
方差增大 | 可能转移到了全局最优附近,具有较高的探索意义,探索得到的局部最优很有可能是全局最优; |
方差恒定 | 探索进行中,充分探索寻找局部最优; |
方差缩小 | 找到较好地重点探索区域,并微调逐渐像局部最优点靠拢,效果好且专注. |