返回 播客 学习 audios

深度强化学习:从游戏到现实世界的挑战与深度交通竞赛

本讲座深入探讨深度强化学习的原理,从Q学习到DQN,再到AlphaGo Zero的突破。重点介绍MIT深度交通竞赛,展示如何在浏览器中训练神经网络控制车辆,并讨论强化学习在现实世界应用中的挑战与AI安全问题。

深度强化学习DQN深度交通AlphaGo Zero
成长分 / 100 71 综合收获、行动、留存与影响

为什么值得读本讲座深入探讨深度强化学习的原理,从Q学习到DQN,再到AlphaGo Zero的突破

重点介绍MIT深度交通竞赛,展示如何在浏览器中训练神经网络控制车辆,并讨论强化学习在现实世界应用中的挑战与AI安全问题

关键洞察
  1. 这条内容的价值在于把外部信息转化为可执行的判断和行动。
转成行动

Lex Fridman · 中文播客

查看原视频 ↗

节目文字稿

中文播客全文

Podcast Script (zh)

[0.120-2.987] SPEAKER_00: 今天聊聊深度强化学习。

[3.067-5.539] SPEAKER_00: 我们要探讨的问题是

[5.619-9.891] SPEAKER_00: 系统能学会行动多少, 从数据里感知并行动。

[9.971-20.594] SPEAKER_00: 先退一步想想 任务到底有多大 一个人工智能要完成的。 这是堆栈结构。 从上到下,输入到输出。 顶部是环境,智能体在其中运作。

[20.674-25.503] SPEAKER_00: 传感器感知外部世界, 转成机器能读的原始数据。

[25.583-35.579] SPEAKER_00: 传感器数据。 从这些原始数据里提取特征。 你从数据中找结构, 然后输入进去, 理解它, 辨别、分离、理解数据。

[35.659-43.147] SPEAKER_00: 就像我们说过, 你会形成越来越高阶的表示。 一个分层表示结构, 这样,机器学习技术就能用了。

[43.227-57.498] SPEAKER_00: 像我说的,机器学习技术一旦理解, 把数据变成特征, 转化成更高层的表示, 变成简单、可用、有用的信息, 我们把这些信息汇集成知识。 我们从数据里提取的知识片段,

[57.578-60.805] SPEAKER_00: 通过机器学习技术, 再建一个分类体系,

[60.885-66.411] SPEAKER_00: 一个知识库。 借助这些知识,我们进行推理。 智能体被赋予推理任务,

[66.491-80.773] SPEAKER_00: 汇聚, 连接最近看到的数据片段, 或很久以前的数据, 从而理解它所在的世界, 最终制定在这个世界里的行动方案, 基于它的目标, 基于它想达成的目的。 就像我刚才说的,

[80.853-83.918] SPEAKER_00: 简单又公认的智慧定义

[83.998-87.608] SPEAKER_00: 就是能完成复杂目标的系统。

[87.688-104.002] SPEAKER_00: 所以,在现实世界中运行的系统 必须有个目标。 它得有个目标函数, 和一个奖励函数。 据此,它制定计划 并采取行动。 而且在很多情况下,它运行 在物理世界里, 它得有工具, 效应器,用来施加行动

[104.082-111.071] SPEAKER_00: 来改变世界中的事物。 这就是完整的体系 一个在现实世界中行动的AI系统。

[111.151-115.377] SPEAKER_00: 问题是, 什么样的任务,这样的系统, 承担什么?

[115.457-119.590] SPEAKER_00: 一个AI系统能学什么任务? 就像我们今天理解的AI?

[119.670-128.946] SPEAKER_00: 我们来聊进步 深度强化学习方法 用很迷人的方式 它能搞定这个堆栈大部分 看成端到端的学习问题

[129.026-144.655] SPEAKER_00: 但我们看看游戏 看看简单形式化的世界 尽管这依然令人惊叹、美丽 而且是前所未有的成就 但它还是形式化的任务 我们能超越游戏吗 进入专家任务 比如医学诊断 设计 还有自然语言

[144.735-148.868] SPEAKER_00: 最后 达到人类级别的情绪任务 想象力 意识

[148.948-163.091] SPEAKER_00: 再来看这个堆栈 具体来说 其实 我们手头的工具有 机器人的输入 在真实世界中运行 从汽车到人形机器人 到无人机 比如激光雷达、摄像头、雷达、GPS 立体摄像头

[163.171-169.417] SPEAKER_00: 音频、麦克风 通信网络 还有各种运动学测量方法 通过IMU

[169.497-182.967] SPEAKER_00: 原始传感数据 然后处理成特征 形成表征 以及多个越来越高层的 表征 这就是深度学习带来的 神经网络出现之前, 在近期的成功中, 让神经网络更深入, 然后就能形成,

[183.047-197.364] SPEAKER_00: 数据的高阶表示前, 那是专家完成的, 人类专家完成的。 如今网络能做到这一点。 这就是表示的部分。 在表示部分之上, 这些网络的最终层, 能够完成, 监督学习任务, 生成任务,

[197.444-210.101] SPEAKER_00: 还有无监督聚类任务, 通过机器学习。 这就是我们在, 第一讲里提过的内容, 明天和周三 会继续讨论。 这就是监督学习。 你可以想一想 这些网络的输出 是简单清晰有用的

[210.181-221.164] SPEAKER_00: 有价值的信息。 这就是知识。 而这些知识 可以 以单一数字的形式存在 可以是回归 连续变量 可以是一串数字 可以是图像、音频 句子、文本、语音。

