强化学习本质上是要找到一种最优的方式来做决策。
强化学习涉及到很多学科领域,例如它是计算机科学中机器学习的一部分,工业中的优化控制,还有模拟神经科学中的奖励机制的算法,心理学中的条件反射也是一种奖励机制,数学中的运筹学,经济学中的博弈论等,这些都是研究如何做决策能够使效用最大化。
强化学习和其他机器学习方法的区别:
- There is no supervisor, only a reward signal
只告诉它怎样是好的加3分,怎样是坏的扣10分,但不会告诉它到底要怎么做才是最好的。 - Feedback is delayed, not instantaneous
当前做出一个决策,可能要等好几步之后才会知道这到底是个好的决定,还是造成了灾难性的结果。 - Time really matters (sequential, non i.i.d data)
顺序决策,一步接着一步,agent进行决策,采取行动,拿到奖励,所以这些数据不是独立同分布的。 - Agent’s actions affect the subsequent data it receives
例如一个机器人在不同的房间,因为环境不同,会采取不同的行动,得到不同的奖励,这是一个主动学习的过程,是由不同的数据集组成的。
强化学习应用的几个小例子:
直升机演习,玩游戏,管理投资组合,控制发电站,让机器人行走,等等,这些都是需要做很多决策的,而且没有前提知识储备,自主学习。
agent 每一步的行为相应得到的奖励,所有步累积起来的奖励,最终的目标是使奖励达到最大化。
例如直升机如果沿着正确的轨迹走,就给正向奖励,如果坠落,就给负奖励。
agent 和 环境
Sequential Decision Making
用一个框架来概括上面这么多种问题:即看成连续决策问题
Goal:通过一系列的决策来得到最终的最大利益
要提前计划好,因为这个过程是长期的,尽管现在并不是我们想要的结果,但可能几步之后就是很好的结果了,有时候还需要放弃一些眼前的利益,因为最终的长远利益才是目标。
我们要做的是构建一个agent,类似于要建立一个大脑,让它在与环境不断交互中学习成长,
我们的目标也就是要找出这个大脑执行的算法。注意在这个过程中,环境也是不断变化的。
不同的目标下,根据需要会给不同的措施的奖励赋予不同的权重,比如是去见女朋友还是去见老板,这个决策在不同的场景下权重是不一样的。
History:agent 目前为止所掌握的信息,它的 action,observation,reward。这些也是我们要得到的算法所能获得的数据,而环境中可能有其他隐藏的变量,这些却无法被 agent 获得。
我们想要得到的算法,就是从 history 到 action 的一个映射。
agent 会根据 history 采取 action,
环境也会根据 history 而变化,进而影响 observation 和 rewards。
State :是 history 的一个函数,相当于对 history 的一个简明扼要的总结,根据 state 来采取行动。
environment state: 环境当前的状态,是一个数字的集合,但是我们看不到的。它决定了 agent 下一步的 action,这里 agent 只能通过摄像机看到 observation,而不是具体的数字信息。这些数字对获得算法没有实际帮助。
agent state:也是一个数字的集合,是 agent 目前为止所获得的数据信息。这些数字是获得算法的主要依据。我们研究的目标也就是如何构建这个 history 的函数。
Markov state:即 state 符合 markov 性质,即下一状态只与当前状态有关,而与之前的历史没有太大关系。这样的话 history 就可以丢掉,可以节省很多空间。
Observability:
Full observability: 此时 agent 的状态和环境的状态是相等的,并且是一个 markov 决策过程。
Partial observability: 即 agent 只能通过摄像机观察到部分环境而非全局,此时 agent 的状态和环境的状态是不相等的,是一个 partially observable Markov decision process (POMDP)。
我们要做的是建立 agent 的 state,有多种方法:
- 记住目前为止所有的 history
- 用贝叶斯方法建立 belief 即环境状态的一个概率分布
- Recurrent neural network 用过去状态的线性非线性组合作为新的状态
agent 的三个主要内容
Policy: agent’s behaviour function, 输入是 state,输出是 action。可以是确定的函数,也可以是随机的概率。
Value function: how good is each state and/or action,即如果采取了这样的行动会得到多少什么样的奖励。这是对未来若干步的奖励的一个预测,这个预测可以当作参考用来选择状态。
Model: agent’s representation of the environment,用来感知环境的。并不是环境本身,但是是对环境变化的一个预测,包含两种 model:
transition model :predicts the next state 。例如一个直升机当前在这样的位置和角度,那么加上某一个风向后,下一刻就到某一个位置和角度。这样就可以进行建模,用来预测直升机下一刻将会遇到什么情况。
reward model:predicts the next (immediate) reward。
model 并不是必须的。
例子:以迷宫为例来看上面提到的三个函数分别什么样子
Rewards: -1 per time-step
Actions: N, E, S, W
States: Agent’s location
policy:红箭头代表 policy,表示 agent 在相应的某个 state(即位置)所采取的行动:
value:-1 代表离终点一步,起点是 -16,左下方区域离终点越来越远。可以让 agent 知道下一步决策该如何走,当然是向距离终点近的位置走:
model:下图就是 agent 建立的对环境的状态与状态之间转换的一个理解模型,是从始点走到终点的一条路径,每个位置上面-1表示每一步减去一个即时奖励:
RL agent 的分类
根据是否包含 policy,value,model 中的某个内容来进行分类:
强化学习中遇到的几个基本问题
1. sequential decision making 的两个基本问题:
Learning :agent 对环境一无所知;要不断地与环境互动;不断升级 policy
Planning:agent 知道环境的一切信息和规则;不需要与环境互动,直接内部计算;不断升级 policy
2. 如何平衡 Exploration and Exploitation 探索与开发两个问题:
Exploration: finds more information about the environment,意味着要有选择地放弃一些奖励。例如当前你明确知道向左走会有一些奖励,但是你还没有 explore 向右走会发生什么,也许会有更大的宝箱。
Exploitation: exploits known information to maximise reward,意味着要最大化利用当前掌握的信息。
It is usually important to explore as well as exploit
生活中的小例子:
3. Prediction and Control 的区别:
Prediction: Given a policy,evaluate the future。如果 agent 遵循当前的 policy 那么会得到什么样的奖励。
例如下图 a 是一个 policy,b 是在这样的 policy 下对 value 的一个预测:
Control: Find the best policy,optimise the future。怎样才能找到最好的 policy 来最大化最终奖励。
例如下图的 v* 它的值要比上一图的值大,因为它找到的是最优的 policy 而不是某个随机的:
学习资料:
http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html
https://www.youtube.com/watch?v=2pWv7GOvuf0
http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/intro_RL.pdf
推荐阅读 历史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]