Skip to content

强化学习问题 ​

问题描述 ​

样本为轨迹 τ ,满足概率 pθ(τ) 的分布,即 τ∼pθ(τ) , θ 为策略的参数

策略π(a|s)表示从状态s执行动作a的概率分布,即

∑ai∈Aπ(ai|s)=1

马尔科夫假设:下一个状态𝑠𝑡+1只与当前的状态𝑠𝑡和执行的动作𝑎𝑡相关,则某个轨迹发生的概率为:

𝑃(𝑠1,𝑎1,𝑠2,𝑎2,⋯,𝑠𝑇)=𝑃(𝑠1)π(a1|s1)𝑃(𝑠2)π(a2|s2)...

奖励与期望 ​

单步奖励定义为 r ,对于轨迹 τ 总奖励 R(τ) ,有

R(τ)=∑rt

考虑到近期奖励更重要,加入参数γ∈[0,1],上式改写为

R(τ)=∑γt−1rt

策略梯度方法 ​

寻找策略 π(a|s) 使得总奖励 R(τ) 最大是我们的目标。由于环境与策略有随机性,所以希望R(τ)的期望最大,即

L(θ)=defJ(πθ)=Eτ[R(τ)]=∫πθ(τ)R(τ)dτ

L(θ)是我们的训练目标函数。
通过网络训练,找到一组 θ 代表的网路 πθ ,使得上式最大。

∂J∂θ=Eτ[∂∂θlog⁡πθ(τ)⋅R(τ)]=Eτ[∂∂θ∑log⁡πθ(at|st)⋅R(τ)]L(θ)=Et[log⁡πθ(at|st)⋅At]

上式的期望采用多次采样来拟合。 更新后的参数θ′为下式

θ′=θ+μ⋅∂J∂θ

方差 ​

通过将奖励 R(τ) 分布在0周围,可以减小方差。一个简单的方法是加入偏置b,即

R(τ)−b

对于参数b的估计可以采用 R(τ) 的均值

重要性采样 ​

重要性采样是一种通过其他分布来估计期望的方法。 对于分布 pθ,和历史的某一分布 pθ¯ ,

Jθ¯=Eτ[R(τ)]=∑tEst[pθ(⋅)pθ¯(⋅)⋅Eat[πθπθ¯⋅rt]]

可以被用来估计 Jθ 在

pθ(st)pθ¯(st)≈1

的情况下,可以简化为

Jθ¯=∑tEst[Eat[πθπθ¯⋅rt]]=∑tE(st,at)[πθπθ¯⋅rt]

这样可以用一次采样的结果优化多次θ
这种采样策略和待优化的目标策略不是同一策略的方法叫做离线(Off-Policy)方法

PPO算法 ​

基于上面的理论,一方面我们需要优化J,另一方面我们希望两个θ,θ′相似,否则无法重要性采样。采样通过当前状态的πθ(at|st)。
Jθ′(θ) 表示用 θ′ 优化 θ 的目标函数。PPO算法是一种同策略算法。公式如下

JPPO(θ)=Jθ′(θ)−βKL(θ,θ′)

上式的KL(θ,θ′)描述θ,θ′的相似程度,表示为动作的距离。
上式的β是动态的,如果 KL(θ,θk)>KLmax,增大 β ;如果 KL(θ,θk)<KLmin,减小β

除此之外还有PPO2算法,PPO2避免了计算KL散度,它采用设定 πθ(⋅)πθ¯(⋅) 上下界的方式,将其限制在1附近。

值函数方法 ​

状态值函数 ,V 函数,定义为从状态 st 开始,策略 π 下的期望回报。
状态-动作价值函数 ,q 函数,定义从状态 st 和动作 at 开始,策略 π 下的期望回报。
可以看出

Vst=maxatQst(at)

对于上述两个函数 V,Q

  1. 可以采用生成多条轨迹来计算,即 蒙特卡洛方法 。
V=1N∑R(τ)
  1. 考虑到值函数的递推关系。可以采用 时序差分方法 。递推关系(贝尔曼方程)如下
Vtπ=Eτ[rt+γVt+1π)]

构造误差项

δ=rt+γVt+1π−Vtπ

更新 V 函数为 Vtπ+αδ,α∈[0,1]
同理,对于 Q 函数

δ=rt+γmaxatQt+1π−Qtπ

更新 Q 函数为 Qtπ+αδ,α∈[0,1]
策略改进需要兼顾最优、探索,因此以一定概率 ϵ 进行随机, 1−ϵ 的概率选择最优,记为贪心算法。

DQN算法 ​

利用贪心算法的策略 π ,获得的数据存到memory中,数据足够多的时候开始训练Q,训练结束后更新Q。

Actor-Critic方法 ​

Actor 通过训练策略 πθ 更新 θ
Critic 通过训练 Vϕ 更新 ϕ

Advantage AC方法 ​

通过Critic计算出 V
定义动作的优势值 At=δ=rt+γVt+1π−Vtπ
采用目标函数为

LPG(θ)=Et[log⁡πθ(at|st)⋅At]

以计算Actor的梯度

Released under the MIT License.