[221.244-235.770] SPEAKER_00: 一旦这些知识被提取 并整合 我们怎么以多分辨率的方式 把它们连接起来 形成思想的层级结构 连接思想? 这例子又琐碎又蠢 关于连接图像 活动识别和音频 比如

[235.850-247.030] SPEAKER_00: 要是看着像鸭子 叫声像鸭子 游泳也像鸭子 目前还没办法 有效整合 这些信息 得出更靠谱的判断 其实就是只鸭子 而规划部分 就是获取

[247.110-259.604] SPEAKER_00: 感官信息 融合感官信息 还有基于这些 长期规划 像我们今天要讲的 正越来越容易处理 讲到学习方法, 讲到深度学习方法, 但至今为止一直是 最成功的

[259.684-275.383] SPEAKER_00: 在非学习优化中 基于方法, 就像几位特邀演讲者, 我们有,包括创造者 这个机器人,Atlas, 在波士顿动力公司。 所以问题, 从输入到输出, 我们知道可以学习 表示和知识。

[275.463-286.341] SPEAKER_00: 从表示到知识, 即使使用核方法 SVM的, 当然还有 神经网络, 从表示映射 到信息 一直是那个 机器学习的主要成功 过去三十年一直是

[286.421-301.969] SPEAKER_00: 从原始感官数据映射 到知识 那就是成功的地方 自动表示 深度学习 一直是成功的 直接从原始数据到知识 对我们来说开放的问题是 今天及以后 是我们能否扩大红色框

[302.049-320.490] SPEAKER_00: 那里可以端到端学习的内容 从感官数据到 推理,所以聚合 形成更高层次的表示 提取的知识 并形成计划 并根据原始感官数据在现实世界行动 我们来展示 令人难以置信的是,我们能够 准确地学习

[320.570-334.655] SPEAKER_00: 这里展示的端到端内容 通过深度强化学习在琐碎任务上 以可推广的方式 问题在于是否 这能继续推进 到现实世界的任务 比如自动驾驶汽车 类人机器人等

[334.735-340.563] SPEAKER_00: 这是个悬而未决的问题 今天我们来谈谈 强化学习 什么是强化学习?

[340.643-355.053] SPEAKER_00: 监督学习和无监督学习 它们是分类的 处于极端 相对于数量 需要人工输入。 说到监督学习 用来训练这些系统的 每份数据 先由人来标注。 右边是无监督学习

[355.133-369.392] SPEAKER_00: 没有数据 由人标注的。 两者之间是少量 人工稀疏输入 半监督学习 就是只有部分 数据由人提供 真实标注,其余部分 系统必须推断和泛化。 这就引出了强化

[369.472-382.466] SPEAKER_00: 学习,强化学习 如图所示 跟那些猫咪一起 像我说的,每次成功 演示一定要有猫 它们应该是 巴甫洛夫的猫 然后摇铃 每次它们摇铃 它们得到食物,就学会了

[382.546-397.989] SPEAKER_00: 强化学习的目标 就是学习 从稀疏数据中 从奖励数据中学习 从稀疏的监督数据 利用这个事实 在模拟或现实里 世界有时间一致性 对世界来说,有一个 时间动态,它

[398.069-415.231] SPEAKER_00: 从一个状态到另一个,再到下一个 随时间推移,你可以 传播信息,哪怕 你收到的信息 监督 实际情况很稀疏。 你可以顺着这些信息回溯 通过时间来推断 关于事情真相的一些信息。 在那之前,即便你的奖励

[415.311-428.874] SPEAKER_00: 信号很弱,所以它是 利用物理世界 随时间以某种方式演化 某种可预测的 方式,从而 稀疏的信息 并推广到 整个体验 正在被学习,所以我们 将这种方法用于两个问题。

[428.954-443.898] SPEAKER_00: 今天我们将讨论深度交通 作为一种方法论 作为介绍深度强化 学习的一种方式,所以深度交通 这是我们办的一场比赛 去年办了,还扩大了 今年明显扩大了 我来讲讲细节 还有这个房间里的人 用您手机就行

[443.978-459.424] SPEAKER_00: 今天或你有笔记本 训练一个智能体 我讲话时,训练一个 在浏览器里的神经网络 我们加的一些东西是 我们加了新能力 现在变成多智能体了 深度强化学习问题 你最多能控制十辆车 用神经网络

[459.504-471.952] SPEAKER_00: 也许没那么重要 但很酷 就是自定义 智能体外形的设定 所以大家可以上传 必须特别荒谬 已经有人这么做了 包括不同的图像 不是展示的那辆车 只要尺寸保持不变

[472.032-474.597] SPEAKER_00: 这是SpaceX火箭

[474.677-486.809] SPEAKER_00: 这场比赛由 在网站上 selfdrivingcars.mit.edu网站 我们稍后再谈 代码 在GitHub上 附带更多信息和初始代码 以及一篇描述 一些基本见解 这会帮你

[486.889-496.989] SPEAKER_00: 赢得比赛 这是个存档 所以 从第一讲的监督学习 到今天 监督学习可以看作 记忆 真实标注 数据来形成 能从中泛化的

[497.069-506.368] SPEAKER_00: 表征。 强化学习则是 我们可以看作一种 暴力传播信息的方式 稀疏信息 通过 时间 来 分配奖励 奖励给状态

[506.448-516.211] SPEAKER_00: 那些并不直接拥有 奖励的。 为了理解这个世界 奖励很少的时候 但通过时间连起来 你可以把它看成推理 所以 这个连接 经过时间 建模

