强化学习中值迭代收敛性推理证明
在开始证明之前,我想说的是定理是证明给怀疑者,如果你对这个定理不怀疑,那么你就不需要证明。接下来直观感受一下强化学习中值迭代的收敛性。 假设现在的Agent处于一个state sss 下,想要去找一个optimal state,那怎么去找呢?就是遍历所有的policy能够使得当前的statesss,在遍历的某个policy πx\pi_{x}πx下值最大,也就找到了这个state所对应的.
在开始证明之前,我想说的是定理是证明给怀疑者,如果你对这个定理不怀疑,那么你就不需要证明。接下来直观感受一下强化学习中值迭代的收敛性。
假设现在的Agent
处于一个state
s
s
s 下,想要去找一个optimal state
,那怎么去找呢?就是遍历所有的policy
能够使得当前的state
s
s
s,在遍历的某个policy
π
x
\pi_{x}
πx下值最大,也就找到了这个state
所对应的最大value
,用数学语言描述如下:
v ∗ ( s ) = max π v π ( s ) v_{*}(s) = \max_{\pi} v_{\pi} (s) v∗(s)=πmaxvπ(s)
不用去怀疑,你一定能找到这样的一个最大的state value
,因为你遍历了所有的policy
。那能够使得state value
最大的那个policy
π
x
\pi_{x}
πx就是optimal policy
π
∗
\pi^{*}
π∗,即
π
x
=
π
∗
\pi_{x} = \pi^{*}
πx=π∗。那此时贝尔曼方程就是一个完全收敛的情况,可表示为:
v ∗ ( s ) = max a R s a + arg max a ∈ A γ ∑ s ′ ∈ S P s s ′ a v ( s ′ ) v_{*}(s)=\max _{a} \mathcal{R}_{s}^{a}+\argmax_{a \in A}\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v\left(s^{\prime}\right) v∗(s)=amaxRsa+a∈Aargmaxγs′∈S∑Pss′av(s′)
如果不收敛,那它(value
)肯定还没有到达optimal variable
。上述等式在收敛的情况下就会成立,而不仅仅是一个赋值的关系。
观察上述式子,optimal policy
是什么?也即每次是如何take action
的呢?也就是等式的右端项:
π ∗ ( s ) = arg max a ∈ A ∑ s ′ ∈ S P s s ′ a v ( s ′ ) \pi^{*}(s) = \argmax_{a \in A} \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v\left(s^{\prime}\right) π∗(s)=a∈Aargmaxs′∈S∑Pss′av(s′)
那随便给一个状态,我们每次都按照optimal policy
去take action
,那每次state value
都会大于等于之前非最优的policy
所得出来的state value
吧:
v ∗ ( s ) = v π ∗ ( s ) ≥ v π ( s ) v_{*}(s) = v_{\pi *}(s) \geq v_{\pi}(s) v∗(s)=vπ∗(s)≥vπ(s)
也就是说每次都按照optimal policy
去take action
,state value
其实都会有所改进(或者至少不会比以前的差)。那真实的state value
总有一个上界吧,总会收敛吧。
Value Iteration
再来看看值迭代value iteration
,其实就是不断地去套bellman equation
,就变成了对于每一个state
去计算
V
(
s
)
V(s)
V(s)。
V ( s ) = R ( s ) + max a ∈ A γ ∑ s ′ ∈ S P s a ( s ′ ) V ( s ′ ) \begin{aligned} V(s) =R(s)+\max _{a \in A}\gamma \sum_{s^{\prime} \in S} P_{s a}\left(s^{\prime}\right) V\left(s^{\prime}\right) \end{aligned} V(s)=R(s)+a∈Amaxγs′∈S∑Psa(s′)V(s′)
这里是没有策略
π
\pi
π的,整个方程就是在表达,policy
在take action
的时候,就是在take
max
a
∈
A
γ
∑
s
′
∈
S
P
s
a
(
s
′
)
V
(
s
′
)
\max _{a \in A}\gamma \sum_{s^{\prime} \in S} P_{sa}\left(s^{\prime}\right)V\left(s^{\prime}\right)
maxa∈Aγ∑s′∈SPsa(s′)V(s′),那在值迭代里面,它自己去维护这样一个value function
就可以了。policy
只要使得后面上述等式后面那个max
成立就可以了。
我的微信公众号名称:小小何先生
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!
更多推荐
所有评论(0)