其他

MIT系列公开课之自动驾驶车辆中的深度学习

2018-02-01 自动驾驶 AI前线


作者| Sanyam Bhutani
编译 | Debra
编辑|Emily
AI 前线导读:近年来,由于研究和 GPU 功能的进步,深度学习发展成为一套效果良好的人工智能技术。而 SDC(自动驾驶车辆)就是这种技术可以发挥用武之地的不二选择。那么,深度学习在自动驾驶车辆系统中是如何运作的呢?

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

MIT 高级研究员讲授了自动驾驶车辆中深度学习系列公开课,Medium 上有人整理出其中的一节,要点笔记整理如下,搭配视频学习效果更佳:

https://v.qq.com/txp/iframe/player.html?vid=v0377lgefzu&width=500&height=375&auto=0
(课程视频)

深度学习领域的研究人员正在研制能够理解汽车内外环境的汽车。

 竞赛:

深度强化学习竞赛,代码在允许训练多个 Agent 的 v2.0 浏览器中运行。

SegFuse:动态驾驶场景分割竞赛。给出原始视频,自动汽车在该视频中移动。此训练集包含像素级标签、场景分割和光流等地面真实标签。

目标:性能优于当前图像分割的水平。

需求:机器人需要解释、理解和跟踪场景的细节。

DeepCrash:

目标:使用深度 RL 来规避高速碰撞避免。

训练:使用 Monocular 相机输入,对以 30mph + 速度运行的车辆模型进行 1000 次训练。

DeepTesla:

使用大规模网络来训练端到端方向盘,使用单目视频作为训练的输入。

为什么选择自动驾驶车辆?

目标:将数据驱动学习的方法应用于自动驾驶车辆。

数据广泛:道路上的车辆数量众多。

深度:汽车和人类之间有着密切的联系。用户把生命托付给机器人,把“控制权”交给汽车。因此,这个系统的生命关键特质意义深远,将对系统极限进行真正的测试。

自动驾驶车辆:这是一个个人机器人,而不是一个感知控制系统。在发生状况时,还需要人类通过控制转移给予辅助。而一个真正的、能达到人类同等动态特性的感知系统出现,可能还需要几十年的时间。

认知负荷:一个完全连接的 C 神经网络可以接受原始的三维输入数据,来分析驾驶员的认知负荷,如身体姿势分析,司机的睡意等。

参数:在一些领域,自动化需要达到人类的智力水平。

 
  以人为本的人工智能

建议:在每个算法的设计中考虑到人类的存在。

感知控制可以处理 90%的情况。

人类控制:在 10%的案例处理中占主导地位。

 为什么是深度学习?

深度学习在大量数据处理方面表现非常出色。由于人们把生命直接托付给了机器,因此我们需要可以从现实世界数据中学习的技术。

  • 感知 / 控制端

  • 基于人类的合作和互动。

 什么是深度学习?

AI:能够完成复杂的目标。

理解 / 推理:能够将复杂的信息转化为简单有用的信息。

深度学习(表征学习,Representation Learning 或 Feature Learning)能够捕捉毫无意义的原始信息,并构建分层表示,从而使模型生成洞察力。

深度学习是人工智能中能够从数据中获取结构,从而获得见解的最有效的方法。

 表征学习

表示很重要。例如:地心模型 vs 日心模型。

用笛卡尔 vs 极地标系分开圆圈和三角形

  • 例如:用一层隐藏的神经网络来分离蓝色和红色曲线。通过深度学习掌握函数(使用原始输入来生成输出)。

  • 数据越多,深度学习效果越好

  • 边缘泛化是深度学习的主要挑战。




 神经网络

受到生物学上人类的神经元结构的启发。

人类神经网络:1000 亿个神经元,1000 万亿个突触

(最高水平)ResNet-52:6000 万个突触。

7 个数量级的差异。

区别:

  • 人类的神经网络没有堆叠,人工神经网络是堆叠的。

  • 无序 Vs 有序

  • 同步学习 Vs 异步学习

  • 未知学习 Vs 反向传播

  • 处理速度慢 Vs 处理速度快

  • 低功耗 Vs 低效率

相似性:两者都是大规模的分布式计算。

虽然基本的神经元很简单,但连接的单元可以有非常复杂的应用。

神经元


  • 神经元由一组具有权重的边的输入组成

  • 权重相乘

  • 增加偏差

  • 非线性函数确定神经网络是否被激活。

神经网络组合:


  1. 前馈神经网络:成功应用于计算机视觉。

  2. 递归神经网络:向自身反馈,并且有记忆。与人类相似,其在时间序列相关数据中的效果很好(因此训练难度更大)。

普遍性:多个神经网络可以仅使用一个隐藏层学习所有相似功能 *。

前提是算法足够好。

限制:神经网络的能力不是重点,而是方法。

 DL 的类别


  1. 监督学习:需要人来为数据做注释。

  2. 强化监督学习:人 + 机器学习。

  3. 半监督

  4. 无监督学习:机器输入。

  5. 强化学习:机器输入。

目前正在使用的方法:1,2

未来更好的方法:3,4,5。

受 DL 影响的领域:

  1. 定义和解决一个特定问题。例如估计波士顿的房价。

  2. 通用智能:强化和无监督学习。

监督学习

训练阶段:1. 输入数据 2. 标签 3. 数据训练

测试阶段:1. 新数据 2. 输入到学习系统 3. 产生输出

学习

正向传递:将输入数据输入到神经网络中,并生成预测。