[516.291-531.874] SPEAKER_00: 大多数强化学习方法中 特别简单 就是有个智能体 在某个状态执行动作 然后得到奖励 一个在环境里的智能体 做出一个动作 收到观察到的状态,也就是新状态 并拿到奖励 这个步骤不断重复

[531.954-545.261] SPEAKER_00: 我们能想到的一些例子 任何电子游戏 有些今天会讨论 像雅达利Breakout 作为环境 智能体是球拍 每个 智能体采取的行动 采取行动会有影响 对环境的演变

[545.341-558.648] SPEAKER_00: 环境 成功是由一些 奖励机制,在这种情况下 分数是游戏给的 而每个游戏 有不同的分数 需要转换方案 归一化成一种方式 系统可以解释 目标是最大化分数

[558.728-560.933] SPEAKER_00: 最大化奖励

[561.013-576.979] SPEAKER_00: 连续的 车杆平衡问题 目标是让移动小车上的杆子平衡 状态 包括角度和角速度 还有位置和水平速度 动作是 施加给小车的水平力 奖励是每个 每个时间步杆子直立得1分

[577.059-591.040] SPEAKER_00: 所有 第一人称射击游戏和视频游戏 还有现在的星际争霸 还有 策略游戏 比如 比如毁灭战士中的第一人称射击 目标是什么?环境 就是游戏,目标是消灭 所有对手,状态是原始的

[591.120-600.779] SPEAKER_00: 游戏像素输入,动作 就是向上、向下、向左移动 对,等等。 奖励是正的 消灭对手时 是负的 智能体被消灭时

[600.859-617.603] SPEAKER_00: 工业机器人技术 装箱时用到一个 机械臂目标是拿起一个设备 从箱子里拿出并放入 容器中,状态是原始的 机器人看到的真实世界的 像素,动作是 可能的动作 机器人的不同自由度, 通过这些自由度移动,移动不同的

[617.683-623.708] SPEAKER_00: 执行器来实现 机械臂的位置 放的时候奖励是正的 设备成功,否则是负的

[623.788-637.757] SPEAKER_00: 一切都可以这样建模 马尔可夫决策过程 状态从零开始 动作a也是零 然后得到奖励 到达新状态,再次 动作奖励状态循环 重复直到终止 达到这个状态 还有主要部分

[637.837-650.308] SPEAKER_00: 强化学习中的 就是一个策略 计划规定在每个 单一状态下怎么做 执行一个价值 函数 有种感觉 什么样的状态好 处于好状态,好动作 在状态中采取行动

[650.388-663.893] SPEAKER_00: 而且有时 有一个模型 代理用这个模型表示 环境的某种形式 对它运行的环境有感知 还有该环境的动态特性 这对做出行动决策 非常有用 我们举个简单例子

[663.973-678.859] SPEAKER_00: 有一个三行四列的 网格世界,共十二个格子 你从左下角开始 任务是在这个世界中走 让奖励最大化 右上角的奖励 是加一,正下方那个格子 是负一 你每走一步 都会受罚,得到

[678.939-692.374] SPEAKER_00: 负零点零四 奖励零点零四 那最佳策略是什么? 在这个世界里? 现在,当一切 都是确定的, 也许这就是策略。 从底部开始 往左侧,因为 每一步都有代价,

[692.454-704.635] SPEAKER_00: 负奖励,那你就要 走最短路径,到达 奖励最大的格子。 当状态空间 是不确定的, 比如 之前说的,概率 是0.8: 你选向上,就会向上, 但有0.1概率

[704.715-717.697] SPEAKER_00: 向左,0.1概率 向右。 不公平。这又很像。 生活嘛。那 就是最优策略。 关键是什么? 观察到的?就是每一个 空间状态必须有一个 计划。 因为不能,因为

[717.777-733.627] SPEAKER_00: 不确定的地方, 你的控制,你控制不了。 你最终到哪儿,所以得有个 每个地方的计划。这就是 策略。得有一个行动, 每状态下的最优行动。 现在假设 我们改奖励结构,并且每 步我们做,都有个负 奖励是负

[733.707-746.817] SPEAKER_00: 二。真的很痛苦。 我们每一步都有高惩罚。 走。所以不管怎样 我们总是走最短的 路径。最好的办法是走 最短路径到 棋盘上唯一的位置 不会导致 惩罚。 如果我们减少

[746.897-756.637] SPEAKER_00: 每步奖励到 负零点一 策略变了。 如果有 一些额外的 鼓励徘徊。 随着我们 越来越深入 像之前一样降低惩罚 到负零点零四

[756.717-760.467] SPEAKER_00: 越来越多的徘徊 被允许。 而当我们 最后把奖励

[760.547-769.811] SPEAKER_00: 变成正面,这样每一步 步骤 每一步 都在增加 那就有了显著的 激励去 停在棋盘上,从没到达 目的地。 有点像 对很多人来说的大学

[769.891-781.573] SPEAKER_00: 所以价值函数 我们想 一个状态的价值 或任何东西的价值 在环境里 是 我们可能得到的奖励 在未来。 我们怎么看可能得到的奖励 我们要得到的是

[781.653-792.345] SPEAKER_00: 对未来打折 奖励,因为我们无法 总是依赖它 在这里,gamma 越来越远的未来 越来越 折扣减少了 奖励的重要性 得到的。而 好策略是采取

[792.425-806.673] SPEAKER_00: 这些奖励的总和并最大化它 最大化折现的未来 奖励。这就是强化 学习希望达到的 而通过Q 学习 我们使用 任何策略来估计 行动的价值 在某个状态里

