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

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

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

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

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

这里的价值网络和价值学习中的网络有什么区别?
个人理解,在价值学习中,有多少种动作,神经网络就有多少个输出;而这里用于做critic 的网络,虽然预测的也是Q值,但是网络的输入是环境状态和行为,输出是价值,所以这里的critic网络可以适应动作是连续量的情况。
参考
全部评论 (0)
还没有任何评论哟~
