参考资料:墙裂推荐:【强化学习视频】Reinforcement Learning Course by David Silver
《机器学习》西瓜书by周志华
课程中推荐的教材:
【1】An Introduction to Reinforcement Learning, Sutton and Barto, 1998 MIT Press, 1998
【2】Algorithms for Reinforcement Learning, Szepesvari ,Morgan and Claypool, 2010
1. 强化学习基础概念
机器学习与强化学习的关系
强化学习与其它机器学习方法有什么不同?
- 没有 supervisor, 只有一个奖赏信号( reward signal)
- Feedback is delayed, not instantaneous,反馈信息是延迟的,而不是即时的
- Time really matters (sequential, non i.i.d data) 由于是序列问题,时间属性很重要,并且数据不满足独立同分布的假设
- Agent’s actions affect the subsequent data it receives 【agent的动作会影响它后续接收到的奖赏和它的下一个状态】
强化学习的应用举例
直升机做特技表演、打败十五子棋的世界冠军、管理投资组合、发电站的控制、使仿真机器人行走、打游戏打得比人类水平高;
目录
1.2 强化学习的四个元素:Agent、环境状态、行动、奖励
序列化决策 Sequential Decision Making
Fully Observable Environments :完全可观测的环境
Partially Observable Environments: 部分可观测的环境
学习& 规划 Learning and Planning :序列决策的两个基本问题
探索&利用的平衡: Exploration and Exploitation
预测 & 控制 Prediction and Control
1.1 强化学习的目标
最大化所有时间步的累计奖励。
1.2 强化学习的四个元素:Agent、环境状态、行动、奖励
agent :在西瓜书中把Agent翻译为 “机器”,有的书中又称为计算机。The agent’s job is to maximise cumulative reward
environment: 环境,和agent互动,对于agent的动作,反馈下一个state和reward。
state:有部分可观测&完全可观测两种,后续讲MDP马尔可夫过程再详说
agent通过与environment互动,不断地试错【trial & error】来学习。 这个试错的过程就是:环境会产生可观测的状态state,agent会根据当前所处的状态来采取某个action【动作、行动】,然后environment 会对这个action反馈一个reward【奖励、奖赏】,这样的一个回合【一次尝试】称为一个时间步t;重复上述过程,然后agent的目标是要最大化所有时间步的累计奖励,也就是求出每一步该采取的action,使 最大;共有T个时间步。【后面也会讲T为无穷大时的情形】
我们通过这种尝试就可以得到由state和action、reward组成的序列。
1.3 Model-free方法
不理解环境,从环境中得到反馈然后从中学习;Model-free 中, 计算机只能按部就班,一步一步等待真实世界的反馈,再根据反馈采取下一步行动。Q learning、Sarsa、Policy Gradients
1.4 Model-based 方法
用模型来表示环境,对环境建模;比Model-free多出了一个虚拟环境,我们可以先在虚拟环境中尝试,如果没问题,再拿到现实环境中来。Model-based 能通过想象来预判断接下来将要发生的所有情况,然后选择这些想象情况中最好的那种,并依据这种情况来采取下一步的策略。
1.5 基于概率
强化学习中最直接的一种,通过所处的环境,输出下一步要采取的各个动作的概率,所以每种动作都有可能被选中,只是概率不同。基于概率的方法,不一定会选择概率最高的某个动作 .
基于概率的方法用一个概率分布在连续动作中选取特定动作,是它的优点之一。
1.6 基于价值
基于价值的方法输出的是所有动作的价值,根据最高价值来选择动作,不适用于连续动作的选取,基于价值的决策部分更为肯定,就选价值最高的。
1.7 回合更新 & 单步更新
假设强化学习就是在玩游戏,游戏回合有开始和结束。回合更新指的是游戏开始后,需要等待游戏结束再总结这一回合,再更新我们的行为准则。而单步更新则是在游戏进行中每一步都在更新,不用等待游戏的结束,这样边玩边学习。
1.8 在线学习 和 离线学习
在线学习,就是指必须本人在场,并且一定是本人一边行动边一学习。
离线学习是你可以选择自己行动,也可以选择看着别人行动,通过看别人行动来学习别人的行为准则,
离线学习 同样是从过往的经验中学习,但是这些过往的经历没必要是自己的经历,任何人的经历都能被学习。
1. 9 在线策略
1.10 离线策略
1.11 Reward Rt
【reward:“奖励、奖赏、回报”的意思,西瓜书上采用“奖赏”这个术语。】
A reward Rt is a scalar feedback signal ,it Indicates how well agent is doing at step t
时间步t 的奖励Rt是一个标量,作为一个反馈信号来衡量agent在t步的表现有多好。
强化学习是基于 reward hypothesis的
不同的学习任务中,reward的形式不同:
- 直升机做特技表演: 沿着预期的轨道飞行就获得正的奖赏;飞机坠毁则得到负的奖赏。
- 打败十五子棋的世界冠军: 游戏的 赢 / 输 对应着奖赏的 正/负
- 管理投资组合: 获得账户里的资金作为奖赏
- 发电站的控制: 产生电力则奖赏为正;超过安全临界点则奖赏为负。
- 使仿真机器人直立行走: 向前行走时奖赏为正;走路摔倒则奖赏为负。
- 打Atari游戏打得比人类水平高; 游戏得分的增加/减少对应着奖赏的正负。
序列化决策 Sequential Decision Making
-
目标: 通过选择一系列的动作 来maximise total future reward
- 采取的动作可能有长时依赖【 long term consequences】,
- 对应的Reward也可能是延迟反馈的。甚至有的时候可能要牺牲眼前的回报,来获得长远来看更好的回报。比如说金融投资可能要花上几个月才开始有收益,下棋时要用几步棋来堵死对手的路才能扭转输赢的局面。
Agent & Environment
history & State
-
history 历史数据,是由观测O、奖赏R 和采取的动作 A组成的序列,这三个是在时间t上,agent可以观测到的所有变量。
历史数据决定了下一步会发生什么: agent 来选择 动作, environment 选择 被agent观测到的状态或者奖赏 。
- State 是history的函数,是用来确定下一步所用到的信息。
环境状态
-
环境状态
是 环境的内部表征,
-
是环境用来选择下一个 observation或reward 所用到的任何信息,
-
通常不能被 agent观测到, agent最多只能观测到与
无关的信息。
agent state
- agent的状态
是agent的内部表示,
- 是agent用来选择下一个 action 所用到的任何信息,
- 也是强化学习算法所使用到的信息。
- 它可以是history 的任意函数。
- 环境state 和 Agent State 的区别啊?
Information State 信息状态
-
又叫Markov state,是history中所有有用的信息。环境状态
和历史数据
都具有马尔可夫性。
-
当且仅当 一个状态
的下一状态
只与它当前所处的状态
有关,而与之前的状态无关时,我们称状态
具有马尔可夫性。也就是“The future is independent of the past given the present”
我们用状态 来切分历史数据,
, 若已知状态
,则
就可以被丢掉,因为状态
是
的充分统计量【sufficient statistic】。
Fully Observable Environments :完全可观测的环境
- 【Full observability】对于完全可观测的情形,agent可以直接观测到环境状态
- 此时有
,Agent的状态
等于环境状态
,也等于信息状态 ,
- 正式地说,这是一个马尔可夫过程【Markov decision process ,MDP】
Partially Observable Environments: 部分可观测的环境
- 【Partial observability】: agent可以间接地观测到环境:比如一个自带摄像头的机器人不知道它自己所处的绝对位置,投资交易的代理人也只能观察到股票/证券的当前价格,一个扑克玩家也只能看到别人已经出的牌。
- 此时agent state 不等于环境状态
- 正式地说,这是一个 部分可观测的马尔可夫过程【partially observable Markov decision process ,POMDP】
- Agent 必须构造
来表示它的状态。 比如说
完全利用历史数据: .
对环境状态的信度Beliefs:
使用循环神经网络RNN:
RL Agent 的主要组成部分
An RL agent 包含以下至少一个部分:
- 策略: agent的行为函数【 behaviour function】
- 值函数: 衡量 每个 state and/or action有多好
- 模型: 是 agent对 环境建模,所得的表示环境的模型
策略Policy
- 它代表了 agent的行为,是一个从state 到 action的映射。
- 对于Deterministic 确定性策略:
- Stochastic 随机的策略 :
值函数 Value function
- 值函数是对未来回报的预测,用来估计一个状态的好坏,以作为选择下一个动作的根据。
- agent 在t步处于状态s , 在后面的t+1,t+2,... 时间步的回报分别表示为
,【由于考虑到总的时间步T可能区域无穷,为了使累计奖赏是一个有限数;又或者为表示我们更看重近期的回报;我们乘以一个折扣因子
【0 <
< 1】
则 在策略 下, 我们对未来累计回报的预期,也就是值函数,可以表示为
模型 Model
- 模型:预测 环境下一步会采取的行动,这个模型就是Agent对环境的建模。
- 状态转移概率阵P: 预测agent的下一个状态
- R 预测下一步的奖赏
举例: 迷宫游戏
那么我们先看看可以采取的策略,也就是在每个白色空格的位置,可以移动的方向,标注成下面左图的样子。
再来看看值函数,类似于动态规划的逆序解法,我们从终点那里开始标注,如果可以通过相邻的白色空格向上/下/左/右移动到同一个白色空格,那么这两个空格的得分一样。看下面右图。
求出来的解就如下图所示:
RL agents 的分类法 Taxonomy
学习& 规划 Learning and Planning :序列决策的两个基本问题
- 强化学习: 最开始,环境是未知的, agent 通过与环境互动,来改善它的策略policy
- 规划问题Planning: 已知环境的模型,agent 不需要与环境互动,直接用模型来进行计算,以改进策略。规划问题又叫做推理思考【 deliberation, reasoning, introspection, pondering, thought, search】
探索&利用的平衡: Exploration and Exploitation
- 强化学习通过不断试错来进行学习【trial-and-error learning】, agent既要从与环境的互动经历中找出一个好的策略,又不能在探索的过程中丢分太多。
- 探索Exploration 能找出关于环境的更多的信息。
- Exploitation 利用已知信息来最大化 reward
- explore 和exploit通常是同样重要的
举例:
- 选择吃饭的餐馆:环境可理解为你可以选择的餐馆,agent代表你,回报就是迟到好吃的美食:
Exploitation是去你喜欢的店吃,可以吃到味道不错的;
而Exploration代表尝试一家新的餐馆,这就意味着可能reward并不一定高
- 石油钻井
Exploitation: 在已知的最佳地点钻井
Exploration : 去尝试一个新的位置
- 玩游戏
Exploitation :选择你认为最佳的动作
Exploration 试探性地做不同的动作
预测 & 控制 Prediction and Control
- 预测: 给定一个策略,估计未来的问题
- 控制: 找出最佳的策略,来使未来的结果最优