毕设日志(二)

2019.3.9

今天的任务是

  1. 了解Deep Q Network,以及Double DQN,Dueling DQN,Deep Deterministic Policy Gradient,A3C,Proximal Policy Optimization (PPO)等等强化学习算法。
  2. 用Tensorflow实现一个简单的Deep Q Network。
  3. 开始找选题方向

DQN

简单地说,DQN 就是Q-learning与神经网络相结合。

在Q-learning中,一般用表格来表示Q(s,a),但是这个在现实的很多问题上是几乎不可行的,因为状态实在是太多。使用表格的方式根本存不下。所以有必要对状态的维度进行压缩,解决办法就是 价值函数近似

什么是价值函数近似呢?就是用任意类型的一个函数来表示Q(s,a)。通过函数表示,就可以无所谓s到底是多大的维度,反正最后都通过矩阵运算降维输出为单值的Q。

神经网络的输入是经过处理的游戏数据或者图像,然后经过n卷积层,n全连接层,最后输出包含每一个动作Q值的向量。

而神经网络的训练是一个最优化问题,最优化一个损失函数loss function,也就是标签和网络输出的偏差,目标是让损失函数最小化。为此,需要有样本,巨量的有标签数据,然后通过反向传播使用梯度下降的方法来更新神经网络的参数。

在DQN中,把目标Q值作为标签,目标就是让估计Q值趋近于目标Q值,Q网络训练的损失函数就是
在这里插入图片描述上面公式是s^,a^即下一个状态和动作。

下面是DQN的算法,刚开始学的时候觉得这简直是天书,现在嘛,觉得这算法还是蛮基础的,so easy.

在这里插入图片描述
上面的算法就是反复试验,然后存储数据。数据存到一定程度,就每次随机采用数据,进行梯度下降。

需要注意的是,这里用到了两个神经网络:目标网络评估网络

而算法最重要的一步是在 DeepQNetwork 中如何学习, 更新参数。这里涉及了 目标网络和 评估网络 的交互使用。这一点 莫烦老师 讲的很好。

在这里插入图片描述
刚看的时候会有些不懂。

两个神经网络是为了固定住一个神经网络 (target_net) 的参数, target_net 是 eval_net 的一个历史版本, 拥有 eval_net 很久之前的一组参数, 而且这组参数被固定一段时间, 然后再被 eval_net 的新参数所替换. 而 eval_net 是不断在被提升的, 所以是一个可以被训练的网络

在训练神经网络的时候,训练的是eval_net网络,训练时用的Q值来自target_net网络。训练定量的批次后,将eval_net网络的所有参数赋值给target_net网络。

还有一个要点

# 下面这几步十分重要. q_next, q_eval 包含所有 action 的值,
# 而我们需要的只是已经选择好的 action 的值, 其他的并不需要.
# 所以我们将其他的 action 值全变成 0, 将用到的 action 误差值 反向传递回去, 作为更新凭据.
# 这是我们最终要达到的样子, 比如 q_target - q_eval = [1, 0, 0] - [-1, 0, 0] = [2, 0, 0]
# q_eval = [-1, 0, 0] 表示这一个记忆中有我选用过 action 0, 而 action 0 带来的 Q(s, a0) = -1, 所以其他的 Q(s, a1) = Q(s, a2) = 0.
# q_target = [1, 0, 0] 表示这个记忆中的 r+gamma*maxQ(s_) = 1, 而且不管在 s_ 上我们取了哪个 action,
# 我们都需要对应上 q_eval 中的 action 位置, 所以就将 1 放在了 action 0 的位置.

# 下面也是为了达到上面说的目的, 不过为了更方面让程序运算, 达到目的的过程有点不同.
# 是将 q_eval 全部赋值给 q_target, 这时 q_target-q_eval 全为 0,
# 不过 我们再根据 batch_memory 当中的 action 这个 column 来给 q_target 中的对应的 memory-action 位置来修改赋值.
# 使新的赋值为 reward + gamma * maxQ(s_), 这样 q_target-q_eval 就可以变成我们所需的样子.
# 具体在下面还有一个举例说明.

 假如在这个 batch 中, 我们有2个提取的记忆, 根据每个记忆可以生产3个 action 的值:
 q_eval =
 [[1, 2, 3],
  [4, 5, 6]]

 q_target = q_eval =
 [[1, 2, 3],
  [4, 5, 6]]

 然后根据 memory 当中的具体 action 位置来修改 q_target 对应 action 上的值:
 比如在:
     记忆 0 的 q_target 计算值是 -1, 而且我用了 action 0;
     记忆 1 的 q_target 计算值是 -2, 而且我用了 action 2:
 q_target =
 [[-1, 2, 3],
  [4, 5, -2]]

 所以 (q_target - q_eval) 就变成了:
 [[(-1)-(1), 0, 0],
  [0, 0, (-2)-(6)]]

 最后我们将这个 (q_target - q_eval) 当成误差, 反向传递会神经网络.
 所有为 0 的 action 值是当时没有选择的 action, 之前有选择的 action 才有不为0的值.
 我们只反向传递之前选择的 action 的值,

至于代码,先看懂莫烦老师写的代码,就不移植了,接下来的游戏环境也不用自己写了,直接学习OpenAI Gym。

其他的算法先学习这位博主的:https://me.csdn.net/u013236946

over.

2019.3.10

今天一直在看文章,输入信息有点多,明天做个整理。

2019.3.14

看到这篇文章后有很大启发,先做个总结
链接:https://zhuanlan.zhihu.com/p/39999667