反向传播:测量与期望输出的偏差并计算误差,根据误差的大小调整用于预测值的参数(超参数)。

我们可以用 DL 做什么?


  1. 一对一映射。

  2. 一对多。

  3. 多对多。

  4. 异步多对多。

术语:

  • DL = 神经网络(深度学习 = 神经网络)。

  • DL 是 ML(机器学习)的一个子集。

  • MLP:多层感知器

  • D 神经网络:深度神经网络。

  • R 神经网络:递归神经网络。

  • LSTM:长短期记忆。

  • C 神经网络:卷积神经网络。

  • DBN:深度信念网络。

神经网络操作:

  • 卷积

  • 激活功能

  • 反向传播

激活函数


  • Sigmoid。缺点:梯度会逐渐消失,并且不以零为中心

  • Tanh(双曲正切函数)。缺点:梯度逐渐消失。

  • RELU。缺点:不以零为中心。

梯度逐渐消失:当神经网络的输出或梯度非常低,导致学习进程缓慢时。

反向传播

神经网络的学习过程。

目标:更新权重和偏差以减少损失函数。

子任务:

  1. 正向传递计算网络输出和错误。

  2. 反向传播计算梯度。

  3. 从权重中消除一部分梯度。

由于这个过程是模块化的,所以是可并行的。

学习

学习是一个优化的过程。

目标:通过更新权重和偏差来最小化损失函数。

使用的技术:小批量梯度下降和随机梯度下降。

学习上的挑战

损失函数是高度非线性的。

梯度消失

ReLU 衰弱:Derivate= 输入为 0。

鞍点。

过度拟合:神经网络可以学习训练数据,但不能很好地概括现实世界的数据。检测:训练错误少,但测试错误多。

正则化:

可以促进泛化的方法:

创建验证集:训练数据子集

早期中断:保存节点并评估神经网络在测试数据上的运行状况。

丢失:随机删除一些节点(以及传入和传出节点)

  • 保留节点的概率(p)

  • 输入节点 p 应该会高得多。

目标:促进更好的泛化。

正则化(Regularization)权重惩罚:

L2 惩罚:指权值向量中各个元素的平方

  1. 除非误差导数很高,可以保持较小的权重。

  2. 防止拟合采样错误。

  3. 更流畅的模型。

  4. 对于 2 个相似的输入,权重会分散分布。

L1 惩罚:

允许保持较大的权重。

[Neural Network Playground: To play around with techniques and practise][1]

深度学习的突破

发生了什么改变?

  1. 计算能力增加。

  2. 可用大型经过组织的数据集。

  3. 算法与研究在 GPU 上进行。

  4. 软件和基础设施。

  5. 财务支持。

进行 DL 并不容易

与人类相比:

  1. 人类视觉:发展了 540,000,000 年的数据。

  2. 两足动作:230,000,000 年的数据。

  3. 抽象思维:10 万年的数据。

神经网络:

  1. 像素数据失真,导致预测不准确。

  2. 视觉问题:光照、姿势、遮挡、内部类别的变化。

:

:

对象识别 / 分类:

目标:输入图像并预测输出

ImageNet:拥有 21800 万 + 类别的 1400 万种类别

竞赛:ILSVRC(大规模视觉识别挑战赛):

AlexNet(2012)在准确度上有了显著提高。

Resnet(2015):战胜人类水平。

例子:DL 的泛化能力仍远不及人类。

众多使用相同体系结构的应用程序:我们可以根据需求改变预测层,以对尽可能多的类别进行预测。


  • 图像分类。

  • 图像标题。

  • 对象本地化。

  • 图像分割。

FCNN(模糊聚类神经网络,Fuzzy Clustering Neural Network):

每个像素被分配到一个类,输入一个图像,并产生另一个图像作为输出。

目标:图像到图像的映射。

应用案例:

像素级全景分割。

着色映射。


  • 对象检测。

  • 背景去除。

  • Pix2PixHD:从语义标签贴图生成高分辨率照片的真实图像。

  • RNN:使用序列运行

应用案例:


  • 生成手写作品。

  • 生成图像标题。

  • 生成视频描述。

  • 转向注意力建模。

  • 使用选择性注意绘画。

重大突破


  • 乒乓球(2012):向 AGI(通用人工智能)迈出一步。

  • AlphaGo(2016):从人类专长的游戏中学习。

  • AlphaGo Zero(2017):在没有任何数据训练的情况下击败 AlphaGo 和 Co!(通过自身实践获得知识)。

  • DeepStack(2017):首次击败职业扑克玩家。

目前的不足

  • 要定义一个好的奖励函数并不简单,结果可能会令人惊讶。

  • 缺乏健壮性:向像素添加噪声会导致错误的预测。

目前的挑战:

  • 迁移学习:在密切相关的领域效果良好。

  • 挑战:缺少跨领域迁移学习。

  • 原因:理解推理或理解的能力

  • 巨大的数据需求量。

  • 数据必须经过注释。

  • 不完全自动化:超参数调整

  • 奖励:定义一个好的奖励函数非常困难。

  • 透明度:神经网络大多是黑匣子(甚至在经过可视化处理后)。

  • 边缘情况:DL 不擅长处理边缘情况。(尤其是自动驾驶)。

回答:为什么用 DL?

把技术有效地应用于现实世界可能会带来巨大的机遇,而目前 DL 是这些方法中最有效的。

原文链接:

https://medium.com/init27-labs/mit-6-s094-deep-learning-for-self-driving-cars-2018-lecture-1-notes-807be1a50893



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存