欢迎光临 x-algo
关注算法在工业界应用
Hi, 这是一个关注大数据算法在工业界应用的网站

强化学习(6)-时序差分

如果可以用一个方法来「代表」强化学习的核心思想,可以毫无疑问的肯定,就是:时序差分(temporal-difference (TD);具体的,时序差分 = 蒙特卡洛 + 动态规划。

TD Prediction

QQ20170517-171835

关键步骤在:

\(V(s) \leftarrow V(S) + \alpha [R + \gamma V(S') - V(s)]\)

MC,DP,TD的关联和区别

MC(蒙特卡罗)对 \(V(S)\) 进行预估的时候,不需要额外的模型进行辅助, 只需要直接计数即刻.

DP(动态规划)需要利用Bellman公式迭代, 迭代过程需要知道两个分布,一个预估,具体见这里, DP的迭代次数保证收敛即可, 和样本规模没有直接的关系

TD(时序差分)利用Bellman公式迭代, 只需要一个预估(就是每一步的收益,如果可以直接得到,就不需要预估),  迭代次数等于样本个数(step_size * episode_size).

Sarsa: On-policy TD Control

上面聊聊过了预测问题,下面说控制问题. 目标是预估state-action的价值.在时序差分的角度, 其实就是从只考虑状态变为考虑状态和行为.流程为:

sarsa2 sarsa

具体公式可以表示为:

sarsa1

具体算法为(注意其中的EE策略位置):

sarsa3

Q-learning: Off -policy TD Control

站在EE的角度,Q-learning和Sarsa的区别可以看做计算差分的时候是否探索, 可以将 \(max_aQ(S_{t+1},a)\) 看做是执行了 \(0-greedy\) 策略即 \(\pi_{*}\) ;所以生成数据和学习使用了两个策略.

具体算法流程:

qlearning1

Expected Sarsa

esarsa

具体公式也很好理解:

esarsa1

Maximization Bias and Double Learning

理解这个Bias的存在可以更好的理解Q-learning.

在开始学习的时候,我们的样本非常少, 例如对某个状态S来说,有10个action可以选择, 假设每一个action带来的平均收益都是负数,对每一个action尝试1次之后, 可能出现8个action是负数,2个是正数,这个时候就发现两个action的收益是大于0的,Q-learning就会尝试这两个action.随着尝试次数的增加, 才能知道这两个action平均收益都是负数. 所以Q-learning会在数据不足的情况下,尝试遍所有的可能带来正收益的action.很多时候, 这种策略会导致学习效率的下降.这个问题本质上是由于学习的时候采用max操作引入的, 所以称为Maximization Bias.

double-ql

解决方法(或者说是缓解方法)是Double Q-learning, 这个方法本质上是将计算Q函数进行延迟,并不是得到一条样本就可以更新价值函数, 而是一定的概率才可以更新.由原来的1条样本做到影响决策变为多条(至少两条)样本影响决策.

具体算法流程为:

double-ql2

未经允许不得转载:大数据算法 » 强化学习(6)-时序差分

分享到:更多 ()

评论 抢沙发

*

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

关注大数据算法在工业界应用

本站的GitHub关于本站