雷锋网(公众号:雷锋网)按:雷锋字幕组获MIT课程团队授权翻译自动驾驶课程,视频链接:http://www.mooc.ai/course/483/info
我们为你整理了每一个 Lecture 的课程笔记,提炼出每一讲的要点精华,推荐结合课程笔记观看视频内容,学习效果更佳。
原标题 MIT 6.S094:Deep Learning for Self-Driving Cars 2018 Lecture 1 Notes
作者 | Sanyam Bhutani
翻译 | 李瀚 刘徽 整理 | 凡江
*以下所有图片均来截取自该课程幻灯片。
深度学习:为多项人工智能技术服务的成套技术,近年来伴随着研究的不断深入和GPU能力的不断拓展,它也变得更加强大,SDC就是能够利用这些技术的系统。
讲师致力于研发能够理解车内和车外环境的汽车。
主要竞赛项目:
-
DeepTraffic:深度增强学习(Deep Reinfocement Learning)竞赛项目,相关的代码可在浏览器上运行。最新的2.0版本允许Multi-Agent培训。
-
SegFuse:Dynamic Driving Scene Segmentation竞赛项目。提供原始视频,汽车根据实际动力学原理进行运动。培训集能够为我们提供路面实况标签、像素级别标签、场景分割和光流。目标:比现有的Image Based Segmentation技术水平更好地反应真实路况。所需:机器人需要解释、理解和追踪场景中的诸多细节。
-
Deep Crash:目标:使用Deep RL来规避High Speed Crash Avoidance(高速防撞系统)。培训:运行1000次, 使用单目视频作为输入源,培训一辆汽车模型在30mph以上速度行驶。
-
DeepTesla: 使用大规模网来培训端到端驾驶操作,使用单目视频作为输入源进行培训汽车。
为什么要自动驾驶?
目标:为自动驾驶汽车部署以数据驱动的学习方式。
这是多个个人机器人的最复杂最庞大整合。
-
普遍意义: 路上有大量汽车在行驶。
-
深度意义: 人类和汽车之间建立更紧密的联系。彼此的信任将人类将自己的性命交付给机器人,将"控制权"交给汽车。如果深入剖析,确保生命安全是系统运行的天然属性,而且在未来真的需要测试系统的极限。
自动驾驶汽车: 与其说是感知控制终端(Perception-Control)更不如说是个人机器人(Personal Robot)。面对各种路况,这些系统还需要通过交接控制权来获得人类的帮助。而真正意义上,能够像人类一样具备动态天然属性的感知系统,至少还要发展数十年时间。
认知负载: 完整连接的卷积神经网络(CNN)在处理RAW 3D输入源,分析驾驶员的认知负载,身体姿势和疲劳程度。
实参: 要实现完全自动驾驶,智力需要在某些领域接近人类。
以人类为中心的人工智能方法
建议:在每个算法设计过程中将人的因素考虑进来。
-
感知控制可以处理90%以上的情况
-
人类控制:在10%的场景中占据主导地位
为何要深度学习?
深度学习平台能够非常出色地处理大数据。届时人类的性命直接交付到这些设备上,因此这项技术必然需要通过现实生活的数据进行学习。
-
感知/控制端
-
基于人类的交互和协作
什么是深度学习?
人工智能:能够实现多个复杂目标
理解/推理:能够将复杂信息转换成简单和实用的信息。
深度学习(表示学习或者特征学习)能够在没有任何解释的情况下提取源信息,并且构建分层表示允许生成各种洞察报告。
表征学习
-
表征学习是非常重要的。例如: Earth Centered Vs Sun Centred。
-
笛卡尔坐标系VS极坐标系来区分圆形和三角形。
-
例如: 使用1层隐藏神经网络来区分蓝色和红色曲线。要实现这项学习(使用源输入来生成输出)效果就是通过深度学习来完成的。
-
深度学习能够改善更多的数据。
-
边缘情境的归纳是深度学习目前的主要挑战。
神经网络
受到人类生物神经的松散网络的启发而来。
-
人类神经网络: 1000亿个神经元, 1000 万亿个突触
-
目前最顶尖技术ResNet-52:6000万个突触
-
两者相差7个数量级
-
区别:
-
人类神经网络不需要堆栈,而人工神经网络需要;
-
人类神经网络没有顺序之分,而人工神经网络存在;
-
同步学习和异步学习;
-
未知学习和Backprop算法;
-
处理较慢 Vs 处理较快;
-
低功耗VS低效率;
相似性:两者都是大规模的分布式计算。
基础神经元是非常简单的,但是相互连接的多个单元能够应用在非常复杂的案例中。
神经元
-
神经元包含了一组具有权重邻域的输入源。
-
权重是相乘得来的。
-
再添加偏置( bias)。
-
非线性函数来确认神经网络是否被激活。
神经网络的组合:
-
前向神经网络(Feed-forward NN): 已经成功应用于计算机图形中。
-
递归神经网络(recursive NN): 能够自我回溯,且具备记忆。目前已经成功应用于关于数据的Time Series,这非常接近于人类(因此很难进行培训)。
普遍性:多元神经网络可以在给定足够优秀算法的前提下只通过1个隐层来逼近任意函数。
提供了非常好的算法。
缺陷: 这并不是神经网络的功劳,而是算法的功劳。
深度学习的种类
-
监督学习:全部使用人工标注的数据;
-
扩展监督学习:所需人工标注数据和未标注数据持平;
-
半监督学习:少量人工标注数据以及大量未标注数据;
-
强化学习:极少量人工标注数据以及大量未标注数据;
-
无监督学习:全部使用未标注数据;
现阶段经常使用的是1和2。
未来趋向的和更好的是3、4和5。
深度学习影响的领域:
-
定义和解决一个具体的问题。比如:预估波士顿的房价。
-
通用目的的人工智能(或者几乎全部):使用强化学习和无监督学习。
有监督的学习
训练阶段:1. 输入数据集; 2. 贴标签; 3. 在训练数据集上训练。
测试阶段:1. 使用新的数据集测试; 2. 输入学习模型; 3. 结果输出。
学习
-
前向运算:输入数据集被输入进神经网络中,并且形成预测结果。
-
反向传播:测量预测结果和期望输出结果的偏差,并且计算结果误差。调参(超参数)以根据误差量级调整数值。
我们可以用深度学习做什么?
-
一对一映射。
-
一对多映射。
-
多对多映射。
-
异步多对多映射。
术语解释:
-
DL=NN (深度学习=神经网络)。
-
DL是ML(机器学习)的一个子集。
-
MLP:多层神经网络。
-
DNN:深度神经网络。
-
RNN:循环神经网络。
-
LSTM:长短期记忆网络。
-
CNN:卷积神经网络。
-
DBN:深度置信网络。
神经网络的结构:
-
卷积层
-
池化层
-
激励层
-
反向传播
激活函数
-
Sigmoid.函数:存在梯度消失,不以原点为中心。
-
Tanh.函数: 存在梯度消失。
-
ReLu.函数: 不以原点为中心。
梯度消失:输出或者梯度值很小并且学习速率很慢。
反向传播
关于神经网络的学习过程,其主要目的:为了更新权重和偏差值来降低损失函数。
基本任务:
-
通过前向传播,计算网络的输出值和残差。
-
反向传播计算梯度。
-
把一部分权重的梯度从权重中去除。
由于这个过程是模块化的,所以它是并行运行的。
训练
训练是一个最优化的过程。
目标是通过更新权重和残差使损失函数最小化。
需要使用技巧的地方:最小单元的梯度下降和随机梯度下降。
训练中存在的挑战
-
损失函数是高度非线性的。
-
梯度消失。
-
ReLU存在死亡节点:当输入为0的时候输出也会为0。
-
存在鞍点。
-
过拟合:神经网络学习训练数据但是和实际输入数据拟合失败。出现的原因是训练残差较低但是测试残差较高。
正则化
有一些通用性的技巧。
-
设置验证集:训练数据集的子集。
-
提前结束训练:为了保存检查节点并且评估神经网络在测试集上的运行状况。
Dropout:随机丢弃其中一些节点(和输入和输出的节点一起)
-
用保持节点(p)的概率表示。
-
输入的节点p需要更高。
目的:帮助网络更好地归纳。
正则化范数约束项
-
L2 约束项:权重平方约束项:
-
在偏差没有增加的情况下,一直保持较小的权重值。
-
避免样本的拟合错误。
-
更平滑的模型。
-
对于两个类似的输入,权重需要进行分配。
-
L1 约束项:权重绝对值的约束项:
-
允许保持较大权重。
深度学习引起的突破
改变了什么?
-
计算能力的提升。
-
可实现大型有规律的数据集。
-
对于GPU的利用领域的算法和研究。
-
软件和基础设施。
-
经济支持。
深度学习是困难的
人体的复杂性:
-
人的视觉:形成了5,4000,0000年的历史数据。
-
直立行走: 2,3000,0000年的历史数据。
-
抽象思考:10,0000年的历史数据。
神经网络:
-
会增强对于像素级样本的失真,导致预测不准确。
-
图像本身的问题:光照、姿态、遮挡和内部类别的不同等情况。
物体识别或分类
目标:输入一幅图像并预测输出。
ImageNet: 1400万种以上的输入和2。18万种以上的输出。
ILSVRC比赛:
AlexNet(2012):在准确性上有了显著的提高。
Resnet(2015):在识别的准确率上击败了人类。
巧妙的例子:深度学习和"人类普适性的能力"还有差距许多相同的架构的应用:我们可以根据需求种类的数量改变输出层。
-
图像分类。
-
图像捕捉。
-
物体定位。
-
图像分割。
FCNN
每个像素点都被分为一类,然后它输入一幅图像,产生另外一幅图像作为输出。
目标:图像和图像间的对应。
使用场景:
-
像素级的全场景分割。
-
染色法对应。
-
物体识别。
-
消除背景。
-
Pix2PixHD:从语义标签中产生高分辨率的写实照片。
-
RNN:用于系列的数据集。
使用场景:
-
手写体识别。
-
图像捕捉。
-
视频描述。
-
转移的注意力模型。
-
用可选择的注意力模型。
主要的突破点
-
Pong to Pong (2012):更接近通用人工智能。
-
AlphaGo (2016):可以从人类的专家级别游戏中学习AlphaGo Zero (2017):打败了AlphaGo和Co,它不需要任何外部数据输入(它通过和自身对抗训练进行学习)。
-
DeepStack (2017):第一次击败了专业的扑克选手(在Heads up Poker中)。
现阶段的缺点
-
很难确定适合的激励函数(以Coast Runner为例), 结果可能是出乎意料的。
-
缺乏鲁棒性: 在像素中增加噪声会导致错误的预测结果。
现阶段的挑战:
-
迁移学习:运行的表现和工作范围相关。挑战:跨领域的迁移学习困难。原因:对于推理过程的理解或者提取理解的能力。
-
需要大量的数据。
-
需要经过标注的数据。
-
不是完全自动的:需要调节超参数。
-
激励函数:很难确定一个合适的激励函数。
-
透明程度: 神经网络的性质接近黑盒子 (在我们可视化了隐藏的过程之后仍然是这样)。
-
边缘处理的情况:深度学习不擅长处理边缘数据的情况(特别是当它用于自动驾驶)。
雷锋网雷锋网
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/130236.html