[806.753-817.213] SPEAKER_00: 因此用离策略 忘记策略 我们在世界中移动 并用下面的贝尔曼方程 来不断更新 评估某行动在某状态的好坏 所以我们不需要

[817.293-840.027] SPEAKER_00: 这样就能在更大的状态和动作空间操作 我们通过模拟或现实中采取行动 并更新对某些行动随着时间 好坏程度的估计 我们在世界中移动 通过模拟或现实中采取行动 并更新对某些行动随时间 好坏程度的估计 左边的新状态 是更新后的值

[840.107-851.299] SPEAKER_00: 旧状态是起点 我们更新那个方程的值。 旧的状态估计 与...的总和 采取行动得到的奖励 动作A 在状态S中 和 最大值 可能得到的奖励

[851.379-864.187] SPEAKER_00: 在后续状态中 折扣 那个更新 会随着学习率减小 学习率越高 我们获得的价值越多 我们学得越快,价值越多 我们赋予新信息价值 很简单,就是这样。 这就是Q学习。

[864.267-879.049] SPEAKER_00: 简单的更新规则让我们能够 探索世界 当我们探索时 得到更多 以及更多有益的信息 在这个世界去做,而且始终存在 各种问题的平衡 讨论的空间里,总有一个 探索和利用的平衡 以及利用

[879.129-892.715] SPEAKER_00: 当你 越来越准地估计Q 函数,知道哪些行动好 你开始感觉到 哪个行动最好 但这感知不完美 它只是个近似,所以存在 探索的价值,但 你的估计越来越准 探索的好处

[892.795-908.331] SPEAKER_00: 越来越少,所以通常 一开始我们想多探索 然后慢慢减少 最后,当我们最终 把系统放到真实世界 希望它表现最好 那我们就 让它以贪婪方式运行 始终按照 Q值函数选最优动作

[908.411-914.552] SPEAKER_00: 我讲的这些 现在都是参数化 这些就是参数 这些参数很重要 对赢得深度交通比赛

[914.632-927.707] SPEAKER_00: 用的正是这个算法 以神经网络 为核心 所以对于简单表格 Q函数的表达 其中Y轴 有四个状态。 S1、S2、S3、S4。 X轴是—— 动作:A1、A2、A3、A4。

[927.787-944.391] SPEAKER_00: 我们可以把这个表格 看作随机初始化的, 或者就是初始化的。 不管用什么方式, 它都不代表实际现实。 当我们在世界里移动、 采取行动的时候, 就用贝尔曼方程更新这个表格, 就像顶部显示的。 现在幻灯片是在线的,

[944.471-960.715] SPEAKER_00: 你能看到简单的伪代码—— 就是更新它的算法。 怎么运行这个贝尔曼方程。 随着时间推移, 它就会逐步逼近 最优的Q表。 问题是 当那个Q表变得 指数级增长 当我们处理原始感官

[960.795-976.357] SPEAKER_00: 信息,就像用摄像头一样 用深度碰撞 或用深度交通 它占用整个网格空间 并获取这些信息 原始网格 深度交通的像素 当你处理街机游戏时 这里他们获取原始像素 游戏的

[976.437-986.375] SPEAKER_00: 或者当我们处理围棋 围棋游戏 当它获取单元 棋盘,原始状态 棋盘的状态 潜在的 状态空间 可能的组合数 状态变化 是可行的

[986.455-994.999] SPEAKER_00: 极其巨大,比...还大 我们当然能记住 而且比我们能做到的 永远准确近似 通过贝尔曼方程 通过长期模拟

[995.079-1005.795] SPEAKER_00: 用贝尔曼方程简单更新 所以这就是...的地方 深度强化学习就出场了 神经网络确实是 很好的近似工具 它们很擅长这个 学习这种Q表

[1005.875-1015.197] SPEAKER_00: 就像从监督学习开始 学习过程中,神经网络 帮我们用监督记忆模式 真实数据 然后转用强化学习 传播希望 从结果到知识

[1015.277-1026.608] SPEAKER_00: 深度学习让我们能做到 在更大范围里 状态空间更大 动作空间更大 这说明它是 可泛化,它更 更有能力处理 基于原始 感官信息 数据说明它更

[1026.688-1030.751] SPEAKER_00: 更有能力处理 现实世界变化多样

[1030.831-1035.579] SPEAKER_00: 而且它确实 这样因为它能 学习表示 正如我们讨论过的 周一

[1035.659-1048.780] SPEAKER_00: 理解来自 把原始感官 信息变成 简单有用的信息 然后行动 在这个状态下可以 完全一样的方式 所以,不用Q表 我们插入的不是Q函数 一个神经网络,输入是

[1048.860-1053.805] SPEAKER_00: 状态空间,多复杂都行 输出 是每个动作的 你能采取的动作

[1053.885-1065.762] SPEAKER_00: 输入是状态,输出是 函数值 很简单 这就是深度 Q网络,叫DQN 核心是 DeepMind的成功 你看到的精彩游戏 DQN或其变体 DQN在发挥作用

[1065.842-1071.763] SPEAKER_00: 这就是最初 《自然》论文 在DeepMind 成功来自玩 不同游戏,比如Atari 游戏

[1071.843-1076.928] SPEAKER_00: 那么这些东西是怎么 训练的呢? 和监督学习很像

[1077.008-1087.166] SPEAKER_00: 上方的贝尔曼方程 取 奖励 和折扣后的 未来状态的奖励 这里的损失函数 关于神经网络 神经网络学习 用损失函数 它得到奖励

[1087.246-1100.365] SPEAKER_00: 当前状态收到的 做前向传播 通过神经网络 来估计价值 未来状态的价值 最佳动作的 在未来状态做 然后减掉那个 从前向传播中 通过网络

[1100.445-1110.603] SPEAKER_00: 对当前状态的动作 所以取差值 在你的 Q估计器 神经网络认为 当前状态的价值是 还有什么呢 它更可能是 根据 未来状态的价值

[1110.683-1120.621] SPEAKER_00: 通过动作能到的 你能做的 这就是算法 输入是状态 输出是每个动作的Q值 或者在这张图里 输入是动作里的状态 输出就是Q值

[1120.701-1131.776] SPEAKER_00: 这个架构很相似 所以给一个转换 的状态、动作和奖励 S撇 S是当前状态 采取动作,获得奖励 然后进入S撇状态 更新 对 做前向传播

[1131.856-1145.198] SPEAKER_00: 通过网络 对当前状态 做前向传播 对每个可能动作 在下一状态采取 这就是我们怎么计算 损失函数的两部分 然后更新权重 用反向传播 然后,损失函数

[1145.278-1152.185] SPEAKER_00: 反向传播 就是训练网络的方法 其实它已经存在了 比DeepMind更久 一些技巧 让它真正有效

[1152.265-1155.074] SPEAKER_00: 经验回放 是最大的一个

[1155.154-1166.554] SPEAKER_00: 所以,游戏通过模拟时 或是物理系统 在现实世界运作时 其实 它就在收集观察结果 存进经验库 而训练 就是 随机采样经验库 以前

[1166.634-1176.119] SPEAKER_00: 通过随机采样 过去的经验 按批次 所以你不总是在 系统自然演化 上训练 你是在随机选 经验批次来训练 这是个很 巧妙的技巧

[1176.199-1187.054] SPEAKER_00: 但这非常重要 所以系统不行 有特定的演变 游戏方面 模拟部分 另一个 重要的 再一个微妙的技巧 在很多深度学习方法中 微妙的技巧让一切不同

[1187.134-1196.259] SPEAKER_00: 是固定的 目标网络 对损失函数 如果你注意的话 必须用神经网络 单个神经网络 来估计值 当前状态的 一个动作对 和下一个

[1196.339-1205.359] SPEAKER_00: 所以你常用它 然后 你做那个操作时 你在更新 网络 也就是说目标函数 在这个损失函数里 一直在变 所以你的损失函数本质 一直在变

[1205.439-1215.458] SPEAKER_00: 学习时,稳定性就成了大问题 学习过程会出大问题 所以这个小技巧 就是固定网络 只更新它 比如每 一千步 所以你训练网络时 网络 用来计算

[1215.538-1231.005] SPEAKER_00: 损失函数里的目标函数 是固定的 它产生更稳定的 计算损失函数 所以基础不会 尝试时脚下变化 寻找最小值 对于损失函数 损失函数不会改变 不可预测且难以理解的方式

[1231.085-1239.943] SPEAKER_00: 而且 奖励裁剪 这总是对的 对于那些 运行中 想要泛化地运行 是为了 各类游戏 分数不同 分数有高有低

[1240.023-1253.388] SPEAKER_00: 有些结果有正有负 它们都归一化了 到某个好的点 正的点是1 负的点是负一 负一 这就是奖励裁剪 简化奖励结构 很多游戏是30帧每秒 或60帧每秒

[1253.468-1264.288] SPEAKER_00: 动作 不是 不值得行动 以这么高的频率 特别是Atari游戏 每四步执行一次动作 同时获取帧 用时间窗口做决策 技巧 希望能让你了解

[1264.368-1274.851] SPEAKER_00: 这种事 对双方都必要 开创性的论文 像这篇一样 以及更重要的成就 获得深度流量 技巧起决定作用 在底部这里 是 圆圈

[1274.931-1289.573] SPEAKER_00: 是当用了这技术 当没有使用时 查看回放和目标 用目标网络和经验回放 当两者都使用时 对于游戏Breakout、River Raid Sequest和Space Invaders 数字越高 就越好 得分越多

[1289.653-1300.369] SPEAKER_00: 所以它给你一种感觉 重放和目标 两者都明显改进 系统性能方面 一个数量级的提升 两个数量级 在Breakout游戏里 这里是 伪代码 实现DQN的

[1300.449-1311.466] SPEAKER_00: 学习 要注意的关键点 你可以看幻灯片 是 循环 while循环 通过玩游戏 然后选择要执行的动作 不是训练的一部分 它是保存的一部分

[1311.546-1322.877] SPEAKER_00: 这个 观察结果 状态动作奖励 观察下一个状态 保存到回放记忆 到那个库中 然后从回放记忆随机采样 然后训练网络 基于损失函数 然后用

[1322.957-1333.951] SPEAKER_00: 最高概率 以概率 epsilon 选择随机动作 这个 epsilon 是 探索概率 它会减小 Deep Traffic里也能看到 是 探索速率 训练过程中会减小

[1334.031-1344.294] SPEAKER_00: 先大量探索 然后慢慢变少 所以这个算法 已经能完成了 在2015年 而且自从很多神奇事 那些事 让AI AI世界 觉得我们

[1344.374-1357.333] SPEAKER_00: 有了大发现 那就是 通用AI触手可及 这是第一次 原始传感器信息 用来创建系统 能行动并理解世界 对物理世界足够了解 才能成功 从很少的信息中

