蒙特卡罗方法

蒙特卡罗方法

动态规划中估计的是状态值,然后通过状态值来获取动作值,但在模型末知的情况下,智能体不知道环境的所有状态,无法对状态值进行预估,导致无法通过状态值来获取动作值,因些在免模型的情况下,我们将估计对象从V转变为Q。

蒙特卡罗方法是在进行一个阶段的采样后再更新值函数。

通过与环境互动评估策略 π 的方法分为两大类别:
异同策略方法使智能体与环境互动时遵守的策略 π 与要评估(或改进)的策略相同。
离线策略方法使智能体与环境互动时遵守的策略 b (其中 b π )与要评估(或改进)的策略不同。
状态 s S 在某个阶段中的每次出现称为 s 一次经历

1、动作值评估:
有两种类型的蒙特卡洛 (MC) 的预测方法 :

首次经历 MC 将一个阶段的 q π ( s , a ) 估算为 ( s , a ) 首次经历之后的平均回报(即忽略与后续经历相关的回报);

所有经历 MC 将一个阶段的 q π ( s , a ) 估算为 ( s , a ) 所有经历之后的平均回报。

q ( s , a ) = 1 k i = 1 k r i

2、动作值更新:

Q t + 1 ( s , a ) = Q t ( s , a ) + a ( q t + 1 ( s , a ) Q t ( s , a ) )

动作值更新公式的推导:
Q t + 1 ( s , a )
= 1 t + 1 i = 1 t + 1 q i ( s , a )
= 1 t + 1 ( i = 1 t q t ( s , a ) + q t + 1 ( s , a ) )
= 1 t + 1 ( t Q t ( s , a ) + q t + 1 ( s , a ) )
= Q t ( s , a ) + 1 t + 1 ( q t + 1 ( s , a ) Q t ( s , a ) )

上述推导得到一个可持续减小的步长 1 t + 1 ,当执行多次阶段后,动作值函数的变化就减少了,为使得经过多次阶段后,依然能够改进策略,使用固定步长 a ( 0 < a 1 ) 代表 1 t + 1 ,最终得到动作值的更新函数。

a 的值越大,学习速度越快,但如果值过大,可能会导致MC控制无法收敛于最优策略 π

3、策略改进:

π = a r g m a x a A ( s ) Q ( s , a )

4、e贪婪策略:

智能体的动作选择是根据策略来选择的,如果按照策略改进后的策略来选择动作,那智能体将无法接触到所有的状态,也就无法得出最优策略。使用e贪婪策略,智能体会以下方式选择动作:
{ e , 随机选择动作 1 e , 选择贪婪动作
为了让智能体能接触到更多的state,开始时e值应该尽量大,但当智能体接触到所有的state时,e值应该尽量小,所以e值应该是一个衰减函数:
e = e 0 t , ( 0 < e 0 1 )

猜你喜欢

转载自blog.csdn.net/u012587024/article/details/81361010