Actor-Critic算法解析与PPO推导
需积分: 50 5 浏览量
更新于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 上传
2021-05-25 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
论文
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
AllesGute666
- 粉丝: 1
- 资源: 2
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命