Skip to content

强化学习问题

问题描述

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

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

aiAπ(ai|s)=1

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

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

奖励与期望

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

R(τ)=rt

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

R(τ)=γt1rt

策略梯度方法

寻找策略 π(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=1NR(τ)
  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.