(一) 深度强化学习的泡沫

过去三年间,DRL算法在不同领域大显神通:在视频游戏[1]、棋类游戏上打败人类顶尖高手[2,3];控制复杂的机械进行操作[4];调配网络资源[5];为数据中心大幅节能[6];甚至对机器学习算法自动调参[7]。结合DL与RL的深度强化学习(Deep Reinforcement Learning, DRL)迅速成为人工智能界的焦点。

(二)危机

2017年9月,著名RL专家Doina Precup和Joelle Pineau所领导的的研究组发表了论文Deep Reinforcement Learning that Matters[8],直指当前DRL领域论文数量多却水分大、实验难以复现等问题。

针对DRL领域,Pineau展示了该研究组对当前不同DRL算法的大量可复现性实验。实验结果表明,不同DRL算法在不同任务、不同超参数、不同随机种子下的效果大相径庭。在报告后半段,Pineau呼吁学界关注“可复现性危机”这一问题,并根据她的调研结果,提出了12条检验算法“可复现性”的准则。
在这里插入图片描述
2018年的情人节当天,曾经就读于伯克利人工智能研究实验室(Berkeley Artificial Intelligence Research Lab, BAIR)的Alexirpan通过一篇博文Deep Reinforcement Learning Doesn’t Work Yet[13]从实验角度总结了DRL算法存在的几大问题:

  • 样本利用率非常低;

  • 最终表现不够好,经常比不过基于模型的方法;

  • 好的奖励函数难以设计;

  • 难以平衡“探索”和“利用”,以致算法陷入局部极小;

  • 对环境的过拟合;

  • 灾难性的不稳定性。

几天后,GIT的博士生Himanshu Sahni发表博文Reinforcement Learning never worked, and ‘deep’ only helped a bit与之呼应[14],在赞同Alexirpan的观点同时,指出 好的奖励函数难以设计和难以平衡“探索”和“利用”以致算法陷入局部极小是RL的固有缺陷。

Jacob Andreas发了一条意味深长的tweet说: DRL的成功归因于它是机器学习界中唯一一种允许在测试集上训练的方法。

在大家纷纷吐槽DRL的时候,著名的优化专家 Ben Recht,从另一个角度给出一番分析。

(三) 免模型强化学习的本质缺陷

RL算法可以分为基于模型的方法(Model-based)与免模型的方法(Model-free)。前者主要发展自最优控制领域。通常先通过高斯过程(GP)或贝叶斯网络(BN)等工具针对具体问题建立模型,然后再通过机器学习的方法或最优控制的方法,如模型预测控制(MPC)、线性二次调节器(LQR)、线性二次高斯(LQG)、迭代学习控制(ICL)等进行求解。而后者更多地发展自机器学习领域,属于数据驱动的方法。算法通过大量采样,估计代理的状态、动作的值函数或回报函数,从而优化动作策略。

从年初至今,Ben Recht连发了13篇博文,从控制与优化的视角,重点探讨了RL中的免模型方法[18]。Recht指出免模型方法自身存在以下几大缺陷:

  1. 免模型方法无法从不带反馈信号的样本中学习,而反馈本身就是稀疏的,因此免模型方向样本利用率很低,而数据驱动的方法则需要大量采样。。数据的稀缺性也影响了其与DL技术的结合。
  2. 免模型方法不对具体问题进行建模,而是尝试用一个通用的算法解决所有问题。而基于模型的方法则通过针对特定问题建立模型,充分利用了问题固有的信息。免模型方法在追求通用性的同时放弃这些富有价值的信息
  3. 基于模型的方法针对问题建立动力学模型,这个模型具有解释性。而免模型方法因为没有模型,解释性不强,调试困难
  4. 相比基于模型的方法,尤其是基于简单线性模型的方法,免模型方法不够稳定,在训练中极易发散

为什么多数DRL的工作都是基于免模型方法呢?作者认为有几个原因。第一,免模型的方法相对简单直观,开源实现丰富,比较容易上手,从而吸引了更多的学者进行研究,有更大可能做出突破性的工作,如DQN和AlphaGo系列。第二,当前RL的发展还处于初级阶段,学界的研究重点还是集中在环境是确定的、静态的,状态主要是离散的、静态的、完全可观察的,反馈也是确定的问题(如Atari游戏)上。针对这种相对“简单”、基础、通用的问题,免模型方法本身很合适。最后,在“AI = RL + DL”这一观点的鼓动下,学界高估了DRL的能力。DQN展示出的令人兴奋的能力使得很多人围绕着DQN进行拓展,创造出了一系列同样属于免模型的工作。

(四)基于模型的方法的优势与缺点

基于模型的方法一般先从数据中学习模型,然后基于学到的模型对策略进行优化。

学习模型的过程和控制论中的系统参数辨识类似。因为模型的存在,基于模型的方法可以充分利用每一个样本来逼近模型,数据利用率极大提高。基于模型的方法则在一些控制问题中,相比于免模型方法,通常有10^2级的采样率提升。此外,学到的模型往往对环境的变化鲁棒,当遇到新环境时,算法可以依靠已学到的模型做推理,具有很好的泛化性能。

此外,基于模型的方法还与潜力巨大的预测学习(Predictive Learning)紧密相关。 基于模型的RL方法可能是实现Predictive Learning的重要技术之一。

但是同时,模型的存在也带来了若干问题。

基于模型的DRL方法相对而言不那么简单直观,RL与DL的结合方式相对更复杂,设计难度更高。目前基于模型的DRL方法通常用高斯过程、贝叶斯网络或概率神经网络(PNN)来构建模型,典型的如David Silver在2016年提出的Predictron模型[23]。

除此之外,基于模型的方法也还存在若干自身缺陷:

  1. 针对无法建模的问题束手无策。有些领域,比如NLP,存在大量难以归纳成模型的任务。在这种场景下,只能通过诸如R-max算法这样的方法先与环境交互,计算出一个模型为后续使用。但是这种方法的复杂度一般很高。近期有一些工作结合预测学习建立模型,部分地解决了建模难的问题,这一思路逐渐成为了研究热点。
  2. 建模会带来误差,而且误差往往随着算法与环境的迭代交互越来越大,使得算法难以保证收敛到最优解。
  3. 模型缺乏通用性,每次换一个问题,就要重新建模。

对现实中非常多的无法建模的问题以及模仿学习问题,免模型算法仍是最好的选择。 并且,免模型方法在理论上具备渐近收敛性,经过无数次与环境的交互可以保证得到最优解,这是基于模型的方法很难获得的结果。最后,免模型最大的优势就是具备非常好的通用性。事实上,在处理真正困难的问题时,免模型方法的效果通常更好。

基于模型的方法与免模型的方法的区别其实也可以看做 基于知识的方法与基于统计的方法 的区别。总体来讲,两种方法各有千秋,很难说其中一种方法优于另一种。在RL领域中,免模型算法只占很少一部分,但基于历史原因,当前免模型的DRL方法发展迅速数量庞大,而基于模型的DRL方法则相对较少。

(五)重新审视强化学习

可见目前RL领域的实验平台还非常不成熟,在这样的测试环境中的实验实验结果没有足够的说服力。很多研究结论都未必可信,因为好性能的取得或许仅仅是因为利用了模拟器的bugs。此外,一些学者指出当前RL算法的性能评判准则也不科学。Ben Recht和Sham Kakade都对RL的发展提出了多项具体建议,包括测试环境、基准算法、衡量标准等[18,29]。可见RL领域还有太多需要改进和规范化。

对DRL和免模型RL的质疑与讨论,让我们可以重新审视RL,这对RL今后的发展大有裨益。

DQN和AlphaGo系列工作给人留下深刻印象,但是这两种任务本质上其实相对“简单”。因为这些任务的环境是确定的、静态的,状态主要是离散的、静态的、完全可观察的,反馈是确定的,代理也是单一的。目前DRL在解决部分可见状态任务(如StarCraft),状态连续的任务(如机械控制任务),动态反馈任务和多代理任务中还没取得令人惊叹的突破。

作为DRL的研究者,我们不应该找一个DL任务强行将其RL化,而是应该针对一些天然适合RL处理的任务,尝试通过引入DL来提升现有方法在目标识别环节或函数逼近环节上的能力。

在计算机视觉任务中,通过结合DL获得良好的特征表达或函数逼近是非常自然的思路。但在有些领域,DL未必能发挥强大的特征提取作用,也未必被用于函数逼近。比如DL至今在机器人领域最多起到感知作用,而无法取代基于力学分析的方法。虽然有一些将DRL应用于物体抓取等现实世界的机械控制任务上并取得成功的案例,如QT-Opt[70],但往往需要大量的调试和训练时间。

我们应该清晰地认识DRL算法的应用特点:因为其输出的随机性,当前的DRL算法更多地被用在模拟器而非真实环境中。

而当前具有实用价值且只需运行于模拟器中的任务主要有三类,即视频游戏、棋类游戏和自动机器学习(AutoML,比如谷歌的AutoML Vision)。这并不是说DRL的应用被困在模拟器中——如果能针对某一具体问题,解决模拟器与真实世界间的差异,则可以发挥DRL的强大威力。最近Google的研究员就针对四足机器人运动问题,通过大力改进模拟器,使得在模拟器中训练的运动策略可以完美迁移到真实世界中,取得了令人惊艳的效果[71]。不过,考虑到RL算法的不稳定性,在实际应用中不应盲目追求端到端的解决方案,而可以考虑将特征提取(DL)与决策(RL)分开,从而获得更好的解释性与稳定性。此外,模块化RL(将RL算法封装成一个模块)以及将RL与其他模型融合,将在实际应用中有广阔前景。而如何通过DL学习一个合适于作为RL模块输入的表示,也值得研究。

(六)一些值得研究的方向

机器学习是个跨学科的研究领域,而RL则是其中跨学科性质非常显著的一个分支。RL理论的发展受到生理学、神经科学和最优控制等领域的启发,现在依旧在很多相关领域被研究。在控制理论、机器人学、运筹学、经济学等领域内部,依旧有很多的学者投身RL的研究,类似的概念或算法往往在不同的领域被重新发明,起了不同的名字。

Princeton大学著名的运筹学专家Warren Powell曾经写了一篇题为AI, OR and Control Theory: A Rosetta Stone for Stochastic Optimization的文章,整理了RL中同一个概念、算法在AI、OR(运筹学)和Control Theory(控制理论)中各自对应的名称,打通了不同领域间的隔阂 [32] 。由于各种学科各自的特点,不同领域的RL研究又独具特色,这使得RL的研究可以充分借鉴不同领域的思想精华。

