Reinforcement Learning
Table of Contents
1. Model-free Learning
强化学习一般使用马尔可夫决策过程(Markov Decision Processes, MDP)来描述。在强化学习中,如果环境的转移模型,回报函数是已知的,这被称为“有模型学习”(model-based learning)。对于 model-based learning,求解最优策略有两种常用方法:“价值迭代”和“策略迭代”。在阅读下面内容前请先熟悉 model-based learning,如果不熟悉可参考:http://aandds.com/blog/mdp.html
在很多时候,环境的转移模型,回报函数是很难得到的,甚至很难知道环境中一共有多少状态,这被称为“免模型学习”(model-free learning)。后文介绍的“蒙特卡罗”和“时序差分”都属于 model-free learning。
2. 蒙特卡罗(Monte Carlo)强化学习
在 model-free 情况下,转移模型等是未知的。蒙特卡罗方法又称为模拟统计方法,它不需要模型的定义,适用于 model-free 的情况。
2.1. 策略评估
假设我们选择了一个策略
蒙特卡洛是一种模拟统计方法,当模型未知(model-free)时,对策略
设某次采样得到的状态轨迹为
下面用一个实例来介绍一下
如果
蒙特卡洛方法采用的办法是 用
前面例子中,在策略
由大数定理知,当采样次数足够多(
2.1.1. 增量更新
计算
由上式知,计算
其中,
2.1.2. First Visit VS. Every Visit
在一次 episode 过程中,同一个状态可能出现多次。假设在第 3 次 episode 时出现下面序列:
上面出现了两次状态
First Visit 的含义是在计算状态
Every Visit 的含义是在计算状态
2.1.3. 优缺点
Monte Carlo Methods have below advantages:
- Zero bias
- Good convergence properties (even with function approximation)
- Not very sensitive to initial value
- Very simple to understand and use
But it has below limitations as well:
- MC must wait until end of episode before return is known
- MC has high variance
- MC can only learn from complete sequences
- MC only works for episodic (terminating) environments
参考:https://towardsdatascience.com/monte-carlo-learning-b83f75233f92
2.2. epsilon-greedy 策略
要较好地获得值函数的估计,我们需要多条不同的采样轨迹。然而,我们的策略有可能是确定性的,即对于某个状态只会输出一个动作,若使用这样的策略进行采样,则只能得到多条相同的轨迹。
为了解决这问题,我们以
本文介绍的策略都是 epsilon-greedy策略。
3. 时序差分(Temporal Difference)强化学习
前面介绍 Monte Carlo 强化学习时,推导出了“状态-值函数”的增量更新公式:
下面我们想办法来解决这个“痛点”,即去掉必须模拟执行到“终止状态”才能计算
假定
设
这样改写后,误差(
如果我们仅保留第一份误差,省略其它误差。这样在进行
上面省略了迭代计算的轮次
Monte Carlo 方法需要往后模拟执行,直到达到终止状态,而上面介绍的时序差分方法是仅往后模拟执行一步,当然我们也可以往后模拟执行
Figure 1: n-step temporal difference learning
3.1. TD(0)算法
TD(0)算法前面已经介绍了,
3.2. SARSA算法
SARSA (State–Action–Reward–State–Action) 算法是 Rummery 和 Niranjan 在 1994 年发表的。
3.2.1. Q (Action-value function)
有了“状态-值函数”,为什么需要定义 Q 函数(“行为-值函数”)呢?
However, we must note that knowing the exact value of all states is not enough to determine what to do. If the agent does not know which action results in reaching any particular state, i.e. if the agent does not have a model of the transition function, knowing V does not help it determine its policy. This is why similar algorithms based on state-action pairs and computing the action-value function Q were developed.
摘自:Markov Decision Processes in Artificial Intelligence, 2.5. Temporal difference methods
我们知道,策略
“行为-值函数”的计算公式(也可称为定义)为:
式中,
它们显然有关系(
3.2.2. 更新公式
SARSA 算法的更新公式和 TD(0) 算法是一样的,只是把“状态-值函数”换成了“行为-值函数”。
SARSA 算法的更新公式:
使用更新公式时需要的信息为
SARSA 算法的描述如图 2 所示。
Figure 2: SARSA
摘自:Reinforcement Learning - An Introduction, Chapter 6 Temporal-Difference Learning
3.3. Q-Learning
Q-Learning 算法是 Watkins 在 1989 年发表的,不过直到 1992 年其收敛性才由 Watkins 和 Dayan 证明。
3.3.1. 更新公式
3.3.2. 应用实例
3.3.3. SARSA VS. Q-Learning
SARSA 和 Q-Learning 的区别如图 4 所示。
Figure 4: Q-Learning(左图) VS. SARSA(右图)
3.4. Deep Q-Learing (DQN)
深度增强学习(Deep Reinforcement Learning)是 DeepMind 重点研究且发扬光大的机器学习算法框架。DQN(Deep Q-Learning Network)是深度强化学习的开山之作,是将深度学习与强化学习结合起来从而实现从感知(Perception)到动作(Action)的端对端学习的一种全新的算法。比如,利用 DQN 来训练玩 FlappyBird 游戏的话,其输入可以直接是一个个游戏画面。
DQN 由 DeepMind 在 NIPS 2013 上首次发表,后又在 Nature 2015 上发表改进版。后续又有 Double DQN,Prioritised Replay,Dueling Network 等进一步改进。
4. 策略梯度(Policy Gradient Method)
前面介绍的 Q-Learing, DQN 等方法需要计算状态价值函数 V
或者行动价值函数 Q
,被称为 Value Based 方法。
Policy Gradient Method 是另一类强化学习方法,它属于 Policy Based 方法。Actor-Critic 是 Value Based 方法和 Policy Based 方法的结合体。这里不详情介绍它们,请参阅其它书籍。
5. 附录
5.1. 关于记号的说明
从状态
5.1.1. 记法一
在 Markov Decision Processes in Artificial Intelligence 一书中采用了记法一。这种记法下“状态-值函数”和“行为-值函数”分别定义如下。
策略
策略
5.1.2. 记法二
在 Reinforcement Learning - An Introduction 一书中采用了记法二。这种记法下“状态-值函数”和“行为-值函数”分别定义如下。
假设采样轨迹为:
状态
策略
策略
5.2. 参考
Markov Decision Processes in Artificial Intelligence
Reinforcement Learning - An Introduction