值迭代
根据收缩函数的性质,可以得到贝尔曼最优方程的求解方式:
上式的可以任意取值,最终可以成功找到最优的策略,这个算法称为值迭代。
值迭代可以分成两步:
步骤一:策略更新:
解释:
对于任意取值的,即初始化可以任取状态值,我们能算出每个状态下采用不同action得到的action value,即q(v,a),那么我们选取最大的q(v,a)对应的action,作为新的策略
步骤二:值更新:
解释:
由步骤一得到的新策略,那么根据这个新策略,我们可以算出这个策略下的(因为
是由该策略下采取的action的reward即
和其到达的状态的状态值
决定的),再次回到步骤一进行迭代
策略迭代
算法思想:首先给定任意的策略
步骤一:策略估算(PE,policy evaluation),根据策略,计算state value
由于策略已经给定,每个action的reward是已知条件,那么我们可以明确每一个状态下采取哪一个action,获得多少reward,以及跳到哪一个状态,由此可以计算上式。
步骤二:策略优化
在步骤一中已经得到所有的state value,每个action得到的动作价值即q(v,a)由动作的reward(已知条件)、动作到达的下一状态的状态值(步骤一得到的计算值),因此每个action的q可以计算出来,在其中选择q值最大的action作为新的策略。再次回到步骤一进行迭代。
-----------------------------------------------------
中对于
的求解问题:
1、矩阵运算求解:进行矩阵的运算后可以得到:,但是由于矩阵的逆求解十分困难,因此一般不采用这种方式
2、迭代求解:
其中可以任意取初始值,进行迭代无数次,最后得到的
就是方程的解
-----------------------------------------------------
截断策略迭代算法
对比值迭代和策略迭代,都有计算state value即v的步骤:
1、值迭代仅计算了一次(从到
)之后就进行策略更新,
2、策略迭代中,使用迭代求解的方式的话,v计算了无穷次,直到得到方程的真正解
在实际运算中,计算无穷次是不现实的,我们在计算N次后,当和
的差距较小时,停止计算(截断),此时的
为近似解,利用该近似解进行策略优化。这种算法称为截断策略迭代算法。
可以注意到,截断算法中N取1,则变成了值迭代算法。