前面我们介绍的机器学习算法都属于人工喂给机器数据,然后机器从这些数据中学得模型。而我们人类的学习过程并不是这样,人类通过自身的感官感知环境,而后从环境中获得经验、知识,因此单纯地依靠前面所介绍的方法并不能实现通用人工智能。那么有没有办法使得机器也能自动地不断从周围环境中获得经验或‘知识’呢?阿兰。图灵曾提出过这样的设想“除了试图去建立一个模拟成人大脑的程序外,为什么不试图建立一个可以模拟小孩大脑的程序呢?如果他接受适当的教育,就会获得成人的大脑。”基于这个设想,研究者们提出了强化学习(Reinforcement Learning,又译为增强学习)的概念。本文主要对强化学习的基本概念与方法进行介绍。

目录

一、什么是强化学习(RL)?

二、强化学习的类型

三、常用的强化学习算法


一、什么是强化学习?

强化学习是从一种让agent(智能主体)自动连续做出决策的机器学习方法。其原理可归纳如下:

在强化学习中,学习者是一个能够自动做出决策的agent,它通过感知自身所处的状态(state)与环境来产生动作(action),而不同状态下的不同动作会带给agent不同的奖赏(reward)。强化学习的目标就是通过一系列的试错后找到一种最优的策略(policy),使得经过一系列的动作(actions)后,所获得的总的奖赏(reward)最大。

为方便理解,可参考下面这张图

强化学习的Agent主要由三部分构成,分别是:感受器用来感知当前所处状态(State);决策模型f根据当前状态下不同动作(Action)的奖赏(Reward)来选择策略与环境交互;动作器执行这些动作;

基于上面的介绍,我们可以把一个强化学习的过程抽象为以下数学代数的形式

l 一系列agent的状态 [公式]

l 一系列agent所能采取的动作 [公式]

l 动作作用于状态产生的变化对应关系 [公式]

l 动作作用于状态所得到的奖赏 [公式]

强化学习的目标即寻找最优策略 [公式] ,假如上面的四组数据都已知,那么强化学习的求解可近似于货郎担问题,使用贪心算法即可得到不错的解。但在我们使用强化学习求解问题时往往是无法获得T和R的,因此我们必须通过不断试错来进行学习。


二、强化学习的类型

目前常见的对强化学习算法的分类有四种,下面分别介绍。

1、 Model-free 和 Model-based

Model-free和model-based的划分主要基于算法中是否用模型来表示环境。

对于Model-based类算法,其先理解真实世界是怎样的, 使用MDP与值迭代或策略迭代的方法来学习T和R,建立一个模型来模拟现实世界的反馈。通过想象来预判断接下来将要发生的所有情况,然后选择这些想象情况中最好的那种,并依据这种情况来采取下一步的策略。它比 Model-free 多出了一个虚拟环境,还有想象力。

而model-free方法不建立真实世界的模型,环境给什么就是什么,一步一步等待真实世界的反馈,再根据反馈采取下一步行动。Model-free方法常用蒙特卡洛方法与动态规划结合的数学模型来进行规划。

2、 Policy based 和 value based

Policy based:通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动,每种动作都有可能被选中,只是概率不同。

Value based:输出的是所有动作的价值, 根据最高价值来选动作。相比基于概率的方法,基于价值的决策部分更为肯定,即价值最高的动作一定会被选中,而基于概率的,即使某个动作的概率最高, 但是还是不一定会选到他.

但是对于选取连续的动作,基于价值的方法是无能为力的。我们却能用一个概率分布在连续动作中选取特定动作, 这也是基于概率的方法的优点之一。

3、Monte-carlo update(回合更新) 和 Temporal-difference update(单步更新)

强化学习还能用另外一种方式分类,回合更新和单步更新。假设强化学习就是在玩游戏,游戏回合有开始和结束。回合更新指的是游戏开始后,需要等待游戏结束再总结这一回合,再更新我们的行为准则。而单步更新则是在游戏进行中每一步都在更新,不用等待游戏的结束,这样边玩边学习。

4、On-policy 和 Off-policy

所谓On-policy(在线学习),就是指必须本人在场,并且一定是本人一边行动边一学习。而Off-policy(离线学习)是你可以选择自己行动,也可以选择看着别人行动,通过看别人行动来学习别人的行为准则,离线学习 同样是从过往的经验中学习,但是这些过往的经历没必要是自己的经历,任何人的经历都能被学习。


三、常用的强化学习算法

1. Sarsa

Q 为动作效用函数(action-utility function),相当于我们在第一章中定义的R,用于评价在特定状态下采取某个动作的优劣,可以将之理解为智能体(Agent)的大脑。

SARSA 利用马尔科夫性质,只利用了下一步信息, 让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新,更新公式如下所示:

s 为当前状态,a 是当前采取的动作,s’ 为下一步状态,a’ 是下一个状态采取的动作,r 是系统获得的奖励, α 是学习率, γ 是衰减因子。

2. Q-Learning

Q Learning 的算法框架和 SARSA 类似, 也是让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新。关键在于 Q Learning 和 SARSA 的更新公式不一样,Q Learning 的更新公式如下:

3. Policy Gradients(DeepMind,ICML’14)

系统会从一个固定或者随机起始状态出发,策略梯度让系统探索环境,生成一个从起始状态到终止状态的状态-动作-奖励序列,s1,a1,r1,.....,sT,aT,rT,在第 t 时刻,我们让 gt=rt+γrt+1+... 等于 q(st,a) ,从而求解策略梯度优化问题。

4. Actor-Critic(DeepMind,arXiv:1602.01783)

算法分为两个部分:Actor 和 Critic。Actor 更新策略, Critic 更新价值。Critic 就可以用之前介绍的 SARSA 或者 Q Learning 算法。

5.Monte-carlo learning

用当前策略探索产生一个完整的状态-动作-奖励序列:

s1,a1,r1,....,sk,ak,rk∼π

在序列第一次碰到或者每次碰到一个状态 s 时,计算其衰减奖励:

最后更新状态价值:

6. Deep-Q-Network(DeepMind,NeruiIPS’13,Nature’15)

DQN可近似看作是CNN+Q-Learning

DQN 算法的主要做法是 Experience Replay,将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。它也是在每个 action 和 environment state 下达到最大回报,不同的是加了一些改进,加入了经验回放和决斗网络架构。

参考文献

1、 王文敏,人工智能

2、 邹月娴,机器学习及其应用

3、 小道萧兮,《强化学习》,jianshu.com/p/f8b71a5e6

4、 Alice熹爱学习,《一文了解强化学习》

blog.csdn.net/aliceyang