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

强化学习(13)- Policy Gradient Methods

引入

状态价值预估这一类方法有没有缺点? 是不是存在一种别的建模方式,在解决特定问题的时候反而更加高效?

这一章介绍的policy gradient就是这类方法, 在解决一些问题上,直接对策略建模会更加有效.

具体为:

13.2.20

期望通过更新其中的参数来对这个模型进行优化:

13.2.21

一种具体的形式:

13.2.19

如果h函数为一个线性函数的话:

13.2.22

一个具体的例子,证明虽然价值函数可以学到收敛, 整个过程还是比较低效.因为无论价值函数是不是最优, 都没有影响到策略:

13.2.23

The Policy Gradient Theorem

13.2.25

推到过程还是比较好理解的.可以得到一个和梯度正相关的公式:

13.2.26

从这个公式可以发现,由于里面只有 \(\pi\) 是未知,决定了将来参数更新的方向,更新的步长有两部分组成,初始的状态分布和价值函数.

REINFORCE: Monte Carlo Policy Gradient

上面的更新公式中,还是对站在一个分布的角度进行的, 实际中我们可以通过模拟得到样本序列.所以又回到了样本期望这条路上来:

13.2.27

迭代公式表示为:

13.2.28

站在成本的角度,如果生成一条样本,就是花费一个单位的计算量或者流量,我们希望用尽可能少的成本,得到一个收敛的模型.

从上面公式可以看到, 步长是超参数, \(G_t\) 是"权重", 所以对当前样本来说,模型朝着让增加 \(A_t\) 下一次被选择的概率的方向移动.  这里步长非常重要,平衡着explore和exploit.

串起来的算法:

13.2.29

REINFORCE with Baseline

\(\theta\) 的更新中,可以发现一些问题, 选中次数越多下次被选中的概率会增加, 也就是会"倾向于选择以前选择过的action". 这样会导致在刚开始没有被选中的状态很难追回来.通过引入一个不变的状态价值的baseline可以很好的解决这个问题, 使得每次更新可以增加或者减少当前行为被选择的概率.

13.2.31

13.2.32

可以证明,添加这个baseline之后,并未改变梯度方向:

13.2.33

完整的算法流程为:

13.2.34

 

REINFORCE: Monte Carlo Policy Gradient

状态函数也是可以学习的版本:

13.2.35

13.2.30

参考

Reinforcement Learning: An Introduction

未经允许不得转载:大数据算法 » 强化学习(13)- Policy Gradient Methods

分享到:更多 ()

评论 抢沙发

*

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

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

本站的GitHub关于本站