这是本章在课程中的位置,属于基础工具中的最后一章,主要讨论了最优状态值(Optimal State Value)与最优策略(Optimal Policy),并介绍了对应的计算方法-贝尔曼最优方程(Bellman Optimality Equation,BOE)。

如果一个现有的策略不是最优的,那么如何提升呢?结论就是对策略进行改进。

比如起始状态是S1,当前的策略是在S1状态100%向右移动(S1上的右箭头)。但是通过对S1状态上各行为值的计算,可以看出来右移(A2)行为值取值并非最大,下移(A3)的行为值取值最大。

可以据此优化现有的策略,将策略在S1上的行为进行修改,从而增加整个策略的状态值。

状态值的作用就是用于衡量两个策略之间的优劣,如果对于同一个环境下,对于所有的状态s,策略Pi1的状态值均大于策略Pi2,则可以说策略Pi1由于策略Pi2,以下是相关的数学描述。

既然有了对比,那么会有一个策略Pi_star,它的状态值优于同一个环境下其他所有的策略,那么这个策略就叫做最优策略。

而计算获取最优策略的方法,就是贝尔曼最优方程,贝尔曼最优方程的形式如下。

与贝尔曼方程相比,前面多了个max符号,作用是从后续各种参数算出的结果中,找到最大的作为结果。这个跟最优化理论中的argmax不太一样,argmax指的是当后续函数取最大值时对应的参数。这个方程中的r,p(r|s,a),p(s'|s,a)等都是已知的,这表明整个环境信息是已知的,各状态的状态值是未知的,
贝尔曼最优方程的矩阵-向量形式为

对整个运算求max,等价于对每一行的运算求max

后面需要讨论的是,如何解这个方程,这个方程的解是否存在,方程的解是否唯一,以及如何将解转换成最优策略。
计算最优策略的方法是,首先固定住未来的状态值v(s'),仅计算当前状态值的最大值。

最后简化成了计算当前状态s下行为值期望的最大值,很显然最大值就是几个候选行为中,行为值最大的那个,下面是证明过程:

所以贝尔曼最优方程,这里通过简化,可以变成对当前状态值最大值的求解。

然后根据对相关行为值的计算,修改策略在当前状态下的行为选择。

贝尔曼最优方程,可以记作一个关于状态值v的方程,就是下面的v=f(v),因为前面的R_pi是当前状态下动作值的最大值(前面证过了)。

这里提出了一个新的概念,压缩映射或者压缩函数,指的是函数映射之后能缩小两个自变量之间的距离,数学表达如下

这个压缩函数或者压缩映射,存在一个固定点x_star,这个固定点的含义是x*=f(x*)。证明过程如下,主要是将自变量映射出的因变量,继续映射或者传入函数(一回事),这么不停的迭代,最后会逐渐收敛,整个迭代不会发生变化了。

回到贝尔曼最优方程,它的形式是

可以证明这个贝尔曼最优方程是一个压缩映射(证明过程用的是豆包)

那么根据压缩映射的性质,通过一个初始状态的状态值,通过迭代总会到一个固定点,既是最优点,这个方法叫做值迭代算法。

贝尔曼最优方程的解,其对应的策略就是整个环境的最优策略

最优策略的形式,就是每个状态都会100%选择行为值最大的策略。

那么对最优策略和最优状态值的决定因素是什么,是环境系统模型,奖励设置和折扣率。

奖励值决定了对一些行为的取舍,且奖励的绝对值大小并不重要,主要是各行为奖励的相对大小。而折扣率决定了策略的侧重,折扣率越接近于零则策略越短视,极端情况下降到零则可能永远到不了目标状态。
同时,最优策略也避免了绕路刷分的情况,因为通过折扣率完成了对绕路的惩罚,路径越长惩罚的越严重。

最后是本章的总结,贝尔曼最优方程的两种形式:元素形式与矩阵-向量形式。

通过压缩映射的性质,决定了贝尔曼最优方程可解,且解是唯一的。解贝尔曼最优方程的方法就是通过迭代法,结果会最终收敛。解贝尔曼最优方程的目的,是通过最优解找到最优状态值和最优策略。