机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1)

本文深入探讨了Actor-Critic算法,一种结合策略梯度和值函数优势的强化学习方法。通过Critic评估行为价值,Actor根据反馈调整策略,实现更高效的学习。文章详细解释了如何通过减少方差和使用基线函数改进策略梯度,以及如何整合学习和规划。

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

Actor-Critic

概述

MC策略梯度方法使用了收获作为状态价值的估计,它虽然是无偏的,但是噪声却比较大,也就是变异性(方差)较高。如果我们能够相对准确地估计状态价值,用它来指导策略更新,那么是不是会有更好的学习效果呢?这就是Actor-Critic策略梯度的主要思想。

Actor-Critic的字面意思是“演员-评论”,相当于演员在演戏的同时,有评论家指点,继而演员演得越来越好。即使用Critic来估计行为价值:

Q w ( s , a ) ≈ Q π θ ( s , a ) Q_w(s,a)\approx Q^{\pi_\theta}(s,a) Qw(s,a)Qπθ(s,a)

基于Actor-Critic策略梯度学习分为两部分内容:

1.Critic:更新action-value函数的参数w。

2.Actor:按照Critic得到的价值,引导策略函数参数 θ \theta θ的更新。

∇ θ J ( θ ) ≈ E π θ [ ∇ θ log ⁡ π θ ( s , a ) Q w ( s , a ) ] \nabla_\theta J(\theta)\approx E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)] θJ(θ)Eπθ[θlogπθ(s,a)Qw(s,a)]

Δ θ = α ∇ θ log ⁡ π θ ( s , a ) Q w ( s , a ) \Delta \theta = \alpha \nabla_\theta \log \pi_\theta(s,a)Q_w(s,a) Δθ=αθlogπθ(s,a)Qw(s,a)

可以看出,Critic做的事情其实是我们已经见过的:策略评估,他要告诉个体,在由参数 θ \theta θ确定的策略 π θ \pi_\theta πθ到底表现得怎么样。

Compatible Function Approximation

近似策略梯度的方法引入了Bias,从而得到的策略梯度不一定能最后找到较好的解决方案,例如当近似价值函数引起状态重名的特征时。

幸运的是,如果我们小心设计近似函数,是可以避免引入bias的。该近似函数需要满足下面两个条件:

  • 近似价值函数的梯度完全等同于策略函数对数的梯度,即不存在重名情况:

∇ w Q w ( s , a ) = ∇ θ log ⁡ π θ ( s , a ) \nabla_w Q_w(s,a)=\nabla_\theta \log \pi_\theta(s,a) wQw(s,a)=θlogπθ(s,a)

  • 价值函数参数w使得均方差最小:

ϵ = E π θ [ ( Q π θ ( s , a ) − Q w ( s , a ) ) 2 ] \epsilon = E_{\pi_\theta}[(Q^{\pi_\theta}(s,a)-Q_w(s,a))^2] ϵ=Eπθ[(Qπθ(s,a)Qw(s,a))2]

符合这两个条件,则认为策略梯度是准确的,即:

∇ θ J ( θ ) = E π θ [ ∇ θ log ⁡ π θ ( s , a ) Q w ( s , a ) ] \nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)Q_w(s,a)] θJ(θ)=Eπθ[θlogπθ(s,a)Qw(s,a)]

Reducing Variance Using Baseline

除了bias之外,variance也是需要考虑的方面。

我们从策略梯度里抽出一个基准函数B(s),要求这一函数仅与状态有关,而与行为无关,因而不改变梯度本身。

E π θ [ ∇ θ log ⁡ π θ ( s , a ) B ( s ) ] = ∑ s ∈ S d π θ ( s ) ∑ a ∈ A ∇ θ π θ ( s , a ) B ( s ) = ∑ s ∈ S d π θ ( s ) B ( s ) ∇ θ ∑ a ∈ A π θ ( s , a ) = 0 E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)B(s)] = \sum_{s\in S} d^{\pi_\theta}(s)\sum_{a\in A}\nabla_\theta \pi_\theta(s,a)B(s)\\= \sum_{s\in S} d^{\pi_\theta}(s)B(s) \nabla_\theta \sum_{a\in A} \pi_\theta(s,a) = 0 Eπθ[θlogπθ(s,a)B(s)]=sSdπθ(s)aAθπθ(s,a)B(s)=sSdπθ(s)B(s)θaAπθ(s,a)=0

