强化学习总结(1-4)
马尔科夫决策过程
马尔科夫决策过程是一个model-base过程,它分为策略估值policy evaluation与策略控制policy control。就是已知一个策略估计状态函数的值,和求解一个最优策略。
policy evaluation
策略估值evaluation的情况下,主要采用动态规划bootsrapping的方法,已知策略
π
\pi
π,对贝尔曼期望方程进行迭代,直到收敛:
v
k
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
v
k
+
1
π
(
s
′
)
)
\mathrm{v}_{k}^{\pi}(\mathrm{s})=\sum_{\mathrm{a} \in \mathrm{A}} \pi(\mathrm{a} \mid \mathrm{s})\left(\mathrm{R}(\mathrm{s}, \mathrm{a})+\gamma \sum_{\mathrm{s}^{\prime} \in \mathrm{S}} \mathrm{P}\left(\mathrm{s}^{\prime} \mid \mathrm{s}, \mathrm{a}\right) \mathrm{v}_{k+1}^{\pi}\left(\mathrm{s}^{\prime}\right)\right)
vkπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑P(s′∣s,a)vk+1π(s′))
policy control
policy iteration
随机一个 π \pi π,先进行bootstrapping对其状态函数进行估值,根据估计的 v π ( s ) \mathrm{v}^{\pi}(\mathrm{s}) vπ(s),再使用Q函数的贝尔曼等式
q
(
s
,
a
)
=
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
v
(
s
′
)
\mathrm{q}(\mathrm{s}, \mathrm{a})=\mathrm{R}(\mathrm{s}, \mathrm{a})+\gamma \sum_{\mathrm{s}^{\prime} \in \mathrm{S}} \mathrm{P}\left(\mathrm{s}^{\prime} \mid \mathrm{s}, \mathrm{a}\right) \mathrm{v}\left(\mathrm{s}^{\prime}\right)
q(s,a)=R(s,a)+γ∑s′∈SP(s′∣s,a)v(s′),计算Q-table,从中更新策略
π
(
a
∣
s
)
=
{
1
,
if
a
=
arg
max
a
∈
A
q
(
s
,
a
)
0
,
otherwise
\pi(a \mid s)=\left\{\begin{array}{ll} 1, & \text { if } a=\arg \max _{a \in A} q(s, a) \\ 0, & \text { otherwise } \end{array}\right.
π(a∣s)={1,0, if a=argmaxa∈Aq(s,a) otherwise
再用新策略估计状态函数,一直循环,直到V和
π
\pi
π都收敛了,就求得了最优的策略。
总结:由于策略更新每次都是选择能够产生最大价值的动作,所以如果该过程具有最优的策略,那么在迭代一定次数后,最后一定会收敛到那个最优策略。
value iteration
如果策略达到了最优,那么当前状态的价值函数值就等于当前状态最大价值动作对函数值
v
π
(
s
)
=
max
a
∈
A
q
π
(
s
,
a
)
=
max
a
∈
A
(
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
v
(
s
′
)
)
\mathrm{v}^{\pi}(\mathrm{s})=\max _{\mathrm{a} \in \mathcal{A}} \mathrm{q}^{\pi}(\mathrm{s}, \mathrm{a})=\max _{\mathrm{a} \in \mathcal{A}}(\mathrm{R}(\mathrm{s}, \mathrm{a})+\gamma \sum_{\mathrm{s}^{\prime} \in \mathrm{S}} \mathrm{P}\left(\mathrm{s}^{\prime} \mid \mathrm{s}, \mathrm{a}\right) \mathrm{v}\left(\mathrm{s}^{\prime}\right))
vπ(s)=maxa∈Aqπ(s,a)=maxa∈A(R(s,a)+γ∑s′∈SP(s′∣s,a)v(s′)),如果我们将此等式用bootsrapping进行迭代,就能得到最优的价值函数,最后再用下式,policy iteration中的策略更新方法更新一次
π
\pi
π即可。
π
(
a
∣
s
)
=
{
1
,
if
a
=
arg
max
a
∈
A
q
(
s
,
a
)
0
,
otherwise
4
\pi(a \mid s)=\left\{\begin{array}{ll}1, & \text { if } a=\arg \max _{a \in A} q(s, a) \\0, & \text { otherwise }4\end{array}\right.
π(a∣s)={1,0, if a=argmaxa∈Aq(s,a) otherwise 4
两种方法的区别
policy iteration :相当于在不停的探索,策略实时在更新。
value iteration:相当于一劳永逸,将价值函数迭代到最优的状态,策略一次更新到位
最后总结
首先呢(12/4—12/16 model-base ),学习了马尔科夫决策过程,这个过程是强化学习中的很多模型的基础。这里首先解决了两个问题:
- 怎么去算状态的价值,就是我在这个状态下能得到的结果有多好。
- 怎么去寻找我的最优策略,policy 和value iteration都是利用动态规划的思想,不断的对价值函数进行迭代更新,这里就体现了model-base的意义,它能够计算价值函数,所以最优策略就可以从这个最优价值着手去找。