作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!
Monotonic Improvement Theory(策略的单调提升)
在这一部分,我们希望能找到一种方法,使得策略模型在优化的过程中单调提升,要做到这一点,我们首先要解决的一个问题就是怎么衡量两个策略(更新前和更新后的策略)之间的差异:
J ( θ ′ ) − J ( θ ) = J ( θ ′ ) − E s 0 ∼ p ( s 0 ) [ V π θ ( s 0 ) ] = J ( θ ′ ) − E τ ∼ p θ ′ ( τ ) [ V π θ ( s 0 ) ] = J ( θ ′ ) − E τ ∼ p θ ′ ( τ ) [ ∑ t = 0 ∞ γ t V π θ ( s t ) − ∑ t = 1 ∞ γ t V π θ ( s t ) ] = J ( θ ′ ) + E τ ∼ p θ ′ ( τ ) [ ∑ t = 0 ∞ γ t ( γ V π θ ( s t + 1 ) − V π θ ( s t ) ) ] = E τ ∼ p θ ′ ( τ ) [ ∑ t = 0 ∞ γ t r ( s t , a t ) ] + E τ ∼ p θ ′ ( τ ) [ ∑ t = 0 ∞ γ t ( γ V π θ ( s t + 1 ) − V π θ ( s t ) ) ] = E τ ∼ p θ ′ ( τ ) [ ∑ t = 0 ∞ γ t ( r ( s t , a t ) + γ V π θ ( s t + 1 ) − V π θ ( s t ) ) ] = E τ ∼ p θ ′ ( τ ) [ ∑ t = 0 ∞ γ t A π θ ( s t , a t ) ] \begin{aligned} J\left(\theta^{\prime}\right)-J(\theta) &=J\left(\theta^{\prime}\right)-E_{\mathbf{s}_{0} \sim p\left(\mathbf{s}_{0}\right)}\left[V^{\pi_{\theta}}\left(\mathbf{s}_{0}\right)\right] \\ &=J\left(\theta^{\prime}\right)-E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[V^{\pi_{\theta}}\left(\mathbf{s}_{0}\right)\right] \\ &=J\left(\theta^{\prime}\right)-E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t} V^{\pi_{\theta}}\left(\mathbf{s}_{t}\right)-\sum_{t=1}^{\infty} \gamma^{t} V^{\pi_{\theta}}\left(\mathbf{s}_{t}\right)\right] \\ &=J\left(\theta^{\prime}\right)+E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t}\left(\gamma V^{\pi_{\theta}}\left(\mathbf{s}_{t+1}\right)-V^{\pi_{\theta}}\left(\mathbf{s}_{t}\right)\right)\right] \\ &=E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right]+E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t}\left(\gamma V^{\pi_{\theta}}\left(\mathbf{s}_{t+1}\right)-V^{\pi_{\theta}}\left(\mathbf{s}_{t}\right)\right)\right] \\ &=E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t}\left(r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\gamma V^{\pi_{\theta}}\left(\mathbf{s}_{t+1}\right)-V^{\pi_{\theta}}\left(\mathbf{s}_{t}\right)\right)\right] \\ &=E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t} A^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right] \end{aligned} J(θ′)−J(θ)=J(θ′)−Es0∼p(s0)[Vπθ(s0)]=J(θ′)−Eτ∼pθ′(τ)[Vπθ(s0)]=J(θ′)−Eτ∼pθ′(τ)[t=0∑∞γtVπθ(st)−t=1∑∞γtVπθ(st)]=J(θ′)+Eτ∼pθ′(τ)[t=0∑∞γt(γVπθ(st+1)−Vπθ(st))]=Eτ∼pθ′(τ)[t=0∑∞γtr(st,at)]+Eτ∼pθ′(τ)[t=0∑∞γt(γVπθ(st+1)−Vπθ(st))]=Eτ∼pθ′(τ)[t=0∑∞γt(r(st,at)+γVπθ(st+1)−Vπθ(st))]=Eτ∼pθ′(τ)[t=0∑∞γtAπθ(st,at)]
在这里我们稍微介绍一些上面的证明做了:
- 第一行:将old policy展开为对它生成的trajectory的期望。
- 第二行:由于两个策略关于价值函数的expectation是相同的,所以可以将对old policy的期望转化为new policy的期望,这是这里转化的最关键一步。
- 在三到四步,做了一个简单的构造,
- 在第五步将new policy拆分,由于两个部分都转化为关于new policy的expectation,所以就可以将它们合并,则可以得到最终的关系式。
也就是说,我们的新策略与旧策略的差就是旧策略的advantage关于新策略的trajectory的expectation。这个时候,如果按照policy iteration的流程,在improvement中,也就只需要使得每步提升最大,找到新的parameter使得下面的这个式子最大化即可。
J ( θ ′ ) − J ( θ ) = E τ ∼ p θ ′ ( τ ) [ ∑ t γ t A π θ ( s t , a t ) ] J\left(\theta^{\prime}\right)-J(\theta)=E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t} \gamma^{t} A^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right] J(θ′)−J(θ)=Eτ∼pθ′(τ)[t∑γtAπθ(st,at)]
然后我们对后面一项进行重要性采样:
E τ ∼ p θ ′ ( τ ) [ ∑ t γ t A π θ ( s t , a t ) ] = ∑ t E s t ∼ p θ ′ ( s t ) [ E a t ∼ π θ ′ ( a t ∣ s t ) [ γ t A π θ ( s t , a t ) ] ] = ∑ t E s t ∼ p θ ′ ( s t ) [ E a t ∼ π θ ( a t ∣ s t ) [ π θ ′ ( a t ∣ s t ) π θ ( a t ∣ s t ) γ t A π θ ( s t , a t ) ] ] \begin{aligned} E_{\tau \sim p_{\theta^{\prime}}(\tau)}\left[\sum_{t} \gamma^{t} A^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right] &=\sum_{t} E_{\mathbf{s}_{t} \sim p_{\theta^{\prime}}\left(\mathbf{s}_{t}\right)}\left[E_{\mathbf{a}_{t} \sim \pi_{\theta^{\prime}}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)}\left[\gamma^{t} A^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right]\right] \\ &=\sum_{t} E_{\mathbf{s}_{t} \sim p_{\theta^{\prime}}\left(\mathbf{s}_{t}\right)}\left[E_{\mathbf{a}_{t} \sim \pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)}\left[\frac{\pi_{\theta^{\prime}}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)}{\pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)} \gamma^{t} A^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right]\right] \end{aligned} Eτ∼pθ′(τ)[t∑γtAπθ(st,at)]=t∑Est∼pθ′(st)[Eat∼πθ′(at∣st)[γtAπθ(st,at)]]=t∑Est∼pθ′(st)[Eat∼πθ(at∣st)[πθ(at∣st)πθ′(at∣st)γtAπθ(st,at)]]
我们发现前面一项还是存在新策略的expectation的问题,使得这个问题就变得异常复杂,那么我们能不能在这里直接把新策略替换成旧策略呢?这样我们就可以根据旧策略去算这个值了:
这里我们有一个假设或者可以说是一个先验,也就是当我们的新策略与旧策略比较接近时,我们得到的 p θ ( s t ) p_{\theta}\left(\mathbf{s}_{t}\right) pθ(st)和 p θ ′ ( s t ) p_{\theta^{\prime}}\left(\mathbf{s}_{t}\right) pθ′(st)就会比较接近,那么我们就可以对前面两项期望做替换。
那么我们现在就来证明它:
- 首先证明确定性策略的情况下:
- 接着证明策略是任意分布下的情况:
最终也就得到了一个bound,只要两个policy在policy space足够相近,那么就可以直接对expectation进行替换,进行policy improvement,同时能够有收敛保证:
θ
′
←
arg
max
θ
′
∑
t
E
s
t
∼
p
θ
(
s
t
)
[
E
a
t
∼
π
θ
(
a
t
∣
s
t
)
[
π
θ
′
(
a
t
∣
s
t
)
π
θ
(
a
t
∣
s
t
)
γ
t
A
π
θ
(
s
t
,
a
t
)
]
]
\theta^{\prime} \leftarrow \arg \max _{\theta^{\prime}} \sum_{t} E_{\mathbf{s}_{t} \sim p_{\theta}\left(\mathbf{s}_{t}\right)}\left[E_{\mathbf{a}_{t} \sim \pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)}\left[\frac{\pi_{\theta^{\prime}}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)}{\pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)} \gamma^{t} A^{\pi_{\theta}}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)\right]\right]
θ′←argθ′maxt∑Est∼pθ(st)[Eat∼πθ(at∣st)[πθ(at∣st)πθ′(at∣st)γtAπθ(st,at)]]
such that
∣
π
θ
′
(
a
t
∣
s
t
)
−
π
θ
(
a
t
∣
s
t
)
∣
≤
ϵ
\left|\pi_{\theta^{\prime}}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)-\pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)\right| \leq \epsilon
∣πθ′(at∣st)−πθ(at∣st)∣≤ϵ, for small enough
ϵ
,
\epsilon,
ϵ, this is guaranteed to improve
J
(
θ
′
)
−
J
(
θ
)
J\left(\theta^{\prime}\right)-J(\theta)
J(θ′)−J(θ)
上一篇:强化学习的学习之路(四十二)2021-02-11 Issues of Importance Sampling
下一篇:强化学习的学习之路(四十四)2021-02-13 Monotonic Improvement with KL Divergence