首页 AI学术青年与开发者社区

【中英字幕】伯克利大学 2018 年秋季 CS 294-112 深度强化学习

开课时间:2018年12月20日
开课时长:26讲

01 of UC Berkeley RL Course CS294-112

 

Teacher: Sergey Levine, Electric engineering (EECS)

what we'll cover:

  • Full list on course website (click "Lecture Slides")

    1. From supervised learning to decision making (如何将有监督问题转化为决策问题)

    2. Model-free algorithms: Q-learning, policy gradients, actor-critic

    3. Advanced model learning and prediction

    4. Exploration (一个新的RL概念, 以及最新的进展)

    5. Transfer and multi-task learning, meta-learning

    6. Open problems(公开问题), research talks(研究报告), invited lectures(邀请演讲)

Assignments

  1. Homework 1: imitation learning (control via supervised learning)

  2. Homework 2: Policy gradients ("REINFORCE")

  3. Homework 3: Q learning and actor-critic (演员-批判家) algorithms

  4. Homework 4: Model-based reinforcement learning

  5. Homework 5: Advanced model-free RL algorithms

  6. Final project: Research-level project of your choice (form a group of up to 2-3 students, you're welcome to start early!)

What is reinforcement learning, and why should we care ?

  • How do we build intelligent machines ? (引子)

    1. Intelligent machines must be able to adapt (适应性, 但是现实是复杂的环境会让智能体实现适应性是一件很困难的事情).

    2. Deep learning help us handle unstructured environments . (深度学习的好处在于它能提供一种处理非结构化环境的工具, 非结构化的意思是你不能提前预测环境中所有东西的布局或者突发情况.)

    3. Reinforcement learning provides a formalism for behavior (虽然深度学习可以帮助我们处理现实世界非结构化的输入信息, 但是没有告诉我们怎么决策(大概指黑箱和不可解释性,以及太过暴力和不灵活),如果要实现一个灵活决策的智能系统例如家用机器人或者战斗机器人, 你就可能需要某种用来做决策的数学公式, 因为在实际使用中要做的不只是识别什么, 还需要选择做出什么样的反应, 强化学习就是一种用来做决策的数学框架, 实现智能体和环境之间的交互)

      还有alpha go 等等.

    4. 游戏里面运用强化学习成功的一个例子: TD gammon 强化学习 + 神经网络.

  • What is deep RL, and why should we care ?

    早期的视觉算法中, 构建好的特征时分重要, 但是很麻烦; 深度学习的话就不需要人去刻意手动定义特征了, 模型会自己学习特征. 对增强学习, 标准的增强学习采用传统的比如线性函数的方式, 可能从一些状态入手(如有些游戏), 通常会以某种方式进行编码, 然后从中抽取特征, 这些特征用于强化学习时比较困难的, 因为可以用作决策的状态的特征如线性表示策略或者值函数可能在某种程度上是违反直觉的. 这可能比传统的视觉算法中更难找到特征, 找到也存在向高层抽取时的转换困难问题, 而且因为状态是不断变化的, 所以即便底层特征抽象到了高层特征, 所需要的有区分性的高层特征仍然会很多. 这是早期应用强化学习应用困难的原因. 深度强化学习的好处在于我们可以将整个模型作为一个整体, 从端到端训练, 好处是不需要人工去构造特定和指定那些特征是正确的, 通过优化就可以得到比较好的底层特征以帮助高层做出决策)

  • What dose end-to-end learning mean for sequential decision making ?

    端到端的模型在决策时到底有什么作用 ?特别是对现实世界来说, 这个决策将取决于自身的感知和感觉, 传统的方法, 比如机器人做决策, 就是有一个感知系统, 它会检测到周围的环境,还有一个控制系统作用于感知系统的输出端(根据感知做出决策), 然后根据感知做出决策. 这种模式的困难之处在于机器需要高层次的抽象特征, 这在一定程度上会依赖于人的指导.

    传统的神经网络一般只能处理感知(机器人的感知系统)的问题, 但是动作相应一般很难做(机器人的控制系统, 类似于控制系统里面的正反馈和负反馈), 关键问题在于如果你想联合训练控制系统和感知系统时, 机器就必须首先知道感知的对象的对自身的好坏(类似趋利避害), 这与以后要学的值函数有关.

    事实上, 强化学习是其他机器学习问题的一个泛化, 如果不做一个分类任务, 你也可以把它重新构建为一个强化学习任务, 例如对于图像分类问题, 动作是输出的标签, 观测的是图像的像素, 奖励是你的分类正确率, 虽然听起来更麻烦了, 但是思想很重要. (实际上, 自然语言处理大部分都是要靠值构建奖励)

    Deep models are what reinforcement learning algorithms to solve complex problems end to end ! (深度学习一般会给我们提供一些底层的表示(Observations), 然后借助强化学习去执行各种复杂的任务, 也是属于端到端结构.)

