强化学习4(Actor-Critic算法)

Actor-Critic算法结合策略学习和价值学习,其中Actor网络负责决策,Critic网络评估动作价值。通过不断调整策略和价值网络,优化决策过程。算法流程包括观测状态、执行动作、获取奖励、更新价值和策略网络。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Actor-Critic算法

Actor是策略网络用来控制agcent运动,可以看作是运动员;Critic是价值网络用来给动作打分,可以看作是裁判。这个算法相当于把前面学习到的价值学习和策略学习进行结合的一种方法。

Policy Network(Actor)

就是前面说的策略函数,可以记作: π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ),这个可以用来看作做运动的运动员。策略函数

上图就是前面所说的策略函数的作用。

Value Network(Critic)

这个也就是前面所说的价值学习,可以记作: q ( s , a ; w ) q(s,a;w) q(s,a;w),这个可以用来看作给运动员动作打分的裁判。

valuenetwork

Actor-Critic Method

上面两种网络可以同时进行训练共享参数,也可以单独训练。同时进行训练就叫做Actor-Critic方法。上面两个网络中我们需要训练两个参数 θ \theta θ w w w。这个方法的示意图如下所示:

ac

这种方法可以简单的理解为:运动员做出一个动作Action(a)之后,裁判网络(critical)根据当前的State(s)生成一个价值Value(q)。然后裁判把分数告诉运动员,运动员知道分数之后就能想办法改进自己了。但是运动员改进只是根据裁判的分数,如果裁判的水平较低,可能不会有特别大的进步,所以我们还要让裁判不断跟新他的打分能力。所以裁判要靠奖励r来提高打分水平。

总结算法

这个算法的大致实现思路是:

  • 首先是观测到一个旧的动作 s t s_t st,然后根据策略网络 a ∼ π ( ⋅ ∣ s t ; θ t ) a \sim \pi(\cdot |s_t;\theta_t) aπ(st;θt),来计算概率分布,然后根据计算出来的概率分布随机抽取出一个状态 a t a_t at
  • 然后执行动作 a t a_t at,然后环境会告诉我们新的状态 s t + 1 s_{t+1} st+1和奖励 r t r_t rt
  • 拿新的状态 s t + 1 s_{t+1} st+1作为输入。然后用策略网络计算出新的概率,然后计算出新的动作 a ^ t + 1 \hat{a}_{t+1} a^t+1,这个动作只是一个假想的动作,拿来算一下q值。
  • 然后算两次两次价值网络的输出 q t = q ( s t , a t ; w t ) q_t=q(s_t,a_t;w_t) qt=q(st,at;wt) q t + 1 = q ( s t + 1 , a ^ t + 1 ; w t ) q_{t+1}=q(s_{t+1,\hat{a}_{t+1}};w_t) qt+1=q(st+1,a^t+1;wt) a ^ t + 1 \hat{a}_{t+1} a^t+1这个动作并不会真正的执行,只是这里用来计算。
  • 然后在来计算TD error: δ t = q t − ( r t + γ ⋅ q t + 1 ) \delta_t=q_t-(r_t+\gamma\cdot q_{t+1}) δt=qt(rt+γqt+1)
  • 对价值网络求导, d w , t = ∂ q ( s t , a t ; w ) ∂ w ∣ w = w t d_{w,t}=\frac{\partial q(s_t,a_t;w)}{\partial w}|_{w=w_t} dw,t=wq(st,at;w)w=wt
  • 更新价值网络: w t + 1 = w t − α ⋅ δ t ⋅ d w , t w_{t+1}=w_t-\alpha \cdot \delta_t \cdot d_{w,t} wt+1=wtαδtdw,t
  • 对策略网络求导: d θ , t = ∂ l n ( π ( a t ∣ s t , θ ) ) ∂ θ ∣ θ = θ t d_{\theta,t}=\frac{\partial{ln(\pi(a_t|s_t,\theta))}}{\partial \theta} |_{\theta=\theta_t} dθ,t=θln(π(atst,θ))θ=θt
  • 更新策略网络: θ t + 1 = θ t + β ⋅ q t ⋅ d θ , t \theta_{t+1}=\theta_t+\beta \cdot q_t \cdot d_{\theta,t} θt+1=θt+βqtdθ,t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值