目录
1、基于值的算法和基于策略的算法对比
- 基于值的算法,典型的例子是 Deep Q learning。根据状态预测奖励值 (V(s) 表示 值函数),然后选择对应V(s)最大的动作。是不适用于连续的空间的,如果在无穷多的动作中计算价值,从而选择行为,其空间是无穷大的。
- 基于策略的算法,典型的算法是 policy gradient。直接针对策略来进行优化。不需要分析奖励值,直接就可以选取动作。离散和连续都是适应的,可以在一个连续的空间内挑选动作。
2、actor-critic 算法
policy gradient需要经过一整个episode之后,才可以获得reward。actor-critic算法是基于policy gradient上进行改进的算法,结合了policy gradient和动态规划的优势。
actor-critic算法使用critic网络来学习环境和奖励之间的映射关系, 能够预测现在所处状态的潜在奖励, 利用critic网络来指导actor网络的更新,每个时刻都可以进行更新。actor网络可以根据输入的状态得到动作上的概率分布,本质上是一个策略网络,critic网络本质上是一个基于值的算法,根据输入的状态,输出当前状态的潜在奖励。使用时序差分误差来优化critic网络,然后使用策略梯度来优化actor网络。本文档提供了具体的代码实现。
3、TD-error 算法
TD-error算法和蒙特卡洛算法都是model-free算法,不需要对环境进行建模,使用样本结果来估计环境反馈的奖励值(使用采样的方法来估计状态值函数,而动态规划则是直接使用model计算得到的)。对于蒙特卡洛算法和TD-error算法,其不同点主要在于值函数的估计。蒙特卡洛算法在进行估计的时候,得估计整个eposide对应的值函数,而TD算法,只是使用下个时刻的值函数来帮助当前时刻的值函数更新。蒙特卡洛算法和TD算法对比如下: