邓侃:深度强化学习“深”在哪里?


当今世界,科技发展日新月异。即便是业界中人,往往也搞不清同行们的动态。所以,隔三差五需要有人梳理业界的动态。 


“Deep ReinforcementLearning: An Overview” [1] 这篇论文的作者,梳理了深度学习与增强学习相融合的最新动态。

 

这是一篇苦心之作,

 

  1. 梳理了该领域各个学派的基本思路及其区别。

  2. 罗列了各种测试平台,目前主要是各种游戏,之所以用游戏来做测试,是因为容易采集数据。

  3. 值得读的论文,罗列了各个学派的重要论文。

  4.  枚举了若干重要的应用,包括游戏,重点介绍了下围棋的 AlphaGo,教无人机做特技,教机器人行走和跳跃,机器翻译和对话,智能医疗诊断,深度学习系统的自动设计等等。


论文:深度强化学习概览

作者:Yuxi Li,加拿大阿尔伯塔大学(University of Alberta)计算机系的博士

邓侃:深度强化学习“深”在哪里?

摘要


本文概述了最近取得许多令人振奋的成果的深度增强学习(RL)。我们从深度学习和增强学习的背景开始说起,并介绍了各种测试平台。然后我们讨论了 Deep Q-Network(DQN)及其扩展,异步方法,策略优化,激励,以及规划。接着,我们讨论了注意力和记忆,无监督学习,以及学习学习(learning to learn)。我们还讨论了 RL 的各种应用,包括游戏(尤其是 AlphaGo),机器人,语音对话系统(即,chatbot),机器翻译,文本序列预测,神经架构设计,个性化网络服务,医疗保健,金融,以及音乐自动生成等。我们也提了一些尚没有综述的主题/论文。本论文以一系列值得阅读的 RL 重要论文的列举结束。

 

什么是增强学习,为什么需要引入深度学习?

 

不妨把机器学习看成二维空间,第一个维度是问题,第二个维度是方法,用什么方法来解决问题。

 

大致来说,机器学习想解决两大类问题,模拟和决策。

 

1.   模拟:


给定一系列输入 x 和输出 y,模拟两者之间的函数关系 y = f(x)。

预测是函数模拟的一个小类,譬如根据各种经济因素 x,预测股票价格。

分类是另一个小类,譬如给定一张人像照片 x,识别照片中的人物是不是y。

 

2.   决策:


先构造三元组,包括状态 state、行动action、收益 reward。

序列是一连串三元组邓侃:深度强化学习“深”在哪里?


输入若干序列,作为训练数据。

决策的任务,是分析这些训练数据,发现最优行动策略邓侃:深度强化学习“深”在哪里?,目的是获得最大的收益邓侃:深度强化学习“深”在哪里?


邓侃:深度强化学习“深”在哪里?类似于金融折现率,未来的收益,折算成现钞,得打个折扣。远期的折扣,比近期的折扣大,这就是邓侃:深度强化学习“深”在哪里?的意义。


决策的应用很多,下棋、开车、问答、医疗诊断、机器人自主行走跳跃等等,都是决策问题。

    

逻辑回归 Logistic Regression、向量机 SVM、决策树Decision Tree 等等是传统的机器学习的方法,主要用于解决模拟问题。

 

深度学习 Deep Learning 是最新的方法,起先也主要用于解决模拟问题。

 

增强学习 Reinforcement Learning,譬如 Q-learning 算法,是解决决策问题的传统方法。

 

为什么要用深度学习这个新方法解决决策问题?

 

目的无非是,1. 解决更复杂的决策问题,2. 学得更准,3. 学得更快,4. 用更少的训练数据。

 

传统的增强学习存在什么问题?

 

卢浮宫馆藏美术作品众多,经验丰富的导游,会帮游客规划一条参观路径,走最短的路,看最多的名画。

 

如何规划最佳参观路径,是一个决策问题。传统的方法,是增强学习 Reinforcement Learning。

 

简单而蛮力的办法,是找一张卢浮宫地图,尽可能罗列所有可能的参观路径,评价每一种路径的总收益。

 

这是 Monte Carlo tree search (MCTS) 的思路。

 

MCST 简单有效,但是缺陷是计算成本高。

 