作者总结了一些值得研究的方向:

  1. 基于模型的方法。如上文所述,基于模型的方法不仅能大幅降低采样需求,还可以通过学习任务的动力学模型,为预测学习打下基础。

  2. 提高免模型方法的数据利用率和扩展性。这是免模型学习的两处硬伤,也是Rich Sutton的终极研究目标。这个领域很艰难,但是任何有意义的突破也将带来极大价值。

  3. 更高效的探索策略(Exploration Strategies)。平衡“探索”与“利用”是RL的本质问题,这需要我们设计更加高效的探索策略。除了若干经典的算法如Softmax、ϵ-Greedy[1]、UCB[72]和Thompson Sampling[73]等,近期学界陆续提出了大批新算法,如Intrinsic Motivation [74]、Curiosity-driven Exploration[75]、Count-based Exploration [76]等。其实这些“新”算法的思想不少早在80年代就已出现[77],而与DL的有机结合使它们重新得到重视。此外,OpenAI与DeepMind先后提出通过在策略参数[78]和神经网络权重[79]上引入噪声来提升探索策略, 开辟了一个新方向。

  4. 与模仿学习(Imitation Learning, IL)结合。机器学习与自动驾驶领域最早的成功案例ALVINN[33]就是基于IL;当前RL领域最顶级的学者Pieter Abbeel在跟随Andrew Ng读博士时候,设计的通过IL控制直升机的算法[34]成为IL领域的代表性工作。2016年,英伟达提出的端到端自动驾驶系统也是通过IL进行学习[68]。而AlphaGo的学习方式也是IL。IL介于RL与监督学习之间,兼具两者的优势,既能更快地得到反馈、更快地收敛,又有推理能力,很有研究价值。关于IL的介绍,可以参见[35]这篇综述。

  5. 奖赏塑形(Reward Shaping)。奖赏即反馈,其对RL算法性能的影响是巨大的。Alexirpan的博文中已经展示了没有精心设计的反馈信号会让RL算法产生多么差的结果。设计好的反馈信号一直是RL领域的研究热点。近年来涌现出很多基于“好奇心”的RL算法和层级RL算法,这两类算法的思路都是在模型训练的过程中插入反馈信号,从而部分地克服了反馈过于稀疏的问题。另一种思路是学习反馈函数,这是逆强化学习(Inverse RL, IRL)的主要方式之一。近些年大火的GAN也是基于这个思路来解决生成建模问题, GAN的提出者Ian Goodfellow也认为GAN就是RL的一种方式 [36]。而将GAN于传统IRL结合的GAIL[37]已经吸引了很多学者的注意。

  6. RL中的迁移学习与多任务学习。当前RL的采样效率极低,而且学到的知识不通用。迁移学习与多任务学习可以有效解决这些问题。通过将从原任务中学习的策略迁移至新任务中,避免了针对新任务从头开始学习,这样可以大大降低数据需求,同时也提升了算法的自适应能力。在真实环境中使用RL的一大困难在于RL的不稳定性,一个自然的思路是通过迁移学习将在模拟器中训练好的稳定策略迁移到真实环境中,策略在新环境中仅通过少量探索即可满足要求。然而,这一研究领域面临的一大问题就是现实鸿沟(Reality Gap),即模拟器的仿真环境与真实环境差异过大。好的模拟器不仅可以有效填补现实鸿沟,还同时满足RL算法大量采样的需求,因此可以极大促进RL的研究与开发,如上文提到的Sim-to-Real[71]。同时,这也是RL与VR技术的一个结合点。近期学术界和工业界纷纷在这一领域发力。在自动驾驶领域,Gazebo、EuroTruck Simulator、TORCS、Unity、Apollo、Prescan、Panosim和Carsim等模拟器各具特色,而英特尔研究院开发的CARLA模拟器[38]逐渐成为业界研究的标准。其他领域的模拟器开发也呈现百花齐放之势:在家庭环境模拟领域, MIT 和多伦多大学合力开发了功能丰富的VirturalHome模拟器;在无人机模拟训练领域,MIT也开发了Flight Goggles模拟器。

  7. 提升RL的的泛化能力。机器学习最重要的目标就是泛化能力, 而现有的RL方法大多在这一指标上表现糟糕[8],无怪乎Jacob Andreas会批评RL的成功是来自“train on the test set”。这一问题已经引起了学界的广泛重视,研究者们试图通过学习环境的动力学模型[80]、降低模型复杂度[29]或模型无关学习[81]来提升泛化能力,这也促进了基于模型的方法与元学习(Meta-Learning)方法的发展。BAIR提出的著名的Dex-Net项目主要目标就是构建具有良好鲁棒性、泛化能力的机器人抓取模型[82],而OpenAI也于2018年4月组织了OpenAI Retro Contest ,鼓励参与者开发具有良好泛化能力的RL算法[83]。

  8. 层级RL(Hierarchical RL, HRL)。周志华教授总结DL成功的三个条件为:有逐层处理、有特征的内部变化和有足够的模型复杂度[39]。而HRL不仅满足这三个条件,而且具备更强的推理能力,是一个非常潜力的研究领域。目前HRL已经在一些需要复杂推理的任务(如Atari平台上的《Montezuma’s Revenge》游戏)中展示了强大的学习能力[40]。

  9. 与序列预测(Sequence Prediction)结合。Sequence Prediction与RL、IL解决的问题相似又不相同。三者间有很多思想可以互相借鉴。当前已有一些基于RL和IL的方法在 Sequence Prediction任务上取得了很好的结果 [41,42,43]。这一方向的突破对Video Prediction和NLP中的很多任务都会产生广泛影响。

  10. (免模型)方法探索行为的安全性(Safe RL)。相比于基于模型的方法,免模型方法缺乏预测能力,这使得其探索行为带有更多不稳定性。一种研究思路是结合贝叶斯方法为RL代理行为的不确定性建模,从而避免过于危险的探索行为。此外,为了安全地将RL应用于现实环境中,可以在模拟器中借助混合现实技术划定危险区域,通过限制代理的活动空间约束代理的行为。

  11. 关系RL。近期学习客体间关系从而进行推理与预测的“关系学习”受到了学界的广泛关注。关系学习往往在训练中构建的状态链,而中间状态与最终的反馈是脱节的。RL可以将最终的反馈回传给中间状态,实现有效学习,因而成为实现关系学习的最佳方式。2017年DeepMind提出的VIN[44]和Pridictron[23]均是这方面的代表作。2018年6月,DeepMind又接连发表了多篇关系学习方向的工作如关系归纳偏置[45]、关系RL[46]、关系RNN[47]、图网络[48]和已经在《科学》杂志发表的生成查询网络(Generative Query Network,GQN)[49]。这一系列引人注目的工作将引领关系RL的热潮。

  12. 对抗样本RL。RL被广泛应用于机械控制等领域,这些领域相比于图像识别语音识别等等,对鲁棒性和安全性的要求更高。因此针对RL的对抗攻击是一个非常重要的问题。近期有研究表明,会被对抗样本操控,很多经典模型如DQN等算法都经不住对抗攻击的扰动[50,51]。

  13. 处理其他模态的输入。在NLP领域,学界已经将RL应用于处理很多模态的数据上,如句子、篇章、知识库等等。但是在计算机视觉领域,RL算法主要还是通过神经网络提取图像和视频的特征,对其他模态的数据很少涉及。我们可以探索将RL应用于其他模态的数据的方法,比如处理RGB-D数据和激光雷达数据等。一旦某一种数据的特征提取难度大大降低,将其与RL有机结合后都可能取得AlphaGo级别的突破。英特尔研究院已经基于CARLA模拟器在这方面开展了一系列的工作。

