Motivating example
当一个Policy不够好的时候,我们应该怎么改进这个Policy?
使用action value来进行改进,当选择新的action时,得到的action value可以变大,则可以改动policy
最优的定义
如果在所有的状态S,Π1所得到的state value都是大于Π2的,那么Π1的策略就是比Π2要更好的
定义就是,对于每一个state ,在采取这个policy时,每一个state的state value都大于另一个,则说明这个policy更好
贝尔曼最优公式
先求解出一个最优的Π,然后通过这个Π来做贝尔曼公式计算state value
最优化部分求解
求解最优化问题的思路包括:
首先给定一个确切的V(s')从而得到一个确切的q(s,a),这样上面的贝尔曼最优公式中就只含有了一个未知数,也就是Π
假设有三个police分别为c1,c2,c3,那么这里的c1+c2+c3=1,并且c1,c2,c3都大于0
我们先假设q1,q2,q3中最大的时q3,那么就只有当c3的概率为1时,总体的state value才会达到最大值
则最优值就是得到一个最大的q值,也就是选取最大的action value时的概率为1,不是最大的action value的概率为0
求解贝尔曼最优公式
数学基础
不动点(Fixed point):如果一个值x,在经过了函数的映射之后又回到了自己,则说明x是一个不动点
收缩函数(Contraction function):x1和x2进行函数映射之后,他们之间的举例要比原来要小,则成为这个函数f(x)叫收缩函数
对于一个形如x=f(x)的函数,如果f是一个收缩函数,则
一定纯在一个不动点x',使得f(x')=x'
并且这个x‘是唯一存在的
如果设定一个算法,xk+1 = f(xk)则当一直迭代下去,xk = x'
例子
求解过程
证明贝尔曼最优公式是一个满足条件的收缩函数
求解
首先有一个估计值Vk(s)
然后对于每一个s求解qk(s,a),在求解时所有的东西都是已知的,那个Vk(s')时通过估计值给出的
基于qk选择一个ak*,这个就是可以得到最大的qk的那个ak
然后Vk+1(s)就等于这个最大的qk的值
例子
这里的q-value其实就是一个同一个state下的不同的action value的值
通过先设置V0时各个state的 action value
计算这些action value,然后选出最大的action value
然后选择那个action,则V1时刻的 最大的action value为1.9
然后通过设置K=1可以进行不断的迭代
根据上面的法则,函数最终会收敛到一个不动点,所以这个地方最后会不断的迭代直到收敛
又因为每次都是取最大值,如果想要最大,就证明这个策略可以得到更多的reward
所以最后就可以迭代出一个最优策略
贝尔曼最优公式解的最优性
贝尔曼最优公式是一个特殊的贝尔曼公式,也就是当取到了最优策略时的贝尔曼公式
分析最优策略
黑色的量是需要我们自己求出来的,红色的量是给定的
这其中说明了黑色的量是根据红色的量进行计算出来的,所以当红色的这些量进行改变时,黑色的量会有哪些改变呢?
这其中的最优策略选择了穿过障碍物,因为当穿过障碍物时,得到的return更大(更近,并且进入障碍物只扣一分导致了这个结果)
调小了discount rate之后,就更加远视了
当discount rate=0时,就说明只关注当前的reward了
增加了闯入障碍物的惩罚,也会绕开障碍物
更关键的是相对的reward的差异,而不是reward的绝对值大小
因为discount rate,所以最后得到的路径会尽量的不转弯