MIT 6.S094? 深度学习 | 学霸的课程笔记,我们都替你整理好了

2018-06-13    来源:

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
我们为你整理了每一个 Lecture 的课程笔记,提炼出每一讲的要点精华,推荐结合课程笔记观看视频内容,学习效果更佳。

原标题 MIT 6.S094:Deep Learning for Self-Driving Cars 2018 Lecture 1 Notes

作者 | Sanyam Bhutani

 

MIT 6.S094? 深度学习

 

*以下所有图片均来截取自该课程幻灯片。

深度学习:为多项人工智能技术服务的成套技术,近年来伴随着研究的不断深入和GPU能力的不断拓展,它也变得更加强大,SDC就是能够利用这些技术的系统。

讲师致力于研发能够理解车内和车外环境的汽车。

主要竞赛项目:

 

MIT 6.S094? 深度学习

 

• DeepTraffic:深度增强学习(Deep Reinfocement Learning)竞赛项目,相关的代码可在浏览器上运行。最新的2.0版本允许Multi-Agent培训。

 

MIT 6.S094? 深度学习

 

• SegFuse:Dynamic Driving Scene Segmentation竞赛项目。提供原始视频,汽车根据实际动力学原理进行运动。培训集能够为我们提供路面实况标签、像素级别标签、场景分割和光流。目标:比现有的Image Based Segmentation技术水平更好地反应真实路况。所需:机器人需要解释、理解和追踪场景中的诸多细节。

 

MIT 6.S094? 深度学习

 

• Deep Crash:目标:使用Deep RL来规避High Speed Crash Avoidance(高速防撞系统)。培训:运行1000次, 使用单目视频作为输入源,培训一辆汽车模型在30mph以上速度行驶。

 

MIT 6.S094? 深度学习

 

• DeepTesla: 使用大规模网来培训端到端驾驶操作,使用单目视频作为输入源进行培训汽车。

为什么要自动驾驶?

目标:为自动驾驶汽车部署以数据驱动的学习方式。

这是多个个人机器人的最复杂最庞大整合。

• 普遍意义: 路上有大量汽车在行驶。

• 深度意义: 人类和汽车之间建立更紧密的联系。彼此的信任将人类将自己的性命交付给机器人,将"控制权"交给汽车。如果深入剖析,确保生命安全是系统运行的天然属性,而且在未来真的需要测试系统的极限。

自动驾驶汽车: 与其说是感知控制终端(Perception-Control)更不如说是个人机器人(Personal Robot)。面对各种路况,这些系统还需要通过交接控制权来获得人类的帮助。而真正意义上,能够像人类一样具备动态天然属性的感知系统,至少还要发展数十年时间。

 

MIT 6.S094? 深度学习

 

认知负载: 完整连接的卷积神经网络(CNN)在处理RAW 3D输入源,分析驾驶员的认知负载,身体姿势和疲劳程度。

实参: 要实现完全自动驾驶,智力需要在某些领域接近人类。

以人类为中心的人工智能方法

建议:在每个算法设计过程中将人的因素考虑进来。

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

• 人类控制:在10%的场景中占据主导地位

 

MIT 6.S094? 深度学习

 

为何要深度学习?

深度学习平台能够非常出色地处理大数据。届时人类的性命直接交付到这些设备上,因此这项技术必然需要通过现实生活的数据进行学习。

• 感知/控制端

• 基于人类的交互和协作

什么是深度学习?

 

MIT 6.S094? 深度学习

 

人工智能:能够实现多个复杂目标

理解/推理:能够将复杂信息转换成简单和实用的信息。

深度学习(表示学习或者特征学习)能够在没有任何解释的情况下提取源信息,并且构建分层表示允许生成各种洞察报告。

表征学习

 

MIT 6.S094? 深度学习

 

• 表征学习是非常重要的。例如: Earth Centered Vs Sun Centred。

 

MIT 6.S094? 深度学习

 

• 笛卡尔坐标系VS极坐标系来区分圆形和三角形。

 

MIT 6.S094? 深度学习

 

• 例如: 使用1层隐藏神经网络来区分蓝色和红色曲线。要实现这项学习(使用源输入来生成输出)效果就是通过深度学习来完成的。

• 深度学习能够改善更多的数据。

• 边缘情境的归纳是深度学习目前的主要挑战。

 

MIT 6.S094? 深度学习

 

神经网络

