强化学习相关成就:

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 

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

强化学习+深度学习:

Crazy Stone and Zen -> AlphaGo(Oct 2015) -> AlphaGo(Mar 2016)

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

强化学习要点大纲:

o强化学习的难点?
   credit assignment problem
   the exploration-exploitation dilemma
o怎么定义强化学习?
   马尔可夫决策过程
o怎么把“眼光”放长远?
   discounted future reward
o怎么预估“未来收益”?
   table-based Q-learning 算法
o状态空间太大怎么办?
   使用深度神经网络
o如何实际应用
   “重演”策略


强化学习问题

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

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下采取行动的原则

强化学习的难点?

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

Discounted Future Reward

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

Q-learning

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

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 改造一下:只接受一个状态作为输入,然后输出所有动作的分数(具体来讲是动作个数大小的向量),这样一次前向运算可以得到所有动作的得分

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

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

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

DeepMind还使用了一系列其他的技巧,比如:目标网络、误差截断、回馈截断
新的论文进展包括Double Q-learning, Prioritized Experience Replay, Dueling Network Architecture, extension to continuous action space 

应用:Flappy-bird:https://github.com/yenchenlin/DeepLearningFlappyBird

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network

相关文章:

  • 2021-08-07
  • 2021-12-31
  • 2021-12-24
  • 2021-07-08
  • 2021-11-13
  • 2021-04-05
  • 2022-01-15
  • 2021-08-27
猜你喜欢
  • 2021-06-16
  • 2021-07-25
  • 2021-11-22
  • 2021-08-15
  • 2021-05-25
  • 2021-07-20
  • 2021-11-17
相关资源
相似解决方案