接上一篇文章贝尔曼方程
定义
如果一个策略在所有状态下的状态价值都不低于其他任意策略在相同状态下的状态价值,即:对于所有的 s ∈ S s\in\mathcal{S} s∈S, v π ( s ) ≥ v π ′ ( s ) v_{\pi}(s)\geq v_{\pi^{'}}(s) vπ(s)≥vπ′(s),那么这个策略 π \pi π就是最优策略,最优策略可能不止一个,但统一记为 π ∗ \pi^{*} π∗。
定义最优价值函数:
v ∗ ( s ) ≜ max π v π ( s ) v_*(s)\triangleq \max_\pi v_\pi(s) v∗(s)≜πmaxvπ(s)
q ∗ ( s , a ) ≜ max π q π ( s , a ) q_*(s,a)\triangleq \max_\pi q_\pi(s,a) q∗(s,a)≜πmaxqπ(s,a)
而从最优策略的定义中也可以得出:
v π ∗ ( s ) ≜ max π v π ( s ) v_{\pi*}(s)\triangleq \max_\pi v_\pi(s) vπ∗(s)≜πmaxvπ(s)
q π ∗ ( s , a ) ≜ max π q π ( s , a ) q_{\pi*}(s,a)\triangleq \max_\pi q_\pi(s,a) qπ∗(s,a)≜πmaxqπ(s,a)
所以有:
v π ∗ ( s ) = v ∗ ( s ) = max π v π ( s ) v_{\pi*}(s)=v_*(s)=\max_\pi v_\pi(s) vπ∗(s)=v∗(s)=πmaxvπ(s)
q ∗ ( s , a ) = q π ∗ ( s , a ) = max π q π ( s , a ) q_*(s,a)=q_{\pi*}(s,a)=\max_\pi q_\pi(s,a) q∗(s,a)=qπ∗(s,a)=πmaxqπ(s,a)
解释一下 v π ∗ ( s ) 和 v ∗ ( s ) v_{\pi*}(s)和v_*(s) vπ∗(s)和v∗(s)的区别:
后者是从值函数的大小的角度做出的定义,与策略并没有太大关系,而前者则是在最优策略下的状态价值函数。
上面的结果说明:最优价值函数就是执行最优策略时的价值函数
推导
对于任何一个策略 π \pi π都满足:
v π ( s ) ≤ max a q π ( s , a ) v_\pi(s)\leq\max_aq_\pi(s,a) vπ(s)≤amaxqπ(s,a)
这是因为
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_\pi(s)=\sum_{a\in\mathcal{A}}\pi(a|s)q_\pi(s,a) vπ(s)=a∈A∑π(a∣s)qπ(s,a)
状态价值函数是各个动作价值函数的加权平均,一定小于等于最大的动作价值。
对于最优策略 π ∗ \pi^* π∗,为了使状态价值函数达到最大,它在选择动作时一定是以概率1选择使动作价值最大的动作,而其他动作被选择的概率都是0,由于 max a q π ( s , a ) = q π ∗ ( s ∣ a ) \max_aq_\pi(s,a)=q_{\pi^*}(s|a) maxaqπ(s,a)=qπ∗(s∣a),结合上一个式子可以得到:
v π ∗ ( s ) = max a q π ∗ ( s , a ) \begin{equation}v_{\pi^*}(s)=\max_aq_{\pi^*}(s,a)\end{equation} vπ∗(s)=amaxqπ∗(s,a)
在上一篇文章中已经推出:
q π ( s , a ) = ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] q_\pi(s,a)=\sum_{s'\in S}\sum_{r\in R}p(s',r|s,a)[r+\gamma v_\pi(s')] qπ(s,a)=s′∈S∑r∈R∑p(s′,r∣s,a)[r+γvπ(s′)]
它对于最优策略 π ∗ \pi^* π∗也是成立的,所以有:
q π ∗ ( s , a ) = ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ v π ∗ ( s ′ ) ] \begin{equation}q_{\pi^*}(s,a)=\sum_{s'\in S}\sum_{r\in R}p(s',r|s,a)[r+\gamma v_{\pi^*}(s')]\end{equation} qπ∗(s,a)=s′∈S∑r∈R∑p(s′,r∣s,a)[r+γvπ∗(s′)]
代入到公式(1)中可以得到:
v π ∗ ( s ) = max a ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ v π ∗ ( s ′ ) ] v_{\pi^*}(s)=\max_a\sum_{s'\in S}\sum_{r\in R}p(s',r|s,a)[r+\gamma v_{\pi^*}(s')] vπ∗(s)=amaxs′∈S∑r∈R∑p(s′,r∣s,a)[r+γvπ∗(s′)]
上式就是贝尔曼最优方程。对于动作价值函数也可推导出类似的结果:
将公式(1)代入公式(2)中:
q π ∗ ( s , a ) = ∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) [ r + γ max a ′ q π ∗ ( s ′ , a ′ ) ] q_{\pi^*}(s,a)=\sum_{s'\in S}\sum_{r\in R}p(s',r|s,a)[r+\gamma \max_{a'}q_{\pi^*}(s',a')] qπ∗(s,a)=s′∈S∑r∈R∑p(s′,r∣s,a)[r+γa′maxqπ∗(s′,a′)]
当然这两个贝尔曼最优方程中 v π ∗ v_{\pi^*} vπ∗和 q π ∗ q_{\pi^*} qπ∗分别用 v ∗ v_* v∗和 q ∗ q_* q∗代替也是成立的,原因见定义。