[1357.413-1360.478] SPEAKER_00: 但这些小游戏真不算什么

[1360.558-1370.600] SPEAKER_00: 尽管这样 这种游戏特别多 这个DQN算法 已经可以超越 很多Atari游戏 这就是当时报道的 超越人类的表现 但这类游戏同样没分量 我觉得 可能

[1370.680-1380.594] SPEAKER_00: 我承认我有偏见 但最伟大的成就之一 过去十年AI领域 至少 从哲学角度 或者说研究角度 就是 AlphaGo Zero 第一代AlphaGo 还有AlphaGo Zero

[1380.674-1393.503] SPEAKER_00: 是DeepMind的 打败了 世界顶尖围棋高手的系统 那围棋是什么 很简单 我不细讲 规则不细说,但基本 它是一个19乘19的棋盘 显示在 幻灯片最下面

[1393.583-1407.877] SPEAKER_00: 表格的最后一行 对于19乘19的棋盘 这个 合法棋局的数量 棋盘位置 是2乘10的170次方 这是一个非常 需要考量的位置数庞大 任何时候 尤其是游戏怎么变的

[1407.957-1417.361] SPEAKER_00: 可能有多少种走法 大得不得了 比象棋大多了 所以这就是原因 人工智能 社区觉得这个游戏并不 能解开 直到 2016年 当时AlphaGo

[1417.441-1426.845] SPEAKER_00: 用了人类专家 位置下法 用监督学习初始化 强化学习的方式 学习方法 我来稍微详细讲讲 接下来几张幻灯片里 打败了世界最强

[1426.925-1433.890] SPEAKER_00: 然后 AlphaGo Zero 那就是 十年的成就 对我来说,在人工智能里 能 下棋 没有 训练数据 人类专家

[1433.970-1444.291] SPEAKER_00: 棋局 并击败世界最强 在极其复杂的游戏中 这不是Atari 这是 一个更 高层次 有难度的游戏 并且它面对的棋手质量 要高得多

[1444.371-1456.993] SPEAKER_00: 而且它能很快地 这是为了达到评级 那比AlphaGo更好 而且比 AlphaGo的不同变体 当然也比 最顶尖的人类棋手 21天内 自我对弈 那它是怎么工作的?

[1457.073-1465.734] SPEAKER_00: 这些方法 跟之前的方法很像 那些不基于 深度学习 使用蒙特卡洛 树搜索 MCTS 也就是 当你有这么大的 状态空间

[1465.814-1476.251] SPEAKER_00: 从一个棋盘开始 你玩起来 你来选择走法 带点利用 去探索 保持平衡 选探索新局面 或深入局面 你知道有利的 直到棋局结束

[1476.331-1487.406] SPEAKER_00: 然后反向传播 你选得好不好 导致那个局面 这样你就学到了 它的价值 棋局和走法 被最成功的 围棋程序使用 在这之前 以及后来的AlphaGo

[1487.486-1499.606] SPEAKER_00: 但你猜得到 AlphaGo有什么不同 和之前的方法比 他们使用了神经网络 作为 直觉 所谓的 什么是好的状态 什么是好的下一步 需要探索的棋盘位置

[1499.686-1510.541] SPEAKER_00: 还有关键的事情 再次,这些技巧 带来了巨大差异 让 AlphaGo Zero 有效 而且比 AlphaGo 更好 首先,因为没有专家 对弈而不是人类 棋局 AlphaGo

[1510.621-1527.643] SPEAKER_00: 使用了那个非常 同样的蒙特卡洛 树搜索算法 MCTS实现智能 立足于向前看 神经网络判断好坏 状态好就可以行动 它检查而非直接选 人类专家游戏也检查 评估它们有多好

[1527.723-1542.052] SPEAKER_00: 状态 简单的向前看动作 执行基本操作 真实值即执行目标 用于修正损失 第二部分是函数 多任务学习但非如此 多任务学习就是 网络是双头结构 算是双头网络

[1542.132-1557.474] SPEAKER_00: 先输出概率 选哪一步,很明显 同时它也在算出一个概率 获胜的概率有好几个 组合信息的方法 并且持续训练 网络的两部分 取决于怎么选 所以你想选最好的 短期内的选择

[1557.554-1571.802] SPEAKER_00: 去达到那些 赢面大的位置 轮到谁走就谁 对,并且 另一个重要步骤 是 他们从某处更新 2015年,他们更新了状态 最先进的架构,现在是 这个架构,就是ImageNet

[1571.882-1586.501] SPEAKER_00: 就是残差网络 用在ImageNet上的ResNet 就是这样 那些微小改变造就了 天差地别 这就带我们进入深度交通 还有八十亿小时的堵车 困在车流里 美国人的消遣 所以我们尝试模拟

[1586.581-1599.259] SPEAKER_00: 开车 开车的行为层 所以不是实时的 控制,不是运动 规划,而是要超越那些 在此之上 控制决策 人能理解的决策 像变道、加速 减速,并对这些建模

[1599.339-1604.284] SPEAKER_00: 在微观交通模拟中 交通里流行的框架 这个工程类型

[1604.364-1617.671] SPEAKER_00: 我们用深度强化学习 我们叫它深度交通 目标就是实现 长期平均速度最高 穿梭行驶 在车流中 这里的学生,要 跟着教程并 跑到65英里时速 还有

[1617.751-1628.153] SPEAKER_00: 如果你真想 跑到每小时 超过70英里时速 这就是获胜需要的 而且也许 上传你的图片 确保你看起来不错 这样做 你要做什么 指令要清楚