(七)重新审视RL的应用

通过调查,我们可以发现RL算法已经在各个领域被广泛使用:

  1. 控制领域。这是RL思想的发源地之一,也是RL技术应用最成熟的领域。控制领域和机器学习领域各自发展了相似的思想、概念与技术,可以互相借鉴。比如当前被广泛应用的MPC算法与Model-based RL中的planning部分紧密相关。在机器人领域,相比于DL只能用于感知,RL相比传统的法有自己的优势:传统方法如LQR等一般要对具体问题建立动力学模型,从而进行求解,复杂度较高,不适合用于做重规划;而RL方法学习到的则是状态-动作空间中的策略,具有更好的适应性。

  2. 自动驾驶领域。驾驶就是一个序列决策过程,因此天然适合用RL来处理。从80年代的ALVINN、TORCS到如今的CARLA,业界一直在尝试用RL解决单车辆的自动驾驶问题以及多车辆的交通调度问题。类似的思想也广泛地应用在各种飞行器、水下无人机领域。

  3. NLP领域。相比于计算机视觉领域的任务,NLP领域的很多任务是多轮的,即需通过多次迭代交互来寻求最优解(如对话系统);而且任务的反馈信号往往需要在一系列决策后才能获得(如机器写作)。这样的问题的特性自然适合用RL来解决,因而近年来RL被应用于NLP领域中的诸多任务中,如文本生成、文本摘要、序列标注、对话机器人(文字/语音)、机器翻译、关系抽取和知识图谱推理等等。成功的应用案例也有很多,如对话机器人领域中Yoshua Bengio 研究组开发的 MILABOT 的模型[54]、Facebook聊天机器人[55]等;机器翻译领域Microsoft Translator [56]等。此外,在一系列跨越NLP与计算机视觉两种模态的任务如VQA、Image/Video Caption、Image Grounding、Video Summarization等中,RL技术也都大显身手。

  4. 推荐系统与检索系统领域。RL中的Bandits系列算法早已被广泛应用于商品推荐、新闻推荐和在线广告等领域。近年也有一系列的工作将RL应用于信息检索、排序的任务中[57]。

  5. 金融领域。RL强大的序列决策能力已经被金融系统所关注。无论是华尔街巨头摩根大通还是创业公司如Kensho,都在其交易系统中引入了RL技术。

  6. 对数据的选择。在数据足够多的情况下,如何选择数据来实现“快、好、省”地学习,具有非常大的应用价值。近期在这方面也涌现出一系列的工作,如UCSB的Jiawei Wu提出的Reinforced Co-Training [58]等。

  7. 通讯、生产调度、规划和资源访问控制等运筹领域。这些领域的任务往往涉及“选择”动作的过程,而且带标签数据难以取得,因此广泛使用RL进行求解。

关于RL的更全面的应用综述请参见文献 [59,60]。

虽然有上文列举的诸多成功应用,但我们依旧要认识到,当前RL的发展还处于初级阶段,不能包打天下。目前还没有一个通用的RL解决方案像DL一样成熟到成为一种即插即用的算法。不同RL算法在各自领域各领风骚。在找到一个普适的方法之前,我们更应该针对特定问题设计专门的算法,比如在机器人领域,基于贝叶斯RL和演化算法的方法(如CMAES[61])比DRL更合适。当然,不同的领域间应当互相借鉴与促进。RL算法的输出存在随机性,这是其“探索”哲学带来的本质问题,因此我们不能盲目 All in RL, 也不应该RL in All, 而是要找准RL适合解决的问题。