下围棋的 AlphaGo,用 MCST 算法来精算局部的对弈策略。

 

但是,不能用这个方法来学习整盘棋的策略,因为如果要穷举整盘棋的所有对弈策略,数量级大概是邓侃:深度强化学习“深”在哪里?。单机搞不定,云计算也搞不定。

 

如何降低计算量?思路是不必浪费精力去为槽糕的路径评估收益。问题是,如何甄别槽糕的路径?

 

不妨换一个思路。不会有观众故意跟自己过不去,专挑路程长、名画少的槽糕路径去参观卢浮宫。

 

我们不必关心哪条路径是槽糕的路径,我们只需要研究其他观众曾经走过的路径,就不会偏离最佳的路径太远。

 

什么是最佳路径?两个要素,

 

1. 当前收益大:每走一步,多半能看到一副名画。

2. 潜在的未来收益大:每走一步,离其它名画更近。

 

用数学公式来表达,就是,


邓侃:深度强化学习“深”在哪里? 


邓侃:深度强化学习“深”在哪里?的专业名称是行动价值 Action Value

 

用价值取代收益,既着眼当前收益,又兼顾未来潜力。

 

即便当前没有收益,譬如爬楼梯时一幅作品都看不到,但是楼上的展厅有名画,未来潜力巨大,爬楼就是明智的行动。

 

为了估算当前的行动价值邓侃:深度强化学习“深”在哪里?,先得估算下一步的潜在价值邓侃:深度强化学习“深”在哪里?

 

为了估算下一步的潜在价值邓侃:深度强化学习“深”在哪里?,先得估算再下一步的潜在价值邓侃:深度强化学习“深”在哪里?

 

重复以上步骤,直到走出卢浮宫出口。这个办法,就是 Q-learning算法。

 

Q-learning 算法是传统增强学习中最重要的算法。除此之外,有若干变种。

 

但是无论哪一种变种,面对复杂的问题,传统的增强学习算法都难以胜任。

 

如果状态邓侃:深度强化学习“深”在哪里?不仅仅是位置,而且也包含每幅名作附近的拥堵程度,参观卢浮宫的路径规划就变得更复杂了。

 

如果行动邓侃:深度强化学习“深”在哪里?不仅仅是前进、后退、左转、右转,而且也包括速度,问题就更复杂了。 

 

如果收益邓侃:深度强化学习“深”在哪里?不仅仅取决于作品的知名度,而且也包括观众的品味, 问题就更复杂了。

 

解决复杂的决策问题,是增强学习与深度学习融合的一大动机。

 

增强学习与深度学习融合的切入点,是用结构复杂的神经网络,来估算增强学习中的行动价值邓侃:深度强化学习“深”在哪里?、收益邓侃:深度强化学习“深”在哪里?、策略邓侃:深度强化学习“深”在哪里?等等。


深度增强学习深在哪里?


1. 用深度学习来估算价值邓侃:深度强化学习“深”在哪里?

    

Deep Q-network (DQN),  Double DQN , Dueling architecture 等等算法,都是这个思路。

 

先根据训练数据,来计算当前的行动价值,


邓侃:深度强化学习“深”在哪里?


然后用深度神经网络,估算邓侃:深度强化学习“深”在哪里?,如果估算得完全准确,那么


邓侃:深度强化学习“深”在哪里?

 

如果两者之间有差距,那么就不断调整深度神经网络的参数,缩小两者的差距,这就是深度增强学习的训练过程。

 

这个办法,就是 DeepQ-network DQN,及其变种 Double DQN 的基本原理。

 

DQN 的计算成本较大,为了学得更快。决斗模型 Dueling architecture 提议,拆解邓侃:深度强化学习“深”在哪里?

 

邓侃:深度强化学习“深”在哪里?拆解为邓侃:深度强化学习“深”在哪里?,其中邓侃:深度强化学习“深”在哪里?是每个状态的价值,而邓侃:深度强化学习“深”在哪里?是指在状态邓侃:深度强化学习“深”在哪里?下采取行动邓侃:深度强化学习“深”在哪里?后,价值的增量。

 

DQN 算法用一个规模较大的神经网络,去模拟邓侃:深度强化学习“深”在哪里?,训练过程的计算成本高。

 

