一、强化学习是什么?
首先,我们思考一下学习本身,当一个婴儿在玩耍时可能会挥舞双手,左看右看,没有人来指导他的行为,但是他和外界直接通过了感官进行连接。感知给他传递了外界的各种信息,包括知识等。学习的过程贯穿着我们人类的一生,当我们开车或者说话时,都观察了环境,并执行一系列动作来影响环境。强化学习描述的是一个与环境交互的学习过程。
那么强化学习是如何描述这一学习过程的呢?以人开车为例,将人和车作为一个整体(agent),外界红绿灯、车道线等信息构成了环境(environment),然后人通过控制车辆向左、向右转弯或者直行的动作(action),影响了这个环境的状态(state),比如说前方有车,向右转弯后车道前没有车辆,这就说明车辆的动作影响了环境的状态。
但是,仅仅有了agent、environment、state和action还不够,需要有一个奖惩来指导agent的行动,这就是reward,比如车辆闯红灯会收到罚单。那么说到这里,大家一定很好奇:reward是如何指导强化学习的呢?首先我们要从强化学习的特性说起。
二、强化学习特性
强化学习作为机器学习的一种,免不了要被拿来和监督学习以及无监督学习比较。
首先,监督学习的特点是学习的数据都有标签(labels),即我们在学习之前就以及告知了模型什么样的state下采用什么样的action是正确的,简单说就是有个专门的老师(或者监督者)告诉算法,什么是对什么是错,通常用于回归,分类问题。无监督学习则恰恰相反,其所用于学习是数据没有label的,而是通过学习无标签的数据来探索数据的特性,通常用于聚类。
上文说到,强化学习是与环境实时交互并且会通过动作影响环境的,我们所采用的数据是没有一个正确的label明确告诉我们哪种action是好哪种是坏。但是我们提到了用一种特殊的奖惩机制来引导action,那就是reward。 reward并不向label一样,是在学习前就已存在与数据中,而是在当前时刻 t 的状态 st s t 下,执行了相应的动作 at a t , 才会在下一时刻(t+1时刻)获得一个对 t 时刻的reward Rt+1 R t + 1 ,细心的你一定发现了这好像存在延迟,对啦,reward 本来就是一种延迟奖励的机制,另外,有些action通过对环境state的影响,可以影响到好多步之后的reward, 因此强化学习的目标为最大化reward之和,而不是单步reward。
说了那么多,现在可以总结一下强化学习的特性啦!强化学习有如下特点:
- 没有监督者,只有一系列的reward
- 反馈不是及时的,而是延时的
- 算法接受的数据是有时间顺序的
- agent的动作可以对环境产生持续影响
对第三点而言,需要额外解释一下,在监督学习中,通常假设数据是通过独立同分布采样的,即假设所有的样本数据都是通过在同一个分布下(如高斯分布)独立采样获得,而这一点对于强化学习来说,明显是不大可能,因为强化学习是一种与环境交互的学习问题,这意味着state和action的时序性是很重要的,他所获得的一系列state很大程度上是有联系的,并不是独立存在的。比如用强化学习下棋的例子中,当前落子位置会影响后面的落子。
三、强化学习问题
强化学习定义的是一类问题,即强化学习问题,用于解决该类问题的方法我们称之为强化学习方法。第一节中,我们说到强化学习的几个组成部分:reward、agent、environment、state、action。第二节中,我们明确了强化学习的目的为选择action用以最大化所有未来的reward(reward之和),下面我们将分别介绍其他几个部分是如何影响强化学习工作的。
3.1 agent and environment
agent与environment的交互过程如下图所示,其中大脑表示agent,地球表示environment。