李宏毅的强化学习视频用于梳理翻阅(3)值

2020-05-26 23:34:12 浏览数 (1)

估计价值的方法MC与TD

MC(Monte-Carlo)的方法,在Sutton的书中有比较权威并详细的说明。地址:https://rl.qiwihui.com/zh_CN/latest/index.html

下图是首次访问型的MC方法,估计状态的价值V。在初始化后,先根据策略获取一个完整的序列,然后从底向上,逆向计算得到状态的价值。

当前的状态价值,是与当前和可能产生的以后的完整序列价值有关的,所以有逆向计算的过程。与当前状态距离越远的地方越不容易到达,所以添加折扣因子,将其价值的累加进行折扣。多次进行,求得平均。

估计其他如策略估计,也是类似的过程。每次访问型MC方法,没有Unless部分。Unless部分的意思是,在本次生成的该序列中,每个状态都应该只出现一次。

时序差分的方法TD(Temporal-difference),仍然以Sutton的说明,清楚一点。

初始化后,在每一步,都进行叠加,其中公式里的中括号部分,表示了TD误差,优化的目标,就是使得V(s)最终等于R yV(s')。

TD和MC的关系是,TD是MC的一种特殊的修改。

在每次访问型的MC中,其优化目标为G。G是马尔科夫链中,状态s下,所有后续状态的真实回报r的折扣累加和。

在TD算法中,该G变为了马尔科夫链中,状态s下,r与后续一步的价值折扣累加和。该算法认为是TD(0)。当考虑后续的lambda步时,认为有TD(lanbda),作为优化目标。

TD算法中,在一个马尔科夫链上:s,a,r,s',中,有V(s)=y*V(s') r,即价值本质上,仍然是通过一条完整的马尔科夫链,累积奖励r,并通过折扣因子y,求得的。

相对于MC算法,TD算法对未来的数据上,产生更小的误差,其误差来源于r。MC算法是根据定义得到的,更直接,但是其误差来源于G,相对与奖励r,误差更大。

如下图中,多次执行后,0为MC计算得到的状态a的价值,3/4为TD计算得到的价值。(Sutton125页)。

因为MC算法考虑的是本次序列中的效果(状态b的真实影响),即G的值,所以多次执行以后,平均得到状态a的价值的来源是,第一行的序列的真实回报

而TD算法考虑的是价值,在第一行的序列中,状态a的价值计算,考虑了所有序列中的状态b的效果,即状态b的价值。而不是真实回报。

V与Q

V与Q是两种不同的度量方式,前者代表的是状态的价值。后者是,该状态下并选择行为a的价值。在下面右图中,当q函数中的行为a,固定为?时,认为V与Q相等吧。

在Q上标记?,表示当前Q根据其值使用的策略。下图说明的是:?^(?′ ) (?)≥?^? (?),即在每次行为选择的过程中,策略?的行为选择,会朝着价值更大的方向。?^? (?)=?^? (?,?(?))所表达的意思是,当行为a,使用?(?)产生时,相等。

工程技巧

下图是探索的技巧,用于探索环境。

常见的DQN改进算法

Double DQN,未考证,但是大致是,使用Q',更新Q,在一段时间后,Q'=Q。降低过估计。

Dueling DQN,未考证,大致是,将Q拆分为V和A。

在实际使用中,让A的总和为0,当更新V后,则Q表中的所有值,都发生变化。

Prioritized Replay DQN,优先使用TD-error大的记忆片段。

而 Multi-step,Noisy Net,Distribution Q,不再说了,也不清楚。

最终将多种算法结合,得到Rainbow算法。

Double DQN的作用是降低过估计,而其他算法中有降低过估计的作用了(具体仍待查看,)

0 人点赞