由于B(s)与行为无关,可以将其从针对行为a的求和中提出来,同时我们也可以把梯度从求和符号中提出来,而最后一个求和项:策略函数针对所有行为的求和,根据策略函数的定义,这里的结果肯定是1。而常数的梯度是0,因此总的结果等于0。

原则上,和行为无关的函数都可以作为B(s)。一个很好的B(s)就是基于当前状态的状态价值函数: V π θ ( s ) V^{\pi_\theta}(s) Vπθ(s)

所以,我们可以用一个advantage function来改写策略梯度:

A π θ ( s , a ) = Q π θ ( s , a ) − V π θ ( s ) A^{\pi_\theta}(s,a)=Q^{\pi_\theta}(s,a)-V^{\pi_\theta}(s) Aπθ(s,a)=Qπθ(s,a)Vπθ(s)

上式的现实意义在于评估当个体采取行为a离开s状态时,究竟比该状态s总体平均价值要好多少?

∇ θ J ( θ ) = E π θ [ ∇ θ log ⁡ π θ ( s , a ) A π θ ( s , a ) ] \nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)A^{\pi_\theta}(s,a)] θJ(θ)=Eπθ[θlogπθ(s,a)Aπθ(s,a)]

advantage function可以明显减少状态价值的variance。(通俗的说法就是A的值有正有负,不像Q和V都是正值。)

因此,现在Critic的任务就改为估计advantage function。

在这种情况下,我们需要两个近似函数也就是两套参数,一套用来近似状态价值函数,一套用来近似行为价值函数。即:

V v ( s ) ≈ V π θ ( s ) V_v(s)\approx V^{\pi_\theta}(s) Vv(s)Vπθ(s)

Q w ( s , a ) ≈ Q π θ ( s , a ) Q_w(s,a)\approx Q^{\pi_\theta}(s,a) Qw(s,a)Qπθ(s,a)

A ( s , a ) = Q w ( s , a ) − V v ( s ) A(s,a) = Q_w(s,a) - V_v(s) A(s,a)=Qw(s,a)Vv(s)

不过实际操作时,我们并不需要计算两个近似函数。这里以TD学习为例说明一下。

根据定义,TD误差 δ π θ \delta^{\pi_\theta} δπθ可以根据真实的状态价值函数 V π θ ( s ) V^{\pi_\theta}(s) Vπθ(s)算出:

