目录
- 0 专栏介绍
- 1 贝尔曼最优方程
- 2 贪心策略与策略改进
- 3 策略迭代与价值迭代
- 4 算法流程
0 专栏介绍
本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。
🚀详情:《Pytorch深度强化学习》
1 贝尔曼最优方程
在Pytorch深度强化学习1-3:策略评估与贝尔曼期望方程详细推导中,我们介绍了贝尔曼递推公式(Bellman Equation)或称贝尔曼期望方程,如下
{ V γ π ( s ) = ∑ a ∈ A π ( s , a ) ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ π ( s ′ ) ] Q γ π ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ ∑ a ′ ∈ A π ( s ′ , a ′ ) Q γ π ( s ′ , a ′ ) ] {\begin{cases} V_{\gamma}^{\pi}\left( s \right) =\sum_{a\in A}{\pi \left( s,a \right)}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{\pi}\left( s' \right) \right]\\ Q_{\gamma}^{\pi}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \sum_{a'\in A}{\pi \left( s',a' \right) Q_{\gamma}^{\pi}\left( s',a' \right)} \right]\\\end{cases}} {Vγπ(s)=∑a∈Aπ(s,a)∑s′∈SPs→s′a[Rs→s′a+γVγπ(s′)]Qγπ(s,a)=∑s′∈SPs→s′a[Rs→s′a+γ∑a′∈Aπ(s′,a′)Qγπ(s′,a′)]
贝尔曼期望方程用于策略评估,即衡量策略的好坏。
自然地,我们会想到,能否计算出最优策略呢?这就引出本节的主题——贝尔曼最优方程。
我们对上面的贝尔曼期望方程做一些变化:将期望视作随机变量不同取值的加权和,权重即为概率分布。现在将随机变量的最大取值权重赋为1,其余取值赋为0,将得到随机变量的最大值。因此随机变量的最大值是一种特殊的期望,符合
E ( x ) ⩽ max ( x ) \mathbb{E} \left( x \right) \leqslant \max \left( x \right) E(x)⩽max(x)
状态值函数 V π ( s ) V^{\pi}\left( s \right) Vπ(s)是期望的形式,欲使 V π ( s ) V^{\pi}\left( s \right) Vπ(s)数值最大,最优策略 π ∗ \pi ^* π∗对应的条件概率分布应是0-1序列,其中权重1赋予回报最大的动作,即
{
V
γ
∗
(
s
)
=
max
a
∈
A
∑
s
′
∈
S
P
s
→
s
′
a
[
R
s
→
s
′
a
+
γ
V
γ
∗
(
s
′
)
]
Q
γ
∗
(
s
,
a
)
=
∑
s
′
∈
S
P
s
→
s
′
a
[
R
s
→
s
′
a
+
γ
max
a
′
∈
A
Q
γ
∗
(
s
′
,
a
′
)
]
{ \begin{cases} V_{\gamma}^{*}\left( s \right) =\underset{a\in A}{\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{*}\left( s' \right) \right]\\ Q_{\gamma}^{*}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \underset{a'\in A}{\max}Q_{\gamma}^{*}\left( s',a' \right) \right]\\\end{cases}}
⎩
⎨
⎧Vγ∗(s)=a∈Amax∑s′∈SPs→s′a[Rs→s′a+γVγ∗(s′)]Qγ∗(s,a)=∑s′∈SPs→s′a[Rs→s′a+γa′∈AmaxQγ∗(s′,a′)]
这就演化成了最优贝尔曼方程
2 贪心策略与策略改进
设当前策略为 π \pi π,则总可以将其改进为 π ′ ( s ) = a r g max a ∈ A Q π ( s , a ) \pi '\left( s \right) =\mathrm{arg}\max _{a\in A}Q^{\pi}\left( s,a \right) π′(s)=argmaxa∈AQπ(s,a),也称为贪心策略,记作 G ( ⋅ ) G\left( \cdot \right) G(⋅)
证明
设贝尔曼最优算子为 B ∗ \mathcal{B} ^* B∗,其不依赖于具体策略,则
∣ ( B ∗ V π ) ( s ) − ( B ∗ V π ′ ) ( s ) ∣ = ∣ max a ∈ A ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V π ( s ′ ) ] − max a ∈ A ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V π ′ ( s ′ ) ] ∣ \left| \left( \mathcal{B} ^*V^{\pi} \right) \left( s \right) -\left( \mathcal{B} ^*V^{\pi '} \right) \left( s \right) \right|=\left| \underset{a\in A}{\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V^{\pi}\left( s' \right) \right] -\underset{a\in A}{\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V^{\pi '}\left( s' \right) \right] \right| (B∗Vπ)(s)−(B∗Vπ′)(s) = a∈Amaxs′∈S∑Ps→s′a[Rs→s′a+γVπ(s′)]−a∈Amaxs′∈S∑Ps→s′a[Rs→s′a+γVπ′(s′)]
根据不等式
∣ max x f ( x ) − max x g ( x ) ∣ = ∣ f ( x ∗ ) − max x g ( x ) ∣ x ∗ 是 f ( x ) 最大值 ⩽ ∣ f ( x ∗ ) − g ( x ∗ ) ∣ ⩽ max x ∣ f ( x ) − g ( x ) ∣ \begin{aligned}\left| \max _xf\left( x \right) -\max _xg\left( x \right) \right|&=\left| f\left( x^* \right) -\max _xg\left( x \right) \right|\,\, { x^*\text{是}f\left( x \right) \text{最大值}}\\&\leqslant \left| f\left( x^* \right) -g\left( x^* \right) \right|\\&\leqslant \max _x\left| f\left( x \right) -g\left( x \right) \right|\end{aligned} xmaxf(x)−xmaxg(x) = f(x∗)−xmaxg(x) x∗是f(x)最大值⩽∣f(x∗)−g(x∗)∣⩽xmax∣f(x)−g(x)∣
可得
∣ ( B ∗ V π ) ( s ) − ( B ∗ V π ′ ) ( s ) ∣ ⩽ ∣ γ max a ∈ A ∑ s ′ ∈ S P s → s ′ a [ V π ( s ′ ) − V π ′ ( s ′ ) ] ∣ ⩽ γ max a ∈ A ∣ ∑ s ′ ∈ S P s → s ′ a [ V π ( s ′ ) − V π ′ ( s ′ ) ] ∣ ⩽ γ max a ∈ A ∑ s ′ ∈ S P s → s ′ a ∣ V π ( s ′ ) − V π ′ ( s ′ ) ∣ 绝对值不等式 = γ ∑ s ′ ∈ S P s → s ′ a ∗ ∣ V π ( s ′ ) − V π ′ ( s ′ ) ∣ ⩽ γ ∑ s ′ ∈ S P s → s ′ a ∗ max s ′ ′ ∣ V π ( s ′ ′ ) − V π ′ ( s ′ ′ ) ∣ = γ ∥ V π − V π ′ ∥ ∞ \begin{aligned}\left| \left( \mathcal{B} ^*V^{\pi} \right) \left( s \right) -\left( \mathcal{B} ^*V^{\pi '} \right) \left( s \right) \right|&\leqslant \left| \gamma \underset{a\in A}{\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ V^{\pi}\left( s' \right) -V^{\pi '}\left( s' \right) \right] \right|\\&\leqslant \gamma \underset{a\in A}{\max}\left| \sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ V^{\pi}\left( s' \right) -V^{\pi '}\left( s' \right) \right] \right|\\&\leqslant \gamma \underset{a\in A}{\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left| V^{\pi}\left( s' \right) -V^{\pi '}\left( s' \right) \right|\,\, { \text{绝对值不等式}}\\&=\gamma \sum_{s'\in S}{P_{s\rightarrow s'}^{a^*}}\left| V^{\pi}\left( s' \right) -V^{\pi '}\left( s' \right) \right|\\&\leqslant \gamma \sum_{s'\in S}{P_{s\rightarrow s'}^{a^*}}\underset{s''}{\max}\left| V^{\pi}\left( s'' \right) -V^{\pi '}\left( s'' \right) \right|\\&=\gamma \left\| V^{\pi}-V^{\pi '} \right\| _{\infty}\end{aligned} (B∗Vπ)(s)−(B∗Vπ′)(s) ⩽ γa∈Amaxs′∈S∑Ps→s′a[Vπ(s′)−Vπ′(s′)] ⩽γa∈Amax s′∈S∑Ps→s′a[Vπ(s′)−Vπ′(s′)] ⩽γa∈Amaxs′∈S∑Ps→s′a Vπ(s′)−Vπ′(s′) 绝对值不等式=γs′∈S∑Ps→s′a∗ Vπ(s′)−Vπ′(s′) ⩽γs′∈S∑Ps→s′a∗s′′max Vπ(s′′)−Vπ′(s′′) =γ Vπ−Vπ′ ∞
同样根据巴拿赫不动点定理可知映射 B ∗ \mathcal{B} ^* B∗存在唯一的不动点。易知当策略取为
π ′ ( s ) = a r g max a ∈ A Q π ( s , a ) = a r g max a ∈ A ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ π ( s ′ ) ] \begin{aligned}\pi '\left( s \right) &=\mathrm{arg}\max _{a\in A}Q^{\pi}\left( s,a \right) \\&=\underset{a\in A}{\mathrm{arg}\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{\pi}\left( s' \right) \right]\end{aligned} π′(s)=arga∈AmaxQπ(s,a)=a∈Aargmaxs′∈S∑Ps→s′a[Rs→s′a+γVγπ(s′)]
与贝尔曼最优方程等价,亦即贪心策略 G ( V π ) = π ′ G\left( V^{\pi} \right) =\pi ' G(Vπ)=π′与贝尔曼最优算子 B ∗ \mathcal{B} ^* B∗等价
B ∗ V π = B G ( V π ) V π = B π ′ V π \mathcal{B} ^*V^{\pi}=\mathcal{B} ^{G\left( V^{\pi} \right)}V^{\pi}=\mathcal{B} ^{\pi '}V^{\pi} B∗Vπ=BG(Vπ)Vπ=Bπ′Vπ
3 策略迭代与价值迭代
贪心策略指向的结果是
B ∗ V π = B G ( V π ) V π = B π ′ V π \mathcal{B} ^*V^{\pi}=\mathcal{B} ^{G\left( V^{\pi} \right)}V^{\pi}=\mathcal{B} ^{\pi '}V^{\pi} B∗Vπ=BG(Vπ)Vπ=Bπ′Vπ
上式表明,代表策略评估的贝尔曼期望方程 和代表策略改进的贝尔曼最优方程 通过贪心策略联系在一起。
根据最大值和期望值的不等式有 B ∗ V π ⩾ B π V π \mathcal{B} ^*V^{\pi}\geqslant \mathcal{B} ^{\pi}V^{\pi} B∗Vπ⩾BπVπ。在应用策略改进时,对 π \pi π的策略评估应当已经收敛,所以此时 B π V π = V π \mathcal{B} ^{\pi}V^{\pi}=V^{\pi} BπVπ=Vπ,从而 B π ′ V π ⩾ V π \mathcal{B} ^{\pi '}V^{\pi}\geqslant V^{\pi} Bπ′Vπ⩾Vπ。
接着对 π ′ \pi ' π′进行策略评估(应用无穷次期望算子)得到新的状态函数值
V π ′ = lim k → ∞ ( B π ′ ) k V π V^{\pi '}=\lim _{k\rightarrow \infty}\left( \mathcal{B} ^{\pi '} \right) ^kV^{\pi} Vπ′=k→∞lim(Bπ′)kVπ
而应用 B π ′ \mathcal{B} ^{\pi '} Bπ′是使状态函数值单调递增的过程,那么 V π ′ ⩾ V π V^{\pi '}\geqslant V^{\pi} Vπ′⩾Vπ,即策略得到单调性的改善。又因为 B ∗ \mathcal{B} ^* B∗存在唯一的不动点,所以最终会迭代到唯一且最优的策略 π ∗ \pi ^* π∗。
简言之,可以任取一个策略 π 0 \pi ^0 π0按策略改进定理迭代,最终收敛到最优 ,称为策略迭代(policy iteration)
lim k → ∞ ( B ∗ ) k V π 0 = V π ∗ \lim _{k\rightarrow \infty}\left( \mathcal{B} ^* \right) ^kV^{\pi ^0}=V^{\pi ^*} k→∞lim(B∗)kVπ0=Vπ∗
根据不动点定理,状态值函数值 V π ∗ V^{\pi ^*} Vπ∗也是唯一且最优的,因此也可以先计算出 V π ∗ V^{\pi ^*} Vπ∗,再通过贪心策略间接得到最优策略 π ∗ \pi ^* π∗,称为价值迭代(value iteration)
4 算法流程
策略迭代算法流程
价值迭代算法流程
🔥 更多精彩专栏:
- 《ROS从入门到精通》
- 《Pytorch深度学习实战》
- 《机器学习强基计划》
- 《运动规划实战精讲》
- …