参考文献

[1] Mnih, Volodymyr, et al. “Human-level control through deep reinforcement learning.” Nature 518.7540 (2015): 529.

[2] Silver, David, et al. “Mastering the game of Go with deep neural networks and tree search.” Nature 529.7587 (2016): 484-489.

[3] Silver, David, et al. “Mastering the game of go without human knowledge.” Nature 550.7676 (2017): 354.

[4] Levine, Sergey, et al. “End-to-end training of deep visuomotor policies.” arXiv preprint arXiv:1504.00702, 2015.

[5] Mao, Hongzi, et al. “Resource management with deep reinforcement learning.” Proceedings of the 15th ACM Workshop on Hot Topics in Networks. ACM, 2016.

[6] https://deepmind.com/blog/deepmind-ai-reduces-google-data-centre-cooling-bill-40/

[7] Jaques, Natasha, et al. “Tuning recurrent neural networks with reinforcement
learning.” (2017).

[8] Henderson, Peter, et al. “Deep reinforcement learning that matters.” arXiv
preprint arXiv:1709.06560 (2017).

[9] Islam, Riashat, et al. “Reproducibility of benchmarked deep reinforcement
learning tasks for continuous control.” arXiv preprint arXiv:1708.04133 (2017).

[10] https://riashatislam.files.wordpress.com/2017/08/icml_rl_workshop_talk.pdf

[11] https://sites.google.com/view/deeprl-symposium-nips2017/

[12]https://www.reddit.com/r/MachineLearning/comments/7lq58j/d_what_ml_publication_hacks_are_you_familiar_with/

[13] https://www.alexirpan.com/2018/02/14/rl-hard.html

[14] https://himanshusahni.github.io/2018/02/23/reinforcement-learning-never-worked.html

[15] http://amid.fish/reproducing-deep-rl

[16] http://rodeo.ai/2018/05/06/reproducibility-reusability-and-robustness-in-deep-reinforcement-learning/

[17] Dayan, Peter, and Yael Niv. “Reinforcement learning: the good, the bad and the ugly.” Current opinion in neurobiology 18.2 (2008): 185-196.

[18] http://www.argmin.net/2018/05/11/outsider-rl/

[19] Mania, Horia, Aurelia Guy, and Benjamin Recht. “Simple random search provides a competitive approach to reinforcement learning.” arXiv preprint arXiv:1803.07055 (2018).

[20] Justesen, Niels, et al. “Deep Learning for Video Game Playing.” arXiv preprint arXiv:1708.07902 (2017).

[21] https://www.youtube.com/watch?v=Ount2Y4qxQo

[22] https://sites.google.com/view/icml17deeprl

[23] Silver, David, et al. “The predictron: End-to-end learning and planning.” arXiv preprint arXiv:1612.08810 (2016).

[24] Deisenroth, Marc, and Carl E. Rasmussen. “PILCO: A model-based and data-efficient approach to policy search.” Proceedings of the 28th International Conference on machine learning (ICML-11). 2011.

[25] Levine, Sergey, and Vladlen Koltun. “Guided policy search.” International Conference on Machine Learning. 2013.

[26] Weber, Théophane, et al. “Imagination-augmented agents for deep reinforcement learning.” arXiv preprint arXiv:1707.06203 (2017).

[27] Sutton, Richard S. “Dyna, an integrated architecture for learning, planning, and reacting.” ACM SIGART Bulletin 2.4 (1991): 160-163.

[28] Silver, David, Richard S. Sutton, and Martin Müller. “Sample-based learning and search with permanent and transient memories.” Proceedings of the 25th international conference on Machine learning. ACM, 2008.

[29] Rajeswaran, Aravind, et al. “Towards generalization and simplicity in continuous control.” Advances in Neural Information Processing Systems. 2017.

[30] http://www.andreykurenkov.com/writing/is-alphago-zero-overrated/

[31] UCL Course on RL: http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html

[32] Powell, Warren B. “AI, OR and control theory: A rosetta stone for stochastic optimization.” Princeton University (2012).

[33] Pomerleau, Dean A. “Alvinn: An autonomous land vehicle in a neural network.” Advances in neural information processing systems. 1989.

[34] Abbeel, Pieter, and Andrew Y. Ng. “Apprenticeship learning via inverse reinforcement learning.” Proceedings of the twenty-first international conference on Machine learning. ACM, 2004.

[35] Osa, Takayuki, et al. “An algorithmic perspective on imitation learning.” Foundations and Trends® in Robotics 7.1-2 (2018): 1-179.

[36] https://fermatslibrary.com/arxiv_comments url=https%3A%2F%2Farxiv.org%2Fpdf%2F1406.2661.pdf

[37] Ho, Jonathan, and Stefano Ermon. “Generative adversarial imitation learning.” Advances in Neural Information Processing Systems. 2016.

[38] https://github.com/carla-simulator/carla

[39] https://36kr.com/p/5129474.html

[40] Vezhnevets, Alexander Sasha, et al. “Feudal networks for hierarchical reinforcement learning.” arXiv preprint arXiv:1703.01161 (2017).

[41] Ranzato, Marc’Aurelio, et al. “Sequence level training with recurrent neural networks.” arXiv preprint arXiv:1511.06732 (2015).

[42] Bahdanau, Dzmitry, et al. “An actor-critic algorithm for sequence prediction.” arXiv preprint arXiv:1607.07086 (2016).