Why should we study this now ?

  1. Advances in deep learning (深度学习发展的很快, 强大的工具)

  2. Advances in reinforcement learning (强化学习有了一些新的进展)

  3. Advances in computational capability (计算力的提升, 给上述应用提供条件)

What other problems do we need to solve to enable real-world sequential decision making ? (连续决策)

  1. Beyond learning from reward (一个我们经常面对的问题是, 当我们想建立一个能在现实世界中运行的高效强化学习系统时, 我们不能只是假定有一个很完美的完全正确的奖励函数)

    • Basic reinforcement learning deals with maximizing rewards

    • This is not the only problem that matters for sequential decision making ! ( 这并不是影响顺序决策的惟一问题! )

    • We will cover more advances topics

      • Learning reward functions from example (inverse reinforcement learning) 意味着你可以不从奖励函数开始, 而是直接从数据开始 (初次尝试过, 但优化过程的运算空间实在太大, 对NLP任务比较难).

      • Transferring knowledge between domains (transfer learning, meta learning)

      • Learning to predict and using prediction to act

  2. Where do rewards come from ? (奖励是传统强化学习中的基本构件.一般情况下, 人们是不知道精确的奖励到底是什么样的, 而且也很难测量, 这也是做强化学习的一个难点. 人的奖励大部分是一些大脑指挥人体分泌的激素啥的...猜的)

    有趣的Berkeley's Quotation:

    "作为人类, 我们习惯于跟着奖励运转, 这些奖励是如此之少, 可能一辈子只能经理一次或两次, 如果奖励存在的话"

    "You know as human agents we are accustomed to operating with rewards that are so sparse that we only experienced them once or twice in a lifetime if at all."

    --"I pity the author" (from Reddit)

  3. Are there another forms of supervision ?

    • Learning from demonstrations

      • Directly copying observed behavior

      • Inferring rewards from observed behavior (inverse reinforcement learning, 通过感知网络进行推理自动产生奖励可能也算一个)

    • Learning from observing the world (下面是可以用来做什么)

      • Learning to predict

      • Unsupervised learning

    • Learning from other tasks

      • Transfer learning

      • Meta-learning: learn to learn

  4. Some examples

    • Imitation learning 英伟达的无人驾驶汽车 (no reward, Directly copy and supervision).

    • More than imitation: inferring intentions人般东西到柜子边上, 旁边小孩通过观察理解到你的意图推测你可能要放进去, 然后走过去给你打开柜子.

    • Inverse RL examples 人扶着机械臂倒水, 充分很多次, 产生了很多轨迹, 然后机器就从这个轨迹中学习奖励, 当随机防一个杯子在他面前时, 它就根据奖励做出行动, 那就是往杯子里面倒水.

    • Prediction "the idea that we predict the consequences of our motor command has emerged(出现, 暴露) as an important theoretical concept in all aspects of sensorimotor (感觉运动的) control" ( 我们预测我们的运动指令的后果的想法, 在所有方面的感觉运动控制已经成为一个重要的理论概念. 有研究表明, 人类的一些智慧推理实际上是基于预测.)

  5. What can we do with a perfect model ?

    • Prediction for real world control

  6. How do we build intelligent machines ?

    • Imagine you have to build an intelligent machine, where do you start ?

      根据已知的智能体(如人类), 模仿其组建功能, 编写代码, 实际上很难.

    • Learning as the basis of intelligence (学习时智力的基础, 将要模仿的智能体的功能简化, 即: 在建立某个模型之前设置一个一致同意的特定假设)

      • Some things we can all do (e.g. walking)

      • Some things we can only learn (e.g. driving a car)

      • We can learn a huge variety of things, including very difficult things ( 我们可以学到各种各样的东西,包括非常困难的东西 )

      • Therefore our learning mechanism(s) are likely powerful enough to do everything we associate with intelligence (不太现实)

        • But it may still be very convenient to "hard-code" a few really important bits (硬编码有时候也是很方便的, 不一定全是算法?)

    • A single algorithm ? (对前面假设的更进一步, 存在一种或者几种算法能够完成指定任务. 算法也是学习的基础, 这是一个很有意义的假设.)

      • An algorithm for each "module" ? ( 目前的研究倾向于可以为每个组件设计一个算法. 例如: 人类-鼻子&嗅觉算法;舌头&味觉算法)

    • What must do that single algorithm do ?

      • Interpreter rich sensory inputs

      • Choose complex actions

    • Why deep reinforcement learning ?

      • Deep = can process complex sensory input

        • ... and also compute really complex functions

      • Reinforcement learning = can choose complex actions

    • Some evidence in favor of deep learning (Papers)

      1. Unsupervised learning models of primary cortical receptive fields and receptive field plasticity.

      2. Reinforcement learning in the brain

        • Percepts(认知, 感知) that anticipate(预期) reward become associated with similar firing patterns(放点模式) as the reward itself.

          预期奖励的感知与奖励本身的激发模式相似. 这意味着如果你看到什么东西, 然后你知道这个特定信号总是在某些奖励之前出现, 那么你就会把这个信号和奖励关联起来, 这和所谓的贝尔曼备份("Bellman back up")比较相似. 在讲值函数的时候会讲到.

        • Basal ganglia appears to be related to reward system.

          基底神经节可能和奖励系统有联系.

        • Model-free RL-like adaption is often a good fit for experimental data of animal adaption.

  7. What can deep learning & RL do well now ?

    • Acquire high degree of proficiency in domains governed by simple, known rules. ( 在由简单的、已知的规则管理的领域中获得高度精通.)

    • Learn simple skills with raw sensory inputs, given enough experience

    • Learn from imitating enough human provided expert behavior

  8. What has proven so far ?

    • Humans can learn incredibly(难以置信的) quickly

      • Deep RL methods are usually slow

    • Humans can reuse past knowledge

      • Transfer learning in deep RL is an open problem

    • No clear what the reward function should be

 

 

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

