强化学习(Reinforcement Learning)
什么是强化学习
强化学习 (Reinforcement Learning)是一类学习方法的总称,这类学习方法
通过
与环境进行交互,利用环境给出的反馈信息进行学习
。
这些问题有四个共同特点:
1. 学习过程需要不断
主动尝试
。
2. 指导信息是
一系列动作完成后的反馈
,而非某个动作的具体对错。
3. 学习的目标是一系列动作完成后的
总体收益最大化
。
4. 学习过程中产生
动作有可能对环境产生影响
。
如图所示是强化学习的结构框架,其中学习结构是机器的内在数据结构与
算法,可以形象地看作一个机器人,也叫
智能体(Agent)
。让机器人依某一
策
略(Policy)
和
环境 (Environment)
交互,每次交互时通过
观察
得到当前的
环境
状态(State)
,根据这一状态选择某一
动作(Action)
,依此得到
奖励
(Award)
或
收益 (Reward)
通过多次交互,机器人即可学习到在特定环境下选
择合适动作的
优化策略 (Optimal Policy)
,使得
总体收益(Retutn)
最大
化。
•
主体
(agent)是动作的行使者,例如配送货物的无人机,或者电子游戏中奔跑
跳跃的超级马里奥。
•
环境
(Environment)是智能体发生动作、进行交互的世界和环境。
•
状态
(state)是主体的处境,状态和动作共同决定了环境即将发生的变化。
•
动作
(action)的含义不难领会,但应当注意的是,主体需要在一系列潜在动
作中进行选择。在电子游戏中,这一系列动作可包括向左或向右跑、不同高度
的跳跃、蹲下和站着不动。在股票市场中,这一系列动作可包括购买、出售或
持有一组证券及其衍生品中的任意一种。无人飞行器的动作选项则包括三维空
间中的许多不同的速度和加速度。
•
收益
(reward)是用于衡量主体的动作成功与否的反馈。例如,在电子游戏
中,如果马里奥接触一枚金币,他就能赢得分数。主体向环境发出以动作为形
式的输出,而环境则返回主体的新状态及奖励
“吃豆人”游戏中,智能体(吃豆人)的目标是吃掉网格中的食物,并避开
途中的幽灵。这种情况下,网格世界是智能体行为的交互环境。智能体吃食物
会得到奖励,如果被鬼杀死会受到惩罚(输掉游戏)。状态是智能体在网格中的
位置,累积总奖励是智能体赢得游戏。
强化学习和其他机器学习方法的关系
共性:都可以看成对输入的“函数化”处理。
•
监督学习:对每个数据样本有明确
标注(监督)
,对应到强化学习任务,则意
味着在某一状态下应采取的每个动作都有明确标注。这显然不是强化学习的典
型场景。
•
无监督学习:
不对数据做任何标注
,主要任务是发现数据的分布规律。
•
强化学习:提供了
一定的”标注”,即奖励信号
。尽管这些标注既不及时,也
不直接, 还可能充满噪声,但毕竟对学习方向提供了指导。可以认为是一种
弱
标记学习
。特别是,这一标记对某一具体动作来说是弱标记,但对于整个学习
任务却是非常强的,直接标注了
整个任务的成败
。纯粹的
目标驱动
,是以成败
论英雄的“逐利学习”。
从学习信号的结构复杂性和时序复杂性两个维度对一些机器学习算法的归类:
1. 监督学习(Supervised Learning):学习信号结构上简单,时序上即时。
2. 最小风险学习(Minimum Risk Learning):学习信号时序上是即时的, 但结
构上比较复杂,需要考虑和任务相关的风险。
3. Contextual Bandit:学习信号时序上是即时的,但结构上更为复杂,是一些和
任务相关的奖励或惩罚信号。
4. 时序监督学习(Temporal Supervised Leatning):学习信号是简单的, 但信
号会延迟出现,如一句话的情绪,一段发音的音节等。
5. 模仿学习(Imitation Leatning):学习信号结构上稍微复杂,时序上稍有延
迟。例如,在机器模仿人类做面条的任务中,我们并不需要对机器人的每个动
作都做出指导,而是通过一个示范过程告诉机器人完成目标需要采取的大致流
程。
6. 强化学习(Reinforeement Leatning):学习信号复杂、间接,且需要和环境
主动交互才能获得,学习信号的延迟比较严重。
强化学习的应用
•
机器人领域,强化学习可以用来学习对抗环境复杂性的策略
•
金融领域中,强化学习可以用来辅助投资决策
•
在媒体领域,强化学习可以帮助网页工程师设计合理的交互界面,引导用户的
浏览倾向
•
在医疗领域,强化学习可以用来对药品测试方案进行设计。
•
博弈游戏。
强化学习最能发挥作用的地方,是系统结构未知、 数据难以标注、时间和空间
相关性较强的复杂任务,适合采用不断尝试、逐渐获得经验的策略。
强化学习问题
收益(Rewards)
•
R
t
是一个标量反馈信号
•
反映了智能体在时刻 t 行为的好坏
•
智能体的目标是最累积收益最大化
例如:
•
无人机和无人车控制
+奖励:如果按预定轨迹运行
-奖励:碰撞或翻车
•
下围棋
+/-奖励:赢了/输了
•
Atari 游戏
+/-奖励:得分增加/减少
•
机械臂控制
+奖励:成功抓到东西
序列决策(Sequential Decision Making)
•
目的:选择动作使将来的
累计收益最大化
•
动作可能会产生长期后果
•
奖励/收益可能会有延迟
o
下围棋时只有在最后才能获得奖励
•
有事,需要牺牲
短期收益
来获得更多的
长期收益
智能体(Agent)
智能体是强化学习需要不断优化的部分,是我们能精确控制的部分。
智能体与环境(Environment)
环境是我们无法直接控制的部分。
在学习中的每一步 t:
•
智能体:
1.
执行动作 A
t
2.
得到观察 O
t
3.
得到收益 R
t
•
环境:
1.
收到动作 A
t
2.
发出观察 O
t
3. 发出
得到收益 R
t
历史(History)和状态(State)
•
历史(history):一连串的观察 O、动作 A、收益 R:
•
下一步将发生什么取决于历史,其中:
o
智能体选择动作
o
环境选择观察/收益
•
状态(state)
是历史的一种表示,用来预测下一步会发生什么
•
本质上,状态 S
t
是历史 H
t
的函数:
环境状态和智能体状态
环境状态
•
是环境的内部表示
•
包括环境
用来决定下一次观察/收益的所有数据
•
通常对个体
并不完全可见
,个体有时并不知道环境状态的所有细节
•
即使有时候环境状态对个体可以完全可见,也可能包含一些无关信息
智能体状态
1.
是智能体的内部表示
2.
包括智能体可以使用的、决策未来动作的所有信息;
3.
是强化学习算法可以利用的信息
4.
可以是历史 H
t
的函数:
例如:
•
机器人
o
环境状态:所有机械零件的参数,状态等
o
智能体状态:传感器所获得的数据
•
游戏
o
环境状态:所有的游戏参数以及对手信息
o
智能体状态:玩家所能看到的观测
•
对智能体来说,环境状态是未知的,智能体状态是已知的
•
智能体通过智能体状态来做出相应的动作
•
没有特殊说明的情况下,所说的状态均指
智能体状态
。
信息状态(Information State)/马尔可夫状态(Markov State)
•
信息状态包括历史上所有有用的信息,又称 Markov 状态
•
状态 S
t
是马尔可夫状态,当且仅当:
随机过程的某事件只取决于它的上一事件,与初始状态无关。
o
如果信息状态是可知的,那么所有历史信息都可以丢掉
o
t 时刻的信息状态是未来的
充分统计量
o
环境状态是 markov 的
o
历史是 markov 的
完全可观测环境(Fully Obserable Environment)
•
智能体直接观察环境状态:
•
智能体对环境的观察 = 环境状态 = 智能体状态
•
强化学习的主要研究问题——马尔可夫决策过程(Markov Decision Process,
MDP)
部分可观测的环境 Partially Observable Environments
•
部分可观测:
智能体
间接
观察环境
•
例如:
o
带摄像头的机器人智能体对周围环境的观察
o
交易员只能看到当前交易价格
o
扑克牌玩家只能看到自己的牌和已经出过的牌,不知道整个环境(包括对手的
牌)状态
•
智能体状态 ≠ 环境状态
•
部分可观察马尔可夫决策过程
(Partially Observable Markov Decision
Process,POMDP)。
•
智能体必须构建自己的状态表示形式:
o
记住完整的历史:
o
环境状态的置信(概率):
o
循环神经网络
:
强化学习智能体
强化学习智能体可由以下一个或几部分组成:策略(Policy)、值函数(value
function)、模型(model)
•
策略:
智能体的动作函数
•
值函数:每种状态和/或动作有多好
•
模型:智能体对环境的表示
策略(Policy)
•
由当前的观察来决定动作
•
是从状态到动作的映射
•
直观上描述就是:当智能体在什么状态时应该做什么事。
•
两种形式:
o
确定性策略
(
Deterministic policy
)即:
在某种状态 s 下,一定会执行动作 a
o
随机性策略
(
Stochastic policy
)即:
在某种状态下执行某动作的概率
值函数(Value function)
•
对未来能获得收益的
预测
•
用来
评价当前状态的好坏
:
•
以在各种动作中做出选择
模型(Model)
•
智能体用来
对环境做出预测
,包含两部分:
o
——预测下一状态
o
——预测下一收益
以迷宫为例
•
每走一步获得 -1 收益
•
动作:向上、向下、向左、向右
•
状态:智能体位置
策略
红箭头代表策略,表示智能体在相应的某个状态 s(即位置)所采取的动作
π(s)
值函数
•
-1 代表离终点一步,起点是-16,左下方区域离终点越来越远
•
数字表示对应状态 s 的值函数 v
π
(s)
模型
网格布局代表:
网格数值代表:
强化学习智能体的分类
•
完全可观测环境强化学习
•
部分可观测环境强化学习
•
Value Based
o
No Policy (Implicit)
o
Value Function
•
Policy Based
o
Policy
o
No Value Function
•
Actor Critic
o
Policy
o
Value Function
•
无模型(model-free)
o
价值函数和/或策略
o
无模型
•
基于模型(model-based)
o
价值和/或策略函数
o
有模型
学习(Learning)和规划(Planning)
•
学习(Learning)
o
环境初始时是未知的
o
智能体不知道环境如何工作
o
智能体与环境进行交互
o
逐渐改善其行为策略
•
规划(Planning)
o
环境如何工作对于个体是已知或近似已知的
o
个体并不与环境发生实际的交互
o
利用其构建的模型进行计算
o
在此基础上改善其行为策略
学习:
规划:
常用的强化学习问题解决思路:先学习环境如何工作,了解环境工作的方式,
学习得到一个模型,利用这个模型进行规划。
探索 (Explotation)和利用(Exploitation)
•
强化学习是一种试错(trial-and-error)的学习方式
•
智能体应该能发现好的策略
•
根据之前得到的经验
•
在过程中得到尽可能多的收益
•
Exploration(探索)会放弃一些已知的收益信息,而去尝试一些新的选择
•
Exploitation(利用)会根据已知的信息最大化收益
举例:在选择餐馆时
o
Exploitation(利用)会选择最喜欢的餐馆
o
Exploration(探索)则会尝试选择一个新的餐馆
强化学习是一种主动学习方法,通过主动和环境进行交互产生学习样本。因
此,如何提高交互质量是强化学习中的一个核心问题,即探索 (Explotation)
和应用(Exploitation)的权衡:太多无用的尝试会浪费大量资源;过于相信
当前的经验又可能错失更好的机会。