δ π θ = r + γ V π θ ( s ′ ) − V π θ ( s ) \delta^{\pi_\theta} = r + \gamma V^{\pi_\theta}(s') - V^{\pi_\theta}(s) δπθ=r+γVπθ(s)Vπθ(s)

因为:

E π θ [ δ π θ ∣ s , a ] = E π θ [ r + γ V π θ ( s ′ ) ∣ s , a ] − V π θ ( s ) = Q π θ ( s , a ) − V π θ ( s ) = A π θ ( s , a ) E_{\pi_\theta}[\delta^{\pi_\theta} | s,a] = E_{\pi_\theta}[r + \gamma V^{\pi_\theta}(s') | s,a] - V^{\pi_\theta}(s)= Q^{\pi_\theta}(s,a) - V^{\pi_\theta}(s) = A^{\pi_\theta}(s,a) Eπθ[δπθs,a]=Eπθ[r+γVπθ(s)s,a]Vπθ(s)=Qπθ(s,a)Vπθ(s)=Aπθ(s,a)

可见 δ π θ \delta^{\pi_\theta} δπθ就是 A π θ ( s , a ) A^{\pi_\theta}(s,a) Aπθ(s,a)的一个无偏估计。

因此,我们就可以使用TD误差来计算策略梯度:

∇ θ J ( θ ) = E π θ [ ∇ θ log ⁡ π θ ( s , a ) δ π θ ] \nabla_\theta J(\theta)= E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(s,a)\delta^{\pi_\theta}] θJ(θ)=Eπθ[θlogπθ(s,a)δπθ]

实际运用时,我们使用一个近似的TD误差,即用状态函数的近似函数来代替实际的状态函数:

δ v = r + γ V v ( s ′ ) − V v ( s ) \delta_v = r + \gamma V_v(s') - V_v(s) δv=r+γVv(s)Vv(s)

这也就是说,我们只需要一套参数描述状态价值函数,而不再需要行为价值函数了。

上述方法不仅可用于TD方法,还可用于MC方法等,以下不加讨论的给出如下结论:

KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ \nabla_\theta …

参考

https://zhuanlan.zhihu.com/p/51652845

强化学习这都学不会的话,咳咳,你过来下!

https://mp.weixin.qq.com/s/ce9W3FbLdsqAEyvw6px_RA

Actor Critic——一个融合基于策略梯度和基于值优点的强化学习算法

Integrating Learning and Planning

前面的章节主要介绍了Model-Free RL,下面将讲一下Model-Based RL,主要包括如下内容:

  • 如何从经历中直接学习Model。

  • 如何基于模型来进行Planning(规划)。

  • 如何将“学习”和“规划”整合起来。

在这里插入图片描述 |在这里插入图片描述
上面两图形象的说明了Model-Free RL(左图)和Model-Based RL(右图)的差别。

Model-Based RL

上图比较好的说明了模型学习在整个RL学习中的位置和作用。

我们首先看一下Model的定义:Model是一个参数化(参数为 η \eta η)的MDP<S, A, P, R>,其中假定:状态空间S和行为空间A是已知的,则 M = < P η , R η > M=<P_\eta, R_\eta> M=<Pη,Rη>,其中 P η ≈ P , R η ≈ R P_\eta \approx P, R_\eta \approx R PηP,RηR。则:

S t + 1 ∼ P η ( S t + 1 ∣ S t , A t ) S_{t+1} \sim P_\eta (S_{t+1} | S_t, A_t) St+1Pη(St+1St,At)

R t + 1 = R η ( R t + 1 ∣ S t , A t ) R_{t+1} = R_\eta (R_{t+1} | S_t, A_t) Rt+1=Rη(Rt+1St,At)

通常我们需要如下的假设,即状态转移函数和奖励函数是条件独立的:

P [ S t + 1 , R t + 1 ∣ S t , A t ] = P [ S t + 1 ∣ S t , A t ] P [ R t + 1 ∣ S t , A t ] P[S_{t+1}, R_{t+1} | S_t, A_t] = P[S_{t+1} | S_t, A_t] P[R_{t+1} | S_t, A_t] P[St+1,Rt+1St,At]=P[St+1St,At]P[Rt+1St,At]

Model Learning

所谓Model Learning是指:从experience { S 1 , A 1 , R 2 , … , S T } \{S_1, A_1, R_2, \dots, S_T\} {S1,A1,R2,,ST},学习

S 1 , A 1 → R 2 , S 2 S_1, A_1\to R_2,S_2 S1,A1R2,S2

S 2 , A 2 → R 3 , S 3 S_2, A_2\to R_3,S_3 S2,A2R3,S3

… \dots

S T − 1 , A T − 1 → R T , S T S_{T-1}, A_{T-1}\to R_T,S_T ST1,AT1RT,ST

这实际上是一个监督学习的问题。其中, s , a → r s,a\to r s,ar是一个回归问题(regression problem),而 s , a → s ′ s,a\to s' s,as是一个密度估计问题(density estimation problem)。

选择一个损失函数,比如均方差,KL散度等,优化参数 η \eta η来最小化经验损失(empirical loss)。所有监督学习相关的算法都可以用来解决上述两个问题。

根据使用的算法不同,可以有如下多种模型:查表式(Table lookup Model)、线性期望模型(Linear Expectation Model)、线性高斯模型(Linear Gaussian Model)、高斯决策模型(Gaussian Process Model)、和深信度神经网络模型(Deep Belief Network Model)等。

这里主要以查表模型来解释模型的构建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值