PPO算法与DDPG算法的比较

一、PPO算法

1. actor网络

Actor 网络输出在给定状态 s t s_t st下采取每个动作的概率分布,通常使用一个神经网络表示: π θ ( a t ∣ s t ) \\pi_\\theta(a_t \| s_t) πθ(at∣st).PPO 迭代地更新这个 policy,以改进策略并提高性能。

2. Critic网络

V ϕ ( s t ) V_\\phi(s_t) Vϕ(st)用于估计状态的值函数。Critic 网络的目标是学习一个准确估计的状态值函数,以便计算优势函数(Advantage Function)。这个 value 网络帮助计算 advantage(优势),即在某个状态下执行某个动作相对于平均水平的优越性。

二、DDPG算法

1. actor网络

DDPG 使用一个 actor 网络 μ θ ( s t ) \\mu_\\theta(s_t) μθ(st),其输出是在给定状态下采取的动作。与 PPO 不同,DDPG 的输出是连续的动作,而不是动作概率分布。

2. Critic网络

DDPG 有一个 critic 网络 Q ϕ ( s t , a t ) Q_\\phi(s_t, a_t) Qϕ(st,at),用于估计在给定状态和动作下的 Q 值(动作的质量)。这个 Q 值用于计算 policy gradient,以更新 actor 网络。

Critic 网络的训练目标是最小化 Q 值的均方误差,以使其能够准确估计累积奖励。

三、比较

  • 更新目标:PPO 通过迭代更新 policy 来提高性能 ,而 DDPG 则使用 critic 网络的 Q 值来计算 policy gradient,并更新 actor 网络。
相关推荐
吴可可12310 小时前
CAD2004自定义实体开发环境配置
c++·算法
装不满的克莱因瓶10 小时前
矩阵的主成分是什么?主成分分析(PCA)又能做什么?
人工智能·线性代数·算法·机器学习·ai·矩阵·pca
念恒1230610 小时前
Python 面向对象编程核心:对象、实例化、封装与变量作用域
开发语言·python
大菜菜小个子10 小时前
template<typename T>使用
java·开发语言·算法
L_090710 小时前
【C++】C++11 新特性
开发语言·c++
方也_arkling10 小时前
【Java-Day15】API篇-ArrayList集合
java·开发语言
我是一颗柠檬10 小时前
【Java后端技术亮点】动态路由权限(按钮级权限),细粒度控制到按钮级别
java·开发语言·后端·状态模式
Fanfanaas10 小时前
C++ 继承
java·开发语言·jvm·c++·学习·算法
lqqjuly10 小时前
模型合并与融合:理论、算法与可运行实现—从损失曲面几何到多模型融合
算法
memcpy010 小时前
LeetCode 2144. 打折购买糖果的最小开销【贪心】
算法·leetcode·职场和发展