强化学习中值迭代收敛性推理证明
在开始证明之前,我想说的是定理是证明给怀疑者,如果你对这个定理不怀疑,那么你就不需要证明。接下来直观感受一下强化学习中值迭代的收敛性。 假设现在的Agent处于一个state sss 下,想要去找一个optimal state,那怎么去找呢?就是遍历所有的policy能够使得当前的statesss,在遍历的某个policy πx\pi_{x}πx下值最大,也就找到了这个state所对应的.
在开始证明之前,我想说的是定理是证明给怀疑者,如果你对这个定理不怀疑,那么你就不需要证明。接下来直观感受一下强化学习中值迭代的收敛性。
假设现在的Agent
处于一个state
sss 下,想要去找一个optimal state
,那怎么去找呢?就是遍历所有的policy
能够使得当前的state
sss,在遍历的某个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)=maxaRsa+arg maxa∈Aγ∑s′∈SPss′av(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 maxa∈A∑s′∈SPss′av(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)+maxa∈Aγ∑s′∈SPsa(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
maxa∈Aγ∑s′∈SPsa(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)