[1] David Silver: https://www.youtube.com/watch?v=KHZVXao4qXs&t=4609s
定义
Value-Based和Policy-Based是RL的两种学习方式。Value-Based需要先学习价值评估,再根据价值选择最优动作。Policy-Based则是直接学习策略选择。
因为在强化学习(五)中我们介绍了常见的Value-Based方法,本章我们着重介绍Policy-Based方法。
Policy-Based方法具有两个基本要素:目标函数、策略优化。
目标函数用于衡量选择策略的好坏。目标函数可以采用开始价值和平均价值衡量,价值又可以通过MC或TD采样获得。
策略优化的目标是使得执行策略得到的目标函数最大,我们也有多种优化方法。
当我们选择梯度下降作为策略优化方法后,便获得了梯度下降算法。通过梯度下降方法优化,使得采用策略能够获得最大的价值。
环境起始于状态s,终止于采取动作后的下一时间步。此时目标函数可以用采取动作获得奖励的期望表示。
多步MDPs可以使用长期价值 Q π ( s , a ) = R s a + ∑ s ′ ∈ S P s s ′ V π ( s ′ ) Q^\pi(s,a)=R_s^a+\sum_{s' \in S} P_{ss'}V^\pi(s') Qπ(s,a)=Rsa+∑s′∈SPss′Vπ(s′)代替单步即时奖励r。所以多步马尔可夫决策过程的策略梯度可以表示为
如上文所述,策略梯度由目标函数与梯度下降优化算法两部分组成。在多部马尔可夫决策过程中,目标函数可以通过MC或者TD方法求得。这一节主要介绍MC求目标函数与梯度下降的结合。
在强化学习(五)价值函数近似中我们了解到回报 G t G_t Gt可以通过无偏估计V函数或有偏估计Q函数近似。REINFORCE采取采样轨迹的回报计算Q函数。
算法
特点
结合强化学习(五)价值函数近似,我们可以尝试使用函数近似代替MC采样轨迹的回报,这样就不需要从完整的轨迹中进行学习了。
定义
加入critic替代MC预估动作价值函数。actor用于选择和优化策略。
根据强化学习(五)中的内容,Critic可以采用多种方式预测动作价值函数,下面我们将一一介绍。
问题
在QAC的基础上引入baseline来对偏差进行修正。使用优势函数乘上梯度对 θ \theta θ予以修正。
方式二:预测TD error
采用方式一需要预测Q, V两个网络,参数很多。我们可以通过公式 Q ( s , a ) = R s a + ∑ s ′ ∈ S P s s ′ V ( s ′ ) Q(s,a)=R_s^a+\sum_{s' \in S} P_{ss'}V(s') Q(s,a)=Rsa+∑s′∈SPss′V(s′)进行替代。
通过转换后就仅需要学习一个V网络的参数即可。
以下内容为笔记更新前的内容
(1)定义
(2)某一个轨迹发生的概率
p θ ( τ ) = p ( s 1 ) p θ ( a 1 ∣ s 1 ) p ( s 2 ∣ a 1 , s 1 ) p θ ( a 2 ∣ s 2 ) p ( s 3 ∣ a 2 , s 2 ) ⋯ = p ( s 1 ) ∏ t = 1 T p θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) p_\theta(\tau)=p(s_1)p_\theta(a_1|s_1)p(s_2|a_1,s_1)p_\theta(a_2|s_2)p(s_3|a_2,s_2)\cdots \\ =p(s_1)\prod_{t=1}^T p_\theta(a_t|s_t)p(s_{t+1}|s_t,a_t) pθ(τ)=p(s1)pθ(a1∣s1)p(s2∣a1,s1)pθ(a2∣s2)p(s3∣a2,s2)⋯=p(s1)t=1∏Tpθ(at∣st)p(st+1∣st,at)
理解:
演员由当前状态 s t s_t st通过网络 θ \theta θ输出当前采取的动作 a t a_t at。根据当前状态和采取的动作会进入到下一个状态 s t + 1 s_{t+1} st+1。
由于网络对动作的选取、环境对状态的选取都是基于一定分布下的抽样,因此一条轨迹发生的状态是由初始状态的概率 p ( s 1 ) p(s_1) p(s1)和每一次动作的选取概率 p θ ( a t ∣ s t ) p_\theta(a_t|s_t) pθ(at∣st)的概率和状态选取的概率 p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t,a_t) p(st+1∣st,at)获得。
(3)奖励的期望值
因为状态和动作的选取是随机的,所以R是一个随机变量。我们可以计算,在给定某一组 θ \theta θ的情况下,得到的 R θ R_\theta Rθ的期望值:
R ˉ = ∑ τ R ( τ ) p θ ( τ ) = E τ ∼ p θ ( τ ) [ R ( τ ) ] \bar{R}=\sum_\tau R(\tau)p_\theta(\tau) \\ =E_{\tau \sim p_\theta(\tau)}[R(\tau)] Rˉ=τ∑R(τ)pθ(τ)=Eτ∼pθ(τ)[R(τ)]
也可以理解为,从分布 p θ ( τ ) p_\theta(\tau) pθ(τ)采样一个轨迹 τ \tau τ,计算的 R ( τ ) R(\tau) R(τ)的期望值。
我们可以使用梯度上升(gradient ascent)。要使用梯度上升,就需要求解期望奖励的梯度 ∇ R ˉ \nabla \bar{R} ∇Rˉ。
(1)期望奖励的梯度
∇ R θ ˉ = ∑ τ R ( τ ) ∇ p θ ( τ ) = ∑ τ R ( τ ) p θ ( τ ) ∇ log p θ ( τ ) = E τ ∼ p θ ( τ ) [ R ( τ ) ∇ p θ ( τ ) ] \nabla \bar{R_\theta} = \sum_\tau R(\tau) \nabla p_\theta(\tau)=\sum_\tau R(\tau)p_\theta(\tau) \nabla \log p_\theta(\tau) \\ =E_{\tau \sim p_\theta(\tau)}[R(\tau)\nabla p_\theta(\tau)] ∇Rθˉ=τ∑R(τ)∇pθ(τ)=τ∑R(τ)pθ(τ)∇logpθ(τ)=Eτ∼pθ(τ)[R(τ)∇pθ(τ)]
∇ f ( x ) = f ( x ) ∇ f ( x ) f ( x ) = f ( x ) ∇ log f ( x ) \nabla f(x) = f(x) \frac{\nabla f(x)}{f(x)}=f(x) \nabla \log f(x) ∇f(x)=f(x)f(x)∇f(x)=f(x)∇logf(x)
∇ log p θ ( τ ) = ∇ ( log p ( s 1 ) + ∑ t = 1 T log p θ ( a t ∣ s t ) + ∑ t = 1 T p ( s t + 1 ∣ s t , a t ) ) = ∑ t = 1 T ∇ log p θ ( a t ∣ s t ) \nabla \log p_\theta(\tau) = \nabla(\log p(s_1)+\sum_{t=1}^T \log p_\theta(a_t|s_t)+\sum_{t=1}^T p(s_{t+1}|s_t,a_t)) \\ =\sum_{t=1}^T \nabla \log p_\theta(a_t|s_t) ∇logpθ(τ)=∇(logp(s1)+t=1∑Tlogpθ(at∣st)+t=1∑Tp(st+1∣st,at))=t=1∑T∇logpθ(at∣st)
∇ R θ ˉ = E τ ∼ p θ ( τ ) [ R ( τ ) ∑ t = 1 T ∇ log p θ ( a t ∣ s t ) ] = 1 N ∑ n = 1 N ∑ t = 1 T R ( τ n ) ∇ log p θ ( a t n ∣ s t n ) \nabla \bar{R_\theta} = E_{\tau \sim p_\theta(\tau)}[R(\tau)\sum_{t=1}^T \nabla \log p_\theta(a_t|s_t)] \\ =\frac{1}{N}\sum_{n=1}^N \sum_{t=1}^TR(\tau^n) \nabla \log p_\theta(a^n_t|s^n_t) ∇Rθˉ=Eτ∼pθ(τ)[R(τ)t=1∑T∇logpθ(at∣st)]=N1n=1∑Nt=1∑TR(τn)∇logpθ(atn∣stn)
综上,可以获得期望奖励的梯度为:
∇ R θ ˉ = 1 N ∑ n = 1 N ∑ t = 1 T R ( τ n ) ∇ log p θ ( a t n ∣ s t n ) \nabla \bar{R_\theta} = \frac{1}{N}\sum_{n=1}^N \sum_{t=1}^TR(\tau^n) \nabla \log p_\theta(a^n_t|s^n_t) ∇Rθˉ=N1n=1∑Nt=1∑TR(τn)∇logpθ(atn∣stn)
理解:
将策略选择看作分类问题,在一般的分类问题中,目标函数都是最小化交叉熵。策略梯度在此基础上,使用R进行加权,对于优秀的行为我们希望加大他的概率,失败的行为减小他的概率。