[43] Keneshloo, Yaser, et al. “Deep Reinforcement Learning For Sequence to Sequence Models.” arXiv preprint arXiv:1805.09461 (2018).

[44] Watters, Nicholas, et al. “Visual interaction networks.” arXiv preprint arXiv:1706.01433 (2017).

[45] Hamrick, Jessica B., et al. “Relational inductive bias for physical construction in humans and machines.” arXiv preprint arXiv:1806.01203 (2018).

[46] Zambaldi, Vinicius, et al. “Relational Deep Reinforcement Learning.” arXiv preprint arXiv:1806.01830 (2018).

[47] Santoro, Adam, et al. “Relational recurrent neural networks.” arXiv preprint arXiv:1806.01822 (2018).

[48] Battaglia, Peter W., et al. “Relational inductive biases, deep learning, and graph networks.” arXiv preprint arXiv:1806.01261 (2018).

[49] Eslami, SM Ali, et al. “Neural scene representation and rendering.” Science 360.6394 (2018): 1204-1210.

[50] Huang, Sandy, et al. “Adversarial attacks on neural network policies.” arXiv preprint arXiv:1702.02284 (2017).

[51] Behzadan, Vahid, and Arslan Munir. “Vulnerability of deep reinforcement learning to policy induction attacks.” International Conference on Machine Learning and Data Mining in Pattern Recognition. Springer, Cham, 2017.

[52] Tesauro, Gerald. “Temporal difference learning and TD-Gammon.” Communications of the ACM 38.3 (1995): 58-68.

[53] Jones, Rebecca M., et al. "Behavioral and neural properties of social reinforcement learning."Journal of Neuroscience 31.37 (2011): 13039-13045.

[54] https://github.com/YBIGTA/DeepNLP-Study/wiki/MILABOT-:-A-Deep-Reinforcement-Learning-Chatbot

[55] Lewis, Mike, et al. “Deal or no deal? end-to-end learning for negotiation dialogues.” arXiv preprint arXiv:1706.05125 (2017).

[56] https://www.microsoft.com/zh-cn/translator/mt.aspx

[57] Derhami, Vali, et al. “Applying reinforcement learning for web pages ranking algorithms.” Applied Soft Computing 13.4 (2013): 1686-1692.

[58] Wu, Jiawei, Lei Li, and William Yang Wang. “Reinforced Co-Training.” arXiv preprint arXiv:1804.06035 (2018).

[59] Li, Yuxi. “Deep reinforcement learning: An overview.” arXiv preprint arXiv:1701.07274 (2017).

[60] Feinberg, Eugene A., and Adam Shwartz, eds. Handbook of Markov decision processes: methods and applications. Vol. 40. Springer Science & Business Media, 2012.

[61] https://en.wikipedia.org/wiki/CMA-ES

[62] Turing, Alan M. “Computing machinery and intelligence.” Parsing the Turing Test. Springer, Dordrecht, 2009. 23-65.

[63] https://en.wikipedia.org/wiki/Arthur_Samuel

[64] Russell, Stuart J., and Peter Norvig. Artificial intelligence: a modern approach. Malaysia; Pearson Education Limited, 2016.

[65] Noë, Alva. Action in perception. MIT press, 2004.

[66] Garnelo, Marta, Kai Arulkumaran, and Murray Shanahan. “Towards deep symbolic reinforcement learning.” arXiv preprint arXiv:1609.05518 (2016).

[67] http://www.argmin.net/2018/04/16/ethical-rewards/

[68] Bojarski, Mariusz, et al. “End to end learning for self-driving cars.” arXiv preprint arXiv:1604.07316 (2016).

[69] Recht, Benjamin . “A Tour of Reinforcement Learning:The View from Continuous Control.” arXiv preprint arXiv: 1806.09460

[70] Kalashnikov, Dmitry, et al. “QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic Manipulation.” arXiv preprint arXiv:1806.10293 (2018).

[71] Tan, Jie, et al. “Sim-to-Real: Learning Agile Locomotion For Quadruped Robots.” arXiv preprint arXiv:1804.10332 (2018).

[72] Auer, Peter. “Using confidence bounds for exploitation-exploration trade-offs.” Journal of Machine Learning Research 3.Nov (2002): 397-422.

[73] Agrawal, Shipra, and Navin Goyal. “Thompson sampling for contextual bandits with linear payoffs.” International Conference on Machine Learning. 2013.

[74] Mohamed, Shakir, and Danilo Jimenez Rezende. “Variational information maximisation for intrinsically motivated reinforcement learning.” Advances in neural
information processing systems. 2015.

[75] Pathak, Deepak, et al. “Curiosity-driven exploration by self-supervised prediction.” International Conference on Machine Learning (ICML). Vol. 2017. 2017.

[76] Tang, Haoran, et al. “# Exploration: A study of count-based exploration for deep reinforcement learning.” Advances in Neural Information Processing Systems. 2017.

[77] McFarlane, Roger. “A Survey of Exploration Strategies in Reinforcement Learning.” McGill University, http://www. cs. mcgill. ca/∼ cs526/roger. pdf, accessed: April (2018).

[78] Plappert, Matthias, et al. “Parameter space noise for exploration.” arXiv preprint arXiv:1706.01905 (2017).

[79] Fortunato, Meire, et al. “Noisy networks for exploration.” arXiv preprint arXiv:1706.10295 (2017).

[80] Kansky, Ken, et al. “Schema networks: Zero-shot transfer with a generative causal model of intuitive physics.” arXiv preprint arXiv:1706.04317 (2017).

