强化学习相关成就:
o Learned the world’s best player of Backgammon (Tesauro 1995)
o Learned acrobatic helicopter autopilots (Ng, Abbeel, Coates et al2006+)
o Widely used in the placement and selection of advertisements onthe web (e.g. A-B tests)
o Used to make strategic decisions in Jeopardy! (IBM’s Watson 2011)
o Achieved human-level performance on Atari games from pixel-level visual input, in conjunction with deep learning (Google Deepmind 2015)
o In all these cases, performance was better than could be obtained by any other method, and was obtained without human instruction
RL+Deep Learning Performance on Atari Games:
o Space Invaders
o Breakout
o Enduro
强化学习+深度学习:
Crazy Stone and Zen -> AlphaGo(Oct 2015) -> AlphaGo(Mar 2016)
强化学习要点大纲:
o强化学习的难点?
credit assignment problem
the exploration-exploitation dilemma
o怎么定义强化学习?
马尔可夫决策过程
o怎么把“眼光”放长远?
discounted future reward
o怎么预估“未来收益”?
table-based Q-learning 算法
o状态空间太大怎么办?
使用深度神经网络
o如何实际应用
“重演”策略
强化学习问题
o Atari Breakout游戏
三种动作:向左,向右以及开火(把球射出)
状态:所处的位置,屏幕上方状况等
奖励:得分增减
o 传统有监督?无监督?
o 强化学习:有稀疏并延时的标签——奖励
o 信用分配问题 (credit assignment problem)
击中砖块并且得分和前一时刻如何移动横杆没有直接关系
前面某一时刻的横杆移动有作用
o 探索-利用困境(exploration-exploitation dilemma)
游戏开始,只发射球,不移动横杆,你总是能得10分的
满足于得分还是去探索更多的可能性?(可能更好或者更坏)
马尔可夫决策过程(MDP)
o 操作者或智能体(agent)
o 状态(state)(比如横杆的位置,球的位置,球的方向,当
前环境中的砖块等等)
o 动作(actions)(比如向左或向右移动横杆)
o 奖励(reward)(比如分数的增加)
o 策略(policy):在state下采取行动的原则
强化学习的难点?
Discounted Future Reward
Q-learning
Q-learning经典例子:http://fromwiz.com/share/s/1CGZRH2S1Aro2gtjMB0TJPbh2WMt0I1fPkJq26Z6cI3pS8GI
Deep Q-Network
o 能不能设计一种通用的表示游戏状态的方法呢? => 屏幕像素
o 采用连续两个游戏屏幕的像素,球速和方向等各种信息也可以表示出来
o 屏幕大小84*84,每个像素点有256个灰度值,总共256^(84*84*4)~10^67970种可能的状态
o Q-table有10^67970行,且非常稀疏(有很多状态遇不到!!)
o 用一个神经网络对Q-函数进行建模
o 神经网络接收一个状态(连续四步的屏幕)和一个动作,然后输出对应的Q-函数的值
o 改造一下:只接受一个状态作为输入,然后输出所有动作的分数(具体来讲是动作个数大小的向量),这样一次前向运算可以得到所有动作的得分
Experience Replay 经验回放
o 我们可以用Q-learning的算法估计未来奖励,并能够用一个卷积神经网络近似Q-函数。
o 但使用Q 值近似非线性的Q-函数可能非常不稳定。即使使用很多小技巧使得这个函数收敛。在单GPU上也可能需要一个星期的时间训练模型。
o 最重要的技巧是经验回放(experience replay)
在玩游戏的过程中,所有经历的都被记录起来。
训练神经网络时,我们从这些记录的中随机选取一些mini-batch作为训练数据训练,而不是按照时序地选取一些连续的。
按时序选取,训练实例之间相似性较大,网络很容易收敛到局部最小值。
Exploration-Exploitation
o Q-learning算法尝试解决信用分配问题
通过Q-learning,奖励被回馈到关键的决策时刻
o 依旧存在的是探索-利用困境
在游戏开始阶段,Q-table或Q-network是随机初始化的。它给出的Q-值最高的动作是完全随机的,智能体表现出的是随机的“探索”。
当Q-函数收敛时,随机“探索”的情况减少。所以,Q-learning中包含“探索”的成分。但是这种探索是“贪心”的,它只会探索当前模型认为的最好的策略。
o 一种简单修正技巧:
\epsilon-贪心探索
以\epsilon的概率选取随机的动作做为下一步动作,1-\epsilon的概率选取分数最高的动作。
DeepMind的系统中,\epsilon随着时间从1减少到0.1。这意味着开始时,系统完全随机地探索状态空间,最后以固定的概率探索。
Deep Q-learning Algorithm
DeepMind还使用了一系列其他的技巧,比如:目标网络、误差截断、回馈截断
新的论文进展包括Double Q-learning, Prioritized Experience Replay, Dueling Network Architecture, extension to continuous action space
应用:Flappy-bird:https://github.com/yenchenlin/DeepLearningFlappyBird