pytorch bilstm-crf模型(【深度强化学习】(4) Actor-Critic 模型解析,附Pytorch完整代码)
大家好 ,今天和各位分享一下深度强化学习中的 Actor-Critic 演员评论家算法 ,Actor-Critic 算法是一种综合了策略迭代和价值迭代的集成算法 。我将使用该模型结合 OpenAI 中的 Gym 环境完成一个小游戏 ,完整代码可以从我的 GitHub 中获得:
https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Model
1. 算法原理
根据 agent 选择动作方法的不同 ,可以把强化学习方法分为三大类:行动者方法(Actor-only) ,评论家方法(Critic-only) ,行动者评论家方法(Actor-critic) 。
行动者方法中不会对值函数进行估计 ,直接按照当前策略和环境进行交互 。通过交互后得到的立即奖赏值直接优化当前策略 。例如:Policy Gradients
评论家方法没有需要维护的策略 ,评论家方法的策略是直接通过当前的值函数获得的 ,并通过值函数获得的策略与环境交互 。交互得到的立即奖赏值用来优化当前值函数 。例如:DQN
行动者评论家方法是由行动者和评论家两个部分构成 。行动者用于选择动作 ,评论家评论选择动作的好坏 。行动者选择动作的方法不是依据当前的值函数 ,而是依据存储的策略 。评论家的评论一般采用时间差分误差的形式 ,时间差分误差是根据当前的值函数计算获得的 。时间差分误差是是评论家的唯一输出,并且驱动了行动者和评论家之间的所有学习 。
2. 公式推导
根据策略梯度算法的定义 ,策略优化目标函数如下:
令 ,,称 为优势函数 。采用 n 步时序差分法求解时 , 可以表示如下:
当 n 为一个完整的状态序列大小时 ,该算法与蒙特卡洛算法等价。
Actor-Critic 算法一共分为两个部分 ,Critic 和 Actor 网络 。
Critic 是评判网络 ,当输入为环境状态时 ,它可以评估当前状态的价值 ,当输入为环境状态和采取的动作时 ,它可以评估当前状态下采取该动作的价值 。
Actor 为策略网络 ,以当前的状态作
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!