[81] Li, Da, et al. “Learning to generalize: Meta-learning for domain generalization.” arXiv preprint arXiv:1710.03463 (2017).

[82] https://berkeleyautomation.github.io/dex-net/

[83] https://contest.openai.com/2018-1/

我的方向

除了这篇对强化学习的综述以外,我还需要了解更多关于强化学习的应用的实例,不仅仅是Deep Q Network,以及Double DQN,Dueling DQN,Deep Deterministic Policy Gradient,A3C,Proximal Policy Optimization (PPO)等等强化学习的算法流程,更要关注它们的具体运用和具体效果,在哪些方面有独特的优势,又有什么样的问题。这篇文章提到DRL算法的几大常见问题主要是: 样本利用率非常低;最终表现不够好,经常比不过基于模型的方法;好的奖励函数难以设计;难以平衡“探索”和“利用”,以致算法陷入局部极小;对环境的过拟合;灾难性的不稳定性。其中样本利用率低是RL的硬伤,这是非常值得研究的课题,所以RL与模仿学习(Imitative Learning)的结合也是研究的一个方向。IL介于RL与监督学习之间,兼具两者的优势,既能更快地得到反馈、更快地收敛,又有推理能力,很有研究价值。

除了模仿学习,元学习(meta learning)也是一个方向

元学习简介

Meta Learning,元学习,也叫 Learning to Learn(学会学习)。是继Reinforcement Learning(增强学习)之后又一个重要的研究分支,它的发展历程和动因可以归纳如下图:

在这里插入图片描述
举个例子,把棋盘变大之后AlphaGo还能行吗?目前的方法显然是不行的,AlphaGo会立马变成傻瓜。而我们人类分分钟就可以适应新的棋盘。再比如人脸识别,我们人往往可以只看一面就能记住并识别,而现在的深度学习却需要成千上万的图片进行训练之后才能做到。

人类之所以能够快速学习的关键是人类具备学会学习的能力,能够充分的利用以往的知识经验来指导新任务的学习。因此Meta Learning成为了新的攻克方向,核心问题就是要让人工智能自己学会思考,学会推理。

我们在现实生活中往往会遇到很多新任务,现在的深度学习因为无法快速适应新任务,就没办法替代人类工作。而一旦AI具备了这种快速学习的能力,例如机器人,才能够真正走进千家万户。因为每个人对机器人的使用都不一样,每个家庭的环境也都不一样,只有机器人具备了快速学习的能力,不需要预先训练,才能适应各种各样的要求。

因此,要让机器人走进千家万户,我们需要机器人能够实时学习,不断学习,快速学习,即使面对一个新的类似的任务,也能快速掌握。这样的机器人会非常强大,能真正处理各种任务!

因此,在深度增强学习的大框架下,我们还需要:

终生学习Life Long Learning 少样本学习Few Shot Learning 多任务学习Multi Task Learning
多智能体学习Multi Agent Learning 学会学习Meta Learning/Learning to Learn
迁移学习Transfer Learning

也就是说,从机器人的角度,我们希望机器人能够实现的智能决策需要具备以下几点:

能够不断通过与环境交互来学习提升决策能力,也就是终生学习 能够快速学习,面对新的任务,可以通过少量的训练就掌握 可以处理多种任务
可以实现多智能体的协作完成任务 能够学会学习,这和快速学习本质是一样的,就是发现学习规律,面对新任务可以快速入手
这也和快速学习的目标一致,希望通过迁移以往学习的经验来加速新任务的学习。

基本上目前的学会学习研究还是从基本的图像识别入手,希望能够实现快速的图像实现。然而当前的研究仍是百花齐放状态,仍在研究有效的算法。

当前针对实验“元学习”的方法有很多,具体可以分为以下几类:

1、基于记忆Memory的方法。 基本思路:因为要通过以往的经验来学习,那就可以通过在神经网络中添加Memory来实验。
2、基于预测梯度的方法。 基本思路:Meta
Learning的目的是实现快速学习,而实现快速学习的关键点是神经网络的梯度下降要准和快,那么就可以让神经网络利用以往的任务学习如何预测梯度,这样面对新的任务,只要梯度预测的准,那么学习就会快。

3、利用Attention注意力机制 基本思路:训练一个Attention模型,在面对新任务时,能够直接的关注最重要部分。

4、借鉴LSTM的方法
基本思路:LSTM内部的更新非常类似于梯度下降的更新,那么能否利用LSTM的结构训练处一个神经网络的更新机制,输入当前网络参数,直接输出新的更新参数

5、面向RL的Meta Learning方法 基本思路:既然Meta
Learning可以用在监督学习,那么增强学习上又可以怎么做呢?能否通过增加一些外部信息的输入比如reward,和之前的action来实验。

6、通过训练一个base model的方法,能同时应用到监督学习和增强学习上
基本思路:之前的方法只能局限在监督学习或增强学习上,能否做出一个更通用的模型。

7、利用WaveNet的方法 基本思路:WaveNet的网络每次都利用了之前的数据,那么能否照搬WaveNet的方式来实现Meta
Learning呢?就是充分利用以往的数据。

8、预测Loss的方法
基本思路:要让学习的速度更快,除了更好的梯度,如果有更好的Loss,那么学习的速度也会更快,因此,可以构建一个模型利用以往的任务来学习如何预测Loss

明日工作:

研究代码。根据这篇博客 https://blog.csdn.net/jinzhuojun/article/details/80417179 学习PPO算法,并在OpenAI Gym上模拟测试。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值