Model-free approaches
这种方法不需要transition function
和reward function
。这种方法估计状态值函数
q
(
s
,
a
)
q(s,a)
q(s,a),从中确定最优策略。主要分为两类:Monte Carlo methods
,temporal difference methods
。
蒙特卡洛法:
要想寻找数学问题的近似解,需要借助随机采样过程中获得的经验。
当一个agent-environment
迭代的模型是不可用的时候,蒙特卡洛法使策略迭代成为可能。在model-free
设置中,策略评估可以通过蒙特卡洛预测评估
q
π
q_π
qπ来实现,策略改进则与model-based
中的策略迭代相同。
下图为策略迭代的实现,AKA. Monte Carlo control
。蒙特卡洛预测也可以被单独使用,来寻找给定策略π的状态值
v
π
(
s
)
v_π(s)
vπ(s)。
缺点:
对于
v
π
(
s
)
v_π(s)
vπ(s)或
q
π
(
s
,
a
)
q_π(s,a)
qπ(s,a)的估值依赖于独立随机的采样,结果只能在一个episode
完成后进行计算。这意味着估值只能在一个episode
结束后被更新。这影响了蒙特卡洛的效率。
时间差分法:
它和蒙特卡洛法最大的区别是进行策略评估时,更新
V
(
s
)
V(s)
V(s)或
Q
(
s
,
a
)
Q(s,a)
Q(s,a)估值的时间范围。时间差分法可以在episode
完成前进行更新——通常在一个episode
完成几个状态转变后,AKA. bootstrapping
。如果我们把更新
V
(
s
)
V(s)
V(s)和
Q
(
s
,
a
)
Q(s,a)
Q(s,a)估值认为成agent是否更聪明的标志,这时bootstrapping能让agent更快地变得更聪明。
时间差分法在迭代中更新 V ( s ) V(s) V(s)和 Q ( s , a ) Q(s,a) Q(s,a)估值时,使用的更新法则包括一个误差项(以下式表示)。
这一部分只讨论三种方法:TD(0), Q-learning, SARSA
三种方法的主要区别是:
- 哪个值在被评估( v ( s ) v(s) v(s)或 q ( s , a ) q(s,a) q(s,a))
- 怎么计算估计的目标值
TD(0)
TD(0)是为策略评估设计的。对于给定的策略 π π π,这个方法随机选择了一些 v ( s ) v(s) v(s)的初始值,随后迭代地执行公式中给出的更新规则,直到更新后的值收敛于接近于 v π ( s ) v_π(s) vπ(s)。
Q-learning
Q-learning是为寻找最优策略设计的。对于给定的强化学习问题,这个方法随机选取了 q ( s ) q(s) q(s)的初始值,随后迭代地执行更新规则,直到更新的值收敛于 q ∗ ( s ) q_*(s) q∗(s)的近似值,随后提取最优策略。
Q-learning有两大优势:无需模型&实现简单。然而在实践中它的计算最复杂,因为要考虑到大量的state和可能的action。所以经常文艺地称它为维数灾难curse of dimensionality
。Deep Q-Network(DQN)方法是由DeepMind开发来解决这个问题的。
SARSA
SARSA和Q-learning方法很像,区别在于计算目标值的方式,这对agent的行为有很大影响。