[1628.233-1641.958] SPEAKER_00: 想参加?先看教程 你可以改 代码框里的参数 在cars.info网站 在MIT官网 点白色文字按钮 运行你写的代码,参数在这儿 你给神经网络指定的 它会用这些参数 搭建架构

[1642.038-1655.252] SPEAKER_00: 设置好了,你就有 一个用JS写的网络 在浏览器里,随时能训练 然后你点 那个蓝色“运行训练”按钮 它就开始训练 网络 网络 比浏览器里显示的快多了 在浏览器里可视化

[1655.332-1669.672] SPEAKER_00: 快了一千倍 通过进化游戏 在网格空间里做决策 稍后我会讲到 限速每小时80英里 根据我们对游戏的调整 各种调整 达到每小时80英里 平均肯定不可能 而要达到去年我们做到的

[1669.752-1679.574] SPEAKER_00: 一些速度 那就难多了 最后 当你满意了,训练 完成后 把模型提交到比赛 对于那些 超级热忱专注的人 同学们,每五分钟做一次。

[1679.654-1681.825] SPEAKER_00: 可视化你的提交。

[1681.905-1686.177] SPEAKER_00: 你可以点击 请求可视化,指定 自定义图像和颜色

[1686.257-1700.969] SPEAKER_00: 好,这里是模拟 限速80英里每小时 有20辆车,还有 屏幕上,有辆红色的 这种情况下,那辆车是 神经网络控制的,它的 速度,它可以加速 减速、变道 左车道或右车道 或者保持不动

[1701.049-1712.206] SPEAKER_00: 其他车是 相当笨,它们加速 减速、左转、右转 但它们没有目的 它们随机做 或者至少 目的还没发现 道路、汽车、速度 道路是网格空间 一个占用

[1712.286-1722.084] SPEAKER_00: 网格指定了 当它空的时候 它被设为 80 意思就是 网格 值可以是任何 网格内能达到的速度 在网格内 当其他车开得慢时

[1722.164-1730.906] SPEAKER_00: 网格的值是 那辆车的速度 这就是状态空间和状态表示 你可以选择多少 那部分状态空间 这是神经网络的输入

[1730.986-1736.872] SPEAKER_00: 用来可视化 你可以选正常速度 或者快放 网络在运行

[1736.952-1751.536] SPEAKER_00: 还有显示选项帮忙 帮你建立对网络的 输入内容与汽车空间直觉 默认情况下运行 不加额外信息 然后是学习 输入后,精确显示 道路的哪一段 作为输入传给 网络,然后

[1751.616-1764.586] SPEAKER_00: 安全系统,稍后描述 它包含全部 汽车不能进入的路段 因为会导致 碰撞,而JavaScript会 非常难做成动画 还有完整的地图 这是个安全系统 可以把系统看作 ACC

[1764.666-1778.333] SPEAKER_00: 基本雷达超声波 传感器帮你避免 明显碰撞 周围明显可检测物体 这辆红车的任务 对神经网络就是移动 这个空间 是移动 在这个空间里,受限于 安全系统

[1778.413-1787.631] SPEAKER_00: 显示为红色 网格中它无法 进入的部分 所以这辆车的目标 是不被堵在车流中 就是做大 滑动来避免 车流

[1787.711-1798.206] SPEAKER_00: 类似DQN的输入 输出状态空间 是各个动作的值 基于 训练出的epsilon参数 并通过 推理评估过程 你选多少 你想做的探索,就这些 学习参数

[1798.286-1802.198] SPEAKER_00: 在浏览器里完成 在自己电脑上

[1802.278-1804.425] SPEAKER_00: 只用CPU

[1804.505-1818.172] SPEAKER_00: 动作空间有五个 这里给你几个变量 可以回到幻灯片 看看它的大脑 引号就是这个东西 它接收状态 和奖励 用它做前向传播 状态产生下一个动作 大脑是神经网络所在

[1818.252-1830.805] SPEAKER_00: 包含训练用的 和评估 学习输入 可以控制宽度 前向长度 还有后向长度和车道侧 你侧方的车道数 前方看到的补丁 你看到的前方补丁 后方是你看到的补丁

[1830.885-1836.910] SPEAKER_00: 新的 今年可以控制 智能体的数量 由神经网络控制 从一 到十

[1836.990-1845.325] SPEAKER_00: 再评估 一模一样执行 你得达到最高 智能体平均速度 很关键的事 这是智能体 互相不知道 所以他们不 一起规划 网络

[1845.405-1860.280] SPEAKER_00: 接受训练 在联合环境中 达到平均目标 所有智能体速度 但行动以某种 各自贪婪方式 有趣的是能 用这种方式学 因为这类方法有 可扩展性强,适用于任意数量汽车

[1860.360-1869.938] SPEAKER_00: 你想想,我们 选出最好的 同级别的车放一起 让它们 这样竞争 最好的神经网络 因为 贪婪操作中它们完整 网络数量 能同时运行

[1870.018-1879.004] SPEAKER_00: 完全可扩展 参数很多 时间窗口 层数 多层 可添加的类型 这是全连接层 有十个神经元 激活函数 这些都能自定义

[1879.084-1889.741] SPEAKER_00: 像教程里说的 最后那个全连接层 输出是五 回归 对五个每个取值 动作 还有更具体的 参数,有些我提过 从 gamma到epsilon

[1889.821-1898.307] SPEAKER_00: 到 经验回放大小 到学习率 和时间窗口 优化器 学习率动量 批量大小 等等 有个大白色按钮 写着“应用代码”,按下去

