Advertisement

《强化学习》学习笔记4—— actor-critic 算法

阅读量:

算法思想

前面有提到,训练一个强化学习,可以训练一个价值评估函数,也可以训练一个策略函数。价值学习可以通过TD算法,使得训练过程可以单步更新,而不用等到游戏回合结束之后进行模型参数修正,这样训练收敛较快。但是价值学习有一个局限性,需要能够穷举所有可行的行为,当行为状态是一个连续量时,价值网络不能很好表示这个情形,而策略学习可以解决这个问题。

策略学习采用策略梯度算法学习,梯度公式为:
rac{artial V}{artial heta}=E_{A}

我们可以发现梯度公式中有一个Q_{i}, 这个Q函数值如何求得是一个需要解决的问题。如何解决这个问题呢? 一般有两种方式,一种是当游戏回合结束之后,每一阶段的Q值可以用实际的累计回报计算出来,但是这种回合式的更新,一般学习效率比较低;另一种方式同时训练一个网络来近似Q_{i},这个网络就叫做critic,而策略网络就叫做actor。这个算法的最终学习目标式策略网络,价值网络只是用来辅助训练。

策略网络最初形态:

结合了价值网络之后的策略网络训练流程:

算法步骤

actor-critic 算法的步骤和前面提到的策略梯度算法的步骤整体是一致的,只是再第4步求q_{t}的时候具化用一个价值网络求值,同时增加了第5、7步对价值网络参数的修正。

同时为了梯度的方差,实际训练时会采用elta_{t} 代替q_{t}(带基线的梯度),这样一般训练效果更好。

这里的价值网络和价值学习中的网络有什么区别?

个人理解,在价值学习中,有多少种动作,神经网络就有多少个输出;而这里用于做critic 的网络,虽然预测的也是Q值,但是网络的输入是环境状态和行为,输出是价值,所以这里的critic网络可以适应动作是连续量的情况。

参考

5.深度强化学习(5_5):AlphaGo(Av374239425,P5)_哔哩哔哩_bilibili

https://www.jianshu.com/p/9632f10bc590

全部评论 (0)

还没有任何评论哟~