受到人类生物神经的松散网络的启发而来。

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

 

MIT 6.S094? 深度学习

 

• 目前最顶尖技术ResNet-52:6000万个突触

• 两者相差7个数量级

• 区别:

• 人类神经网络不需要堆栈,而人工神经网络需要;
• 人类神经网络没有顺序之分,而人工神经网络存在;
• 同步学习和异步学习;
• 未知学习和Backprop算法;
• 处理较慢 Vs 处理较快;
• 低功耗VS低效率;

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

基础神经元是非常简单的,但是相互连接的多个单元能够应用在非常复杂的案例中。

神经元

• 神经元包含了一组具有权重邻域的输入源。
• 权重是相乘得来的。
• 再添加偏置( bias)。
• 非线性函数来确认神经网络是否被激活。

神经网络的组合:

 

MIT 6.S094? 深度学习

 

• 前向神经网络(Feed-forward NN): 已经成功应用于计算机图形中。

• 递归神经网络(recursive NN): 能够自我回溯,且具备记忆。目前已经成功应用于关于数据的Time Series,这非常接近于人类(因此很难进行培训)。

普遍性:多元神经网络可以在给定足够优秀算法的前提下只通过1个隐层来逼近任意函数。

 

MIT 6.S094? 深度学习

 

提供了非常好的算法。

缺陷: 这并不是神经网络的功劳,而是算法的功劳。

深度学习的种类

 

MIT 6.S094? 深度学习

 

• 监督学习:全部使用人工标注的数据;

• 扩展监督学习:所需人工标注数据和未标注数据持平;

• 半监督学习:少量人工标注数据以及大量未标注数据;

• 强化学习:极少量人工标注数据以及大量未标注数据;

• 无监督学习:全部使用未标注数据;

现阶段经常使用的是1和2。

未来趋向的和更好的是3、4和5。

 

MIT 6.S094? 深度学习

 

深度学习影响的领域:

• 定义和解决一个具体的问题。比如:预估波士顿的房价。

• 通用目的的人工智能(或者几乎全部):使用强化学习和无监督学习。

有监督的学习

训练阶段:1. 输入数据集; 2. 贴标签; 3. 在训练数据集上训练。

测试阶段:1. 使用新的数据集测试; 2. 输入学习模型; 3. 结果输出。

学习

 

MIT 6.S094? 深度学习

 

• 前向运算:输入数据集被输入进神经网络中,并且形成预测结果。

• 反向传播:测量预测结果和期望输出结果的偏差,并且计算结果误差。调参(超参数)以根据误差量级调整数值。

 

MIT 6.S094? 深度学习

 

我们可以用深度学习做什么?

 

MIT 6.S094? 深度学习

 

• 一对一映射。

• 一对多映射。

• 多对多映射。

• 异步多对多映射。

语解释:

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

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

• MLP:多层神经网络。

• DNN:深度神经网络。

• RNN:循环神经网络。

• LSTM:长短期记忆网络。

• CNN:卷积神经网络。

• DBN:深度置信网络。

神经网络的结构:

• 卷积层

• 池化层

• 激励层

• 反向传播

激活函数

 

MIT 6.S094? 深度学习

 

Sigmoid.函数:存在梯度消失,不以原点为中心。
Tanh.函数: 存在梯度消失。
ReLu.函数: 不以原点为中心。

梯度消失:输出或者梯度值很小并且学习速率很慢。

反向传播

关于神经网络的学习过程,其主要目的:为了更新权重和偏差值来降低损失函数。

基本任务:

• 通过前向传播,计算网络的输出值和残差。
• 反向传播计算梯度。
• 把一部分权重的梯度从权重中去除。

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

训练

 

MIT 6.S094? 深度学习

 

训练是一个最优化的过程。

目标是通过更新权重和残差使损失函数最小化。

需要使用技巧的地方:最小单元的梯度下降和随机梯度下降。

训练中存在的挑战

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

 

MIT 6.S094? 深度学习

 

• 梯度消失。

 

MIT 6.S094? 深度学习

 

• ReLU存在死亡节点:当输入为0的时候输出也会为0。

 

MIT 6.S094? 深度学习

 

• 存在鞍点。

 

MIT 6.S094? 深度学习

 

• 过拟合:神经网络学习训练数据但是和实际输入数据拟合失败。出现的原因是训练残差较低但是测试残差较高。

正则化

 

