Actor-Critic算法解析与PPO推导
需积分: 50 29 浏览量
更新于2024-08-05
7
收藏 599KB PDF 举报
"Actor-Critic框架是强化学习中的一种算法,它结合了Actor(策略网络)和Critic(价值网络)两个部分。该框架在PPO(Proximal Policy Optimization)算法中得到了广泛应用,这是一种高效的近似策略优化方法。本文将依据李宏毅的课程内容对Actor-Critic和PPO算法进行解释和推导。
在Actor-Critic框架中,策略网络(Actor)负责生成执行动作的概率分布,而价值网络(Critic)则估计状态的价值。具体步骤如下:
1. 首先,策略网络(Actor)接收当前状态s,并通过神经网络计算出每个动作的概率action_prob,选择概率最大的动作a执行于环境Env中,得到即时奖励r和新的状态s_。
2. 然后,状态s和s_被输入到价值网络(Critic)中,分别得到对应的预测价值v和v_。接着,利用时间差分(TD)学习方法,计算值函数的误差:td_error = r + γ * v_ - v,其中γ是折扣因子。
3. td_error的平方作为价值网络的损失函数,即𝑐_𝑙𝑜𝑠𝑠=𝑡𝑑_𝑒𝑟𝑟𝑜𝑟²。通过反向传播更新价值网络的参数,以减小这个损失。
4. 在Actor网络中,结合每个动作的概率action_prob和td_error,构造损失函数:𝑎_𝑙𝑜𝑠𝑠=−log(𝑎𝑐𝑡𝑖𝑜𝑛_𝑝𝑟𝑜𝑏)∗𝑡𝑑_𝑒𝑟𝑟𝑜𝑟。这个损失函数鼓励Actor网络选择那些导致高奖励的动作。同样通过反向传播更新策略网络的参数。
5. 上述步骤反复进行,不断迭代优化策略和价值网络。
强化学习的基本组件包括Actor(策略)、Env(环境)和Reward Function(奖励函数)。环境和奖励函数是固定的,学习的目标是通过策略网络(Actor,也称为Policy π)来最大化在一个episode中的总奖励Totalreward:𝑅=∑𝑟𝑡/𝑇,其中𝑡=1...𝑇。
策略π是一个参数为𝜃的神经网络,根据状态state输出每个动作的概率,然后选择一个动作执行。在一系列状态-动作对组成的轨迹𝜏={𝑠1,𝑎1,𝑠2,𝑎2,…,𝑠𝑇,𝑎𝑇}中,我们可以计算Actor参数为𝜃时,轨迹τ发生的概率𝑝𝜃(𝜏),以及轨迹回报𝑅(𝜏)的期望值𝑅𝜃。
为了最大化𝑅𝜃,我们需要计算梯度∇𝑅𝜃。通过链式法则和重要性采样,我们可以得到近似的梯度表达式。这使得我们可以用梯度上升法来优化策略网络,从而改进策略,使其更倾向于产生高奖励的行动序列。
PPO算法是一种限制策略更新步长的策略梯度方法,防止策略在网络更新中发生过大的跳跃,从而提高学习稳定性。通过设置一个近似Kullback-Leibler(KL)散度的阈值,PPO确保策略的更新在旧策略附近进行。
Actor-Critic框架结合了策略优化和价值估计,而PPO算法则提供了一种在Actor-Critic框架下有效且稳定的策略优化策略。这种结合使得强化学习算法能够有效地在复杂环境中学习并优化决策策略。"
2021-03-22 上传
2021-09-30 上传
2022-01-20 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
AllesGute666
- 粉丝: 1
- 资源: 2
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录