[1898.387-1911.857] SPEAKER_00: 就会清掉你所有工作 所以操作时要小心 只在一开始的时候 才这么做 如果你让电脑 连续跑几天训练 像有人试过 蓝色训练按钮 按下它开始训练 根据你设的参数

[1911.937-1926.742] SPEAKER_00: 网络状态会定期 传到主模拟程序里 所以你在浏览器看到的 打开网站时显示的内容 跑的是同一个训练网络 还会定期更新 网络就越来越好 哪怕训练要几周 它一直在更新 你左边的网络

[1926.822-1938.748] SPEAKER_00: 所以如果网里的汽车 你训练的只是原地不动 而且没有动 很有可能 该重启并改参数了 或许加几层 到你的网络 迭代次数 当然是个重要参数,要控制 评估呢

[1938.828-1949.729] SPEAKER_00: 是我们花了很多功夫的事 从去年开始 为了消除随机性 为了消除 提交的原因 反复提交相同的代码 希望能得到更高的 评估分数 方法 用来评估

[1949.809-1962.431] SPEAKER_00: 收集平均速度 跑十次 45秒 每局游戏 不是按分钟算 模拟的45秒 有500次这样的运行 取500次的中位数速度 在服务器端完成 基本没法作弊

[1962.511-1975.238] SPEAKER_00: 强烈建议你试一下 你可以在本地试 有一个初始评估 跑一次,但不计入 只是让你了解自己的网络 那应该 结果非常接近 和服务器结果一样 是为了帮你建立直觉 像我说的

[1975.318-1983.259] SPEAKER_00: 我们明显减少了随机性的影响 所以 你得到的分数和速度 你设计的那个网络啊,应该 每次评估都非常相似

[1983.339-1993.741] SPEAKER_00: 加载和保存 如果网络很大 而且你想换电脑 你可以保存网络 它保存网络的结构 还有网络的权重 显然 当你加载它时 它不会 保存你已完成的数据

[1993.821-2007.186] SPEAKER_00: 你不能做迁移学习 目前浏览器中用JavaScript还不行 提交你的网络 提交模型参赛 先跑训练 不然 模型会被初始化 权重随机初始化 效果不好 可以反复提交

[2007.266-2019.804] SPEAKER_00: 最高分才算 可以上传自定义图片 选颜色 并生成可视化 我们还没 展示可视化 但肯定很棒 再看教程 改代码框参数 点应用代码,跑训练

[2019.884-2034.515] SPEAKER_00: 大家回家路上 在火车上 最好别在你车里 直接在浏览器里就能搞定。 然后直观看到请求过程。 因为这过程成本很高。 我们必须有这个意愿。 才能去动手做。 因为必须在服务器端跑。 比赛

[2034.595-2050.758] SPEAKER_00: 链接就在那里。 GitHub的起始代码已就绪。 真想赢的人,具体细节在 存档的论文里。 所以问题在于 会一直出现。 就是这些强化学习方法。 是否从根本上讲 更准确地说,动作规划控制。 是否适合学习。

[2050.838-2060.555] SPEAKER_00: 当然。 就驾驶来说。 我们做不到AlphaGo Zero那样。 我们做不到 从零开始学 通过自我对弈 因为会 几百万次碰撞 想学习 避免撞上

[2060.635-2075.440] SPEAKER_00: 除非像现在这样干 在遥控车上深度碰撞 或者在模拟环境里 这样能看专家数据 能看驾驶员数据 有大量数据,从中学 到目前为止 我提两家公司 因为他们是特邀嘉宾 深度逆强化学习没用到

[2075.520-2085.423] SPEAKER_00: 最成功的机器人里 在现实世界里跑 以波士顿动力为例 大部分 感知 控制和规划 比如这个机器人 不涉及 学习方法 除了少量添加

[2085.503-2095.835] SPEAKER_00: 感知方面 据我们所知 当然 Waymo也一样 就像周五的演讲者 会讲到 深度学习用得不多 在顶层感知中 但大部分工作已完成 来自传感器

[2095.915-2112.043] SPEAKER_00: 还有基于优化的 基于模型的方法 轨迹生成 然后优化哪条路线 最能避开碰撞 深度逆向强化学习没有用到 在那些最成功的机器人里 而且反复返回 一些意想不到的地方 奖励更高

[2112.123-2125.465] SPEAKER_00: 所有这些情况都会出现 应用到现实世界时 所以那个猫咪视频 挺短的 猫咪在摇铃铛 它们正在学习 铃铛的声音 关联到食物 我建议你想一想 这怎么随时间变化

[2125.545-2134.403] SPEAKER_00: 用意想不到的方式 可能达不到理想的效果 最终奖励在哪 以食物的样子存在 还有预期效果 就是去按门铃

[2134.483-2150.043] SPEAKER_00: 这就是AI安全的关键 说到通用人工智能 两周后的课程 那是我们要深挖的内容 这就是怎么做 这些强化学习方法 规划算法 会以意想不到的方式演变 而且完全出乎意料 以及我们怎么约束它们

[2150.123-2164.092] SPEAKER_00: 我们怎么设计 奖励函数 让它安全运行 所以我鼓励你 来听这场演讲 周五下午一点 提醒一下 所以是下午一点,不是晚上七点。 在Stata 32123里面。 还有那些特别棒的演讲。

[2164.172-2170.696] SPEAKER_00: 两周后。 来自波士顿动力。 再到雷·库兹韦尔。 还有关于AGI这些。 谢谢大家。