深度学习处理现实世界的非结构化输入信息,强化学习给出一种可以用来做决策的数学框架

[展开全文]

所谓一个模型就是一个概率分布,模型中的参数就是概率分布的参数。

比如:

二项分布:参数只有一个p

正态分布:参数有标准差和平均值

线性分布:参数有k和b

高斯分布 

泊松分布

...

未知模型:参数有w1,....,wn

   

所以监督学习是从统计学角度上去进行模仿,而不是智能地学习

st(state) - PI(at|st) 状态动作概率分布 - at(action)

[展开全文]

广义的强化学习是一切机器学习问题的泛化。

1.深度强化学习已经成功应用于机器人控制与电子游戏中,其他应用领域包括自动驾驶领域、NLP领域、推荐系统与检索系统领域、金融领域等。但个人觉得只有在控制领域深度强化学习才有绝对的优势,在其他领域未必强过一些经典的深度学习算法(例如LSTM和CNN)。

2.该领域的一些前沿研究:模仿学习、逆向强化学习、分层强化学习、迁移学习与多任务学习等。

3.人脑中的奖励从何而来?课程中说是基层神经节,更具体的,我认为是多巴胺,它是神经元中奖励信号的传递者,同时体现了神经元反应的多样性,最近有一篇基于多巴胺的分布式强化学习研究,我觉得非常具有启发意义。链接如下:

A distributional code for value in dopamine-based reinforcement learning:

https://www.nature.com/articles/s41586-019-1924-6

4.why深度强化学习?深度学习——处理复杂的输入,强化学习——生成复杂的输出。

5.深度强化学习的挑战:当前的人工智能似乎正在本末倒置,我们正试图训练计算机从零开始完成一些复杂的任务,这种训练有时可能会有效,但由于这些模型是针对特定的任务而不是泛化能力而训练的,它们对自己的环境没有泛化的了解,最终导致系统过于脆弱,效果也不是很好。我认为通用人工智能的未来,首先是设计可以在完全无监督的环境中学习智能体和环境之间的泛化表征,并学习到一些基本能力的模型,类似于一个人类的小孩,而非精通某种复杂任务的成年人。

 

 

 

 

[展开全文]

奖励函数如何确定?是深度强化学习的一个重点

[展开全文]

给一个小建议哈,对于一些专有名词,如果没有统一固定的中文翻译是否可以不翻译呢?

(1)为什么需要学习模型?

答案是明确的,因为model-base的方法有着其自身的优点,比如数据效率高。而在一些任务中,如果模型是已知的,那么就可以利用上一节中的算法比如MCTS/LQR去做规划,而不需要大量跟环境做交互。

(2)各种版本的model

2.1 model version 0.5

流程: 见幻灯片 p7

疑问: v0.5中plan怎么做呢?(是否在hw中会有涉及?)

奏效场合: 对于可以利用专家知识构建模型,仅需要拟合少数的情况,v0.5奏效.

不奏效场合: 以图中悬崖示例。 不奏效的原因是产生数据的策略和真实环境的分布不一致。

2.2 model version 1.0

该版本相对于v0.5增加了:不断继续从利用已有模型做planning,利用planning的action跟环境继续交互,进一步添加训练环境模型所需数据,目的在于借鉴v0.5中pi_0和pi_f不一致问题.

2.3 model version 1.5

该版本相对于v1.0,在原有plan之后增加逻辑: 仅执行第一步规划的action,观测执行该action的结果。

疑问:若观测到此时s '不符合预期,如何干预已有过程呢? (待查代码验证)

2.4 model version 2.0

(3)

 

 

 

[展开全文]

Todos:

(1) PPT下载地址

(2) 能不能选择只要英文字幕 @小助手

 

[展开全文]

模型加深可以让强化学习能端到端解决复杂问题。

[展开全文]

强化学习在自然语言处理也有很多的应用,比如自动生成摘要

[展开全文]

CS294 深度增强学习 这门课的质量是不是不大好?

 

我就是知乎本文回答的作者。 过来听课, 贡献字幕和后期笔记。

 

首先这门课的质量非常好。 课程反应了Sergey Levine和整伯克利RL的积累,独立于《RL Introduction》的教学体系自成一派。最可贵的是涵盖近1-2年RL最前沿的知识。 这门课又难又深,但绝对是飞往RL前沿的航班。研究RL的同学万万不可错过啊。CS294什么水平呢, Sergey认为CS294最后一门作业独立研究部分, 可以发表NIPS的workshop。 我个人感觉nips的workshop是比一般会议要难的。 如果想申请博的同学, 有NIPS workshop是加分项。

看不懂是因为这门课非常深, 并且完全没有沿用《RL Introduction》的教学体系。 甚至练符号定义都和《RL Introduction》有一些不一样的地方。 下文先说《RL Introduction》的教学体系 然后在说伯克利openAI一派的RL的渊源。 建议先学习一下 伯克利DeepRL暑假课 。 这课程和CS294风格类似, 难度降低不少。而且沿用更多《RL Introduction》,可以作为cs294的垫脚石。 台湾的李宏毅老师有几节Deep RL的课程, 柔和了《RL Introduction》体系和伯克利体系,也是cs294非常好的垫脚石。

