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 网络。
相关推荐
2401_85828611几秒前
101.【C语言】数据结构之二叉树的堆实现(顺序结构) 下
c语言·开发语言·数据结构·算法·
y25082 分钟前
《Object类》
java·开发语言
小技与小术6 分钟前
数据结构之树与二叉树
开发语言·数据结构·python
Beau_Will6 分钟前
数据结构-树状数组专题(1)
数据结构·c++·算法
迷迭所归处10 分钟前
动态规划 —— 子数组系列-单词拆分
算法·动态规划
爱吃烤鸡翅的酸菜鱼11 分钟前
Java算法OJ(8)随机选择算法
java·数据结构·算法·排序算法
hccee28 分钟前
C# IO文件操作
开发语言·c#
hummhumm32 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
J老熊42 分钟前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
寻找码源1 小时前
【头歌实训:利用kmp算法求子串在主串中不重叠出现的次数】
c语言·数据结构·算法·字符串·kmp