MIT 6.S094? 深度学习

 

有一些通用性的技巧。

• 设置验证集:训练数据集的子集。

• 提前结束训练:为了保存检查节点并且评估神经网络在测试集上的运行状况。

 

MIT 6.S094? 深度学习

 

Dropout:随机丢弃其中一些节点(和输入和输出的节点一起)

• 用保持节点(p)的概率表示。

• 输入的节点p需要更高。

目的:帮助网络更好地归纳。

正则化范数约束项

• L2 约束项:权重平方约束项:

在偏差没有增加的情况下,一直保持较小的权重值。
避免样本的拟合错误。
更平滑的模型。
对于两个类似的输入,权重需要进行分配。

 

MIT 6.S094? 深度学习

 

• L1 约束项:权重绝对值的约束项:

允许保持较大权重。

神经网络游乐场:运用技巧和试验来实践。

深度学习引起的突破

改变了什么?

• 计算能力的提升。

• 可实现大型有规律的数据集。

• 对于GPU的利用领域的算法和研究。

• 软件和基础设施。

• 经济支持。

深度学习是困难的

人体的复杂性:

• 人的视觉:形成了5,4000,0000年的历史数据。

• 直立行走: 2,3000,0000年的历史数据。

• 抽象思考:10,0000年的历史数据。

神经网络:

• 会增强对于像素级样本的失真,导致预测不准确。

• 图像本身的问题:光照、姿态、遮挡和内部类别的不同等情况。

 

MIT 6.S094? 深度学习

 

 

MIT 6.S094? 深度学习
MIT 6.S094? 深度学习

 

物体识别或分类

• 目标:输入一幅图像并预测输出。

• ImageNet: 1400万种以上的输入和2。18万种以上的输出。

ILSVRC比赛:

• AlexNet(2012):在准确性上有了显著的提高。

• Resnet(2015):在识别的准确率上击败了人类。

巧妙的例子:深度学习和"人类普适性的能力"还有差距许多相同的架构的应用:我们可以根据需求种类的数量改变输出层。

 

MIT 6.S094? 深度学习

 

• 图像分类。
• 图像捕捉。
• 物体定位。
• 图像分割。

FCNN

每个像素点都被分为一类,然后它输入一幅图像,产生另外一幅图像作为输出。

目标:图像和图像间的对应。

使用场景:

 

MIT 6.S094? 深度学习

 

• 像素级的全场景分割。

 

MIT 6.S094? 深度学习

 

• 染色法对应。

 

MIT 6.S094? 深度学习

 

• 物体识别。

• 消除背景。

• Pix2PixHD:从语义标签中产生高分辨率的写实照片。

• RNN:用于系列的数据集。

使用场景:

 

MIT 6.S094? 深度学习

 

• 手写体识别。

• 图像捕捉。

• 视频描述。

• 转移的注意力模型。

• 用可选择的注意力模型。

主要的突破点

 

MIT 6.S094? 深度学习

 

• Pong to Pong (2012):更接近通用人工智能。

• AlphaGo (2016):可以从人类的专家级别游戏中学习AlphaGo Zero (2017):打败了AlphaGo和Co,它不需要任何外部数据输入(它通过和自身对抗训练进行学习)。

• DeepStack (2017):第一次击败了专业的扑克选手(在Heads up Poker中)。

 

MIT 6.S094? 深度学习

 

现阶段的缺点

• 很难确定适合的激励函数(以Coast Runner为例), 结果可能是出乎意料的。

• 缺乏鲁棒性: 在像素中增加噪声会导致错误的预测结果。

现阶段的挑战:

• 迁移学习:运行的表现和工作范围相关。挑战:跨领域的迁移学习困难。原因:对于推理过程的理解或者提取理解的能力。

• 需要大量的数据。

• 需要经过标注的数据。

• 不是完全自动的:需要调节超参数。

• 激励函数:很难确定一个合适的激励函数。

• 透明程度: 神经网络的性质接近黑盒子 (在我们可视化了隐藏的过程之后仍然是这样)。

• 边缘处理的情况:深度学习不擅长处理边缘数据的情况(特别是当它用于自动驾驶)。

标签: 安全 处理大数据 大数据 代码 网络 选择

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:全国高校人工智能学院盘点来啦!今年的高考志愿考虑一下?

下一篇:特朗普计划斥资8300万美元,研究 AI核导弹预警系统