什么是强化学习?
强化学习的来源
强化学习(Reinforcement Learning, RL),一般也称作增强学习,和心理学、动物行为的研究等领域有比较久的渊源。
心理学中,“强化” 指生物受到外界环境中的某些刺激后,自觉或者不自觉调整应对策略,达到趋利避害。
举个例子。马戏团训练动物时(比方说猴子),训导员首先会发出某种指令(比方说抬一下手,表示希望猴子跳一下),动物接收到这个指令后,如果做出了正确的动作,会得到一定的奖励(比方说一根香蕉)。这样的过程重复很多次之后,猴子会学会一种策略,即训导员每抬一下手,我就跳一下,这样就可以吃到更多的香蕉;
上面这个例子中,训练过程就是心理学里的“强化”现象,强化行为的刺激被称为强化物(“reinforceor”),猴子策略的改变过程也就是强化学习的过程;
强化学习能做什么?
考虑这个问题之前,我们不妨先回忆一下机器学习中另外两个大类:监督学习和无监督学习(以及它们的折中,半监督学习,或者叫弱监督学习)。
-
监督学习
指利用有标注的样本,通过训练一个模型或者设计一个算法,找到从样本特征到样本标签之间的映射关系。一般用于解决感知问题,比如分类、检测、回归估计等;
例如,人脸信息的感知,看到一张人脸的图片,判断人脸的性别(分类问题)、年龄(回归问题)等信息。
-
无监督学习
指利用没有标注的样本,来寻找数据隐含结构,可以用来解决的数据的度量问题,简化数据使之更容易理解,比如降维、聚类等;
例如,通过聚类算法,可将大量的数据划分为少数的几个大类,属于同一类别的样本比较接近,这样可以简化后续的数据分析问题;再比如,通过降维算法,可以将高维数据表示为2维或3维数据,展示给人看,相比于看一串数字,可视化可以让人更直观、也容易得发现数据中的信息。
-
半监督学习/弱监督学习
由于现实生活中,大量的数据是没有标注的,人工标注数据成本也很高。因此,半监督学习,研究的是怎样 利用少量有标注的样本和大量无标注的样本,实现监督学习的目的。或者说,少花钱,多办事。。。 -
强化学习
和上面集中领域不同,强化学习旨在解决决策问题,即某一场景下,我应采取什么样的策略,才能在未来获得最大的长期总收益。研究的是有目标导向的智能体,在环境中交互的完整的过程。
再次用上面马戏团训练猴子举例子,猴子的训练过程即强化学习的过程:猴子----------------------被训练的智能体;
训导员-------------------智能体(猴子)所处的环境;
猴子的目标导向--------我要吃更多的香蕉;
猴子和环境的交互------训导员你发指令,我做动作,你给(或不给)我香蕉;
猴子的决策---------------训导员发指令后,我应该做什么样的动作,才能吃到香蕉;强化学习和监督学习很显著的差异:强化学习的过程,是智能体通过和环境的交互实现的,而环境对智能体的反馈,仅仅是对其动作的评价,而不是指导。
试错和延迟收益是强化学习两个最显著的特征。
例如,上面例子中,如果训导员以某种方式直接驱使其做出正确动作,训练过程可视作监督学习;然而,如果训导员并没有直接的告诉猴子,你的正确动作是什么,而是仅仅给予一个评价,对或者不对(给香蕉或者不给香蕉),而猴子通过不断试错,发现自己做某种动作后可以获得更多的香蕉,从而实现了训练过程,这个过程属于强化学习。
强化学习关键词
对于监督学习,关键词可以概括为 样本特征,样本标签,相关算法;
对于无监督学习,关键词可以概括为 样本特征 和 相关算法;
而对于强化学习,研究的是完整的交互过程中的决策问题,具有动态的特点,需要用发展的眼光、长远得看待问题 →_→就像下象棋一样,对于某一个棋局,下一步应该怎样走,需要以最终赢棋为目的,相比而言,最近几步的得失反而没有那么重要。因此,强化学习领域中涉及的关键要素相对较多:
-
状态 s: 当前环境的
状态(state)
, 简写 s s s,比如 当前棋盘上每个棋子的位置; -
动作 a : 某种状态下,采取的
动作(action)
, 简写 a a a,比如 拱卒 / 跳马 / 飞象 等等 -
奖励 / 单步收益 r: 某种
状态
s s s下,采取某种动作
a a a,获得单步奖励(reward)
, 简写 r r r;对于下棋,可以认为 r r r(赢棋)=1, r r r(不赢棋)=0; -
回报 / 长期收益 G: 某种
状态
s s s下,采取某种动作
a a a,在未来可以获得的所有奖励
r r r的总和;
比如,从某一棋局开局,我的动作是跳马,最终我赢了,那么这一回合中从 (开局状态
s s s,跳马动作
a a a)开始的长期收益(Gain)
,简写 G G G 就是1,即 G G G = 0(第1步谁都没赢) + 0(第2步谁都没赢) + 0(第3步谁都没赢) + … + 1(最后一步我赢了)。 -
策略 π \pi π: 智能体在根据
状态s
,以一定概率选择动作a
的过程,或者说选择动作a
的概率;
比如,对手当头炮(状态s)
,我就把马跳(动作a)
,写成条件概率就是 π ( a ∣ s ) = P ( a = A 我 把 马 跳 ∣ s = S 对 手 当 头 炮 ) ∈ [ 0 , 1 ] \pi(a|s)=P(a=A_{我把马跳}|s=S_{对手当头炮})∈[0,1] π(a∣s)=P(a=A我把马跳∣s=S对手当头炮)∈[0,1]。好的策略的目标是让长期收益G
最大; -
价值函数 : 某种
状态s
下,或某种状态s
并采取某种动作a
后,在未来按照策略 π \pi π做动作,最终获得的所有奖励总和(即长期收益G
的)的期望值 / 平均值;前者称为状态价值函数,记作 v π ( s ) v_{\pi}(s) vπ(s),后者称为动作价值函数,记作 q π ( s , a ) q_{\pi}(s, a) qπ(s,a);比如,从某一种棋局(
状态
s s s)开局,每次开局都拱卒(动作
a a a),这样重复100次,并在未来永远按照策略 π \pi π做动作,最后赢棋有10局,那么动作价值函数 q π ( s , a ) = 10 100 = 0.1 q_{\pi}(s, a)=\frac{10}{100}=0.1 qπ(s,a)=10010=0.1
强化学习分类
- 按任务
- 分幕型(回合制) / 持续型(连续制)
- 离散型(状态或空间)/ 连续型(状态或空间)
- 其他
- 按算法
- 有模型 / 无模型
- 回合更新 / 时序差分更新
- 同策学习 / 异策学习
- 基于价值 / 基于策略
- 深度/ 非深度
- 其他