而决斗架构 Duelingarchitecture 用两个规模较小的神经网络,分别去模拟邓侃:深度强化学习“深”在哪里?邓侃:深度强化学习“深”在哪里?,从而大大降低了训练过程的计算成本。

  

2.  用深度学习来估算策略邓侃:深度强化学习“深”在哪里?

     

DPG (Deterministic PolicyGradient),Deep DPG,GPS (Guided Policy Search),TRPO (Trust Region Policy Optimization) ,PGQ 等等算法,都是这个思路。

 

DPG 把增强学习的训练过程,类比成演员和评委的互动。

 

DPG 用一个神经网络 actor,去模拟策略邓侃:深度强化学习“深”在哪里?

 

用另一个神经网络 critic,评估使用某种策略后的行动价值邓侃:深度强化学习“深”在哪里?

 

选定了策略 π 后,在每一种状态,actor 都会选择固定的行动,所以,


邓侃:深度强化学习“深”在哪里?

 

正因为如此,训练评委神经网络 critic时,只需要对状态邓侃:深度强化学习“深”在哪里?做梯度下降 (Gradient Descent),不仅计算量小,而且能够解决复杂的增强学习问题。

  

Deep DPG 在此基础上,做了一些改进。尤其是把训练数据回放,并且每次训练时,柔和地改进网络参数。

 

回放和柔和改进,目的是为了既不增加训练数据的数量,又提高训练的稳定性。


3. 用深度学习来估算收益邓侃:深度强化学习“深”在哪里?

 

某些应用场景的收益邓侃:深度强化学习“深”在哪里?,无法用简单的方式表达,譬如模仿书法家的字体风格,或者模仿某位飞行员的特技飞行动作。

 

反向增强学习 Inverse ReinforcementLearning,小样本学习 One-shot Learning 等等算法,针对这类模仿问题,做过有益的尝试。

 

生成对抗网络,Generative AdversarialNetworks (GANs),提供了新思路。

 

GAN 主要由两个神经网络构成,

 

1.   生成模型Generator,从训练数据中猜测这些样本的数据分布,并伪造数据。

2.   鉴别模型Discriminator,识别哪些数据是真实的训练数据,哪些是生成模型伪造的假数据。


两个模型不断对抗,使得生成模型伪造的数据越来越像真的,而鉴别模型的识别能力越来越精准。

 

对抗的结果,是生成模型对数据分布的猜测,越来越精准。

 

模仿,是增强学习的一个子领域。


把 GAN 应用于增强学习,将是一大热点。  


4. 融合

 

DQN 用深度学习来估算价值函数邓侃:深度强化学习“深”在哪里?,DPG 用深度学习来估算策略函数邓侃:深度强化学习“深”在哪里?,GAN 用深度学习来估算难以言说的收益函数邓侃:深度强化学习“深”在哪里?

 

Asynchronous AdvantageActor-Critic (A3C) 算法,试图把模拟价值函数邓侃:深度强化学习“深”在哪里?的决斗架构,与模拟策略邓侃:深度强化学习“深”在哪里?的演员-评委模型,外加多核并行计算,融合在一起。

 

Differentiable NeuralComputer (DNC) 不纠结价值函数邓侃:深度强化学习“深”在哪里?和策略函数邓侃:深度强化学习“深”在哪里?的细节,而是把它们看成黑盒子的内部构成。

 

DNC 用 LSTM 来分析训练数据,把分析结果保存在 LSTM 外部的存储空间。

 

LSTM 分析结果是一组数字向量,数字向量的物理意义很隐晦,如同表达生命特征的 DNA,但是它们包含了邓侃:深度强化学习“深”在哪里?邓侃:深度强化学习“深”在哪里?的内容。

 

虽然数字向量的物理意义很隐晦,但是只要黑盒子能够做出正确的决策,就是好盒子。

 

DNC 的论文作者,用这个技术来玩积木游戏,来规划伦敦地铁任何两站之间的最佳换乘路径,效果很好。

 

黑盒子能不能完成更复杂的任务?这是吊足观众胃口的悬念。


文章转自新智元公众号,原文链接

上一篇:Mac轻量级服务器http-server


下一篇:js模拟点击事件实现代码