我的CS294学习过程也很曲折, 中间放弃3次。因为《RL Introduction》对我影响根深蒂固, 加上我博士才出国学习, 前两年听力有限,也非常痛苦。 也就是前段时间,才体会到CS294其中滋味。 所以千万别错过了。 等我腾出整块时间,一定再系统学一次,并整理本笔记放在知乎上面。

-----------割了-----

 

《RL Introduction》 体系出自强化学习之父Richard S. Sutton 的书《Reinforcement Learning: An Introduction》89版本,这本书18年再次修订, 但基本结构没有什么变化。 由于师承关系, UCL David Sliver的课程,加拿大滑铁卢, 牛津几个大学用的都是这一套体系。代表公司DeepMind 与那本经典教科书一致,大概学习路线是 agent-environment loop->MDP->Dynamic planning->Monte Carlo->TD->function approximation

伯克利RL一派, 开始于 Pieter Abbeel, 他原来是Andrew Ng吴恩达的博士生。 插一句Andrew博士论文也是做RL的, 师承Micheal Jordan 和Richard S. Sutton 那帮人不是特别紧密不大。Pieter Abbeel到伯克利任教后, 招的Sergey Levine 也是cs294的讲师。Sergey原来是机器人控制领域背景的。 所以很多关注点在和Richard S. Sutton不同。这一派代表公司openAI。八卦一下, DeepMind和openAI两家公司是竞争关系, 暗地互相较劲。

两脉最大的不同是, Richard S. Sutton一脉强调Temporal Difference(TD)的使用,看重单步的信用分配为题。 比如 DQN[1] 一路玩下去,到头玩到 Rainbow[4]。 伯克利一脉强调把一个回合(下文称之为episode)视为研究重点。他们继承了大量控制领域的思想, 就连实验很多也是用机器人。 伯克利RL非常关注episode的分布,重点是REINFORCE算法的衍生算法, 又称梯度下降法。RL近年来的重点成果的TROP[2],PPO[3]就出自这一脉(cs294讲师也是作者之一)。Actor-Critic是连接梯度下降思想和TD算法. 特别是近年来,有各种研究认为Actor-Critic和生成式对抗网络(GAN)有某种联系 [5]。个人认为未来的RL应该是 model based 或者半model based 混合并行的Actor-Critic + off-policy混人类知识的方向走。

 

结论: CS294符号风格和体系不用于《RL Introduction》 体系。 同时课程深度和广度都非常大。对看网课没有助教和讨论组的同学是非常的挑战。 加之目前没有中文字幕和中文笔记,对孤立在国内的同学又比较的阻力。 但这课程非常重要, 所以千万不要放弃。 实在看不懂,放一放,后续慢慢后更多比较,知乎帖子甚至字幕出来。 祝好。

 

19年3月17日初稿。

 

参考:

[1] Mnih, V., Kavukcuoglu, K., Silver, D., Rusu, A. A., Veness, J., Bellemare, M. G., ... & Petersen, S. (2015). Human-level control through deep reinforcement learning.Nature,518(7540), 529.

[2] Schulman, J., Levine, S., Abbeel, P., Jordan, M. I., & Moritz, P. (2015, July). Trust Region Policy Optimization. InIcml(Vol. 37, pp. 1889-1897).

[3] Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal policy optimization algorithms.arXiv preprint arXiv:1707.06347.

[4] Hessel, M., Modayil, J., Van Hasselt, H., Schaul, T., Ostrovski, G., Dabney, W., ... & Silver, D. (2018, April). Rainbow: Combining improvements in deep reinforcement learning. InThirty-Second AAAI Conference on Artificial Intelligence.

[5] Pfau, D., & Vinyals, O. (2016). Connecting generative adversarial networks and actor-critic methods.arXiv preprint arXiv:1610.01945.

[展开全文]

进入小组观看课程

以下为该课程相关学习小组,您可以选择任意小组加入学习课程并交流