学界丨MIT 开了一门只有九小时的课,教你用深度学习构建自动驾驶

MIT 紧跟时代步伐,开设的 6.S094 课程名为《为自动驾驶构建深度学习》的课程,旨在教学生们为自动驾驶搭建一个深度学习系统,授课者为 Lex Fridman。课程要求学生拥有基本的编程知识(最好是 Python)。

全课只有九节一小时的课程,于 1 月 9 日开课,今天就结课啦。而且!据AI科技评论从议程表上了解到,从开课一直到 1 月 16 日,官网表示会陆续放出 PPT 及视频文件,AI科技评论会持续关注。

DeepTesla 与 DeepTraffic 就是 MIT 这门课程里面的两个重点培训内容,

  • 前者直接以端到端模型训练一个自动驾驶的起动模型;
  • 后者以游戏化的方式模拟汽车在高速公路上行驶,而我们的目标就是(没有蛀牙)训练一个神经网络,利用强化学习控制红车,并让它的速度尽可能提升到最快(也就是超车啦!速度与激情)。

那么首先我们得先补补课,为什么要采用循环神经网络呢?主要鉴于它能够将输出重新做为输入再次进入神经网络中进行训练,也就是拥有所谓的「记忆」。

强化学习的一个典型例子就是 DeepMind 训练机器玩 Atari,虽然机器并不知道游戏规则,但每一次游戏都能让机器得到一次分数的反馈,而目标就是让得分最大化。

美国人每年要浪费 80 亿小时在堵车上,因此如果能采用自动驾驶系统,让老司机们解放双手,想必真真是极好的。

DeepTesla:特斯拉自动驾驶,我也行

DeepTesla 通过一个简单的演示呈现卷积神经网络的端到端转向。顶端呈现的四个指标呈现的是前向传递及后向传递所需的时间,以及目前网络已经训练的示例,还有网络的当前状态(是处于训练数据?还是在提取数据?)。

下方的图表呈现的是损失函数,我们都知道,正常状态下随着时间的推移,损失函数的值应该会越来越小。

而在编辑器下方还有一个可视化图层的功能,用户可以在网络中看到每个图层的处理情况。如果加载了特斯拉视频,随着视频内容的增加,神经网络的训练效果也会变得更好。

下方两个小的方向盘及旁边的数值指的是实际值(蓝色)与系统预测值(白色)的对比。是不是非常智能?

以第一次加载 DeepTesla 为例:我们整个网络大小为(200,66,3)的输入层,表示宽度为200,高度66,涵盖三个通道(红绿蓝)。紧接着有一个卷积层、一个合并层与一个输出神经元。

ConvNetJS为我们提供了几种训练算法,具体能够在这里找到。

DeepTraffic:让小车跑得更快

整个 DeepTraffic 游戏实际上是在网格上运行,但你也可以通过选择不同的模式,让网格呈现出来。

每辆车周围的方格表示的是它自身的速度,而橙色区域指的是该车辆可能的行驶方位。

比如在安全系统中,车辆周围会出现一个 H 型的区域,橙色表示相对安全,而红色表示周围已经有车在附近车道,此时红色小车不能越到红色区域。如果你提升了小车的速度,那么这个区域也会随之变化,毕竟如果有车挡在你的面前,为了保证安全,你一定会减缓速度(这与我们这个小游戏的目标相反)。

编程页面主要分为三块,一是实时的道路模拟情况,还能调整自己车辆的行驶速度,以提升测试速度;二是编程页面,在这里可以修改神经网络的具体代码;第三部分会显示目前神经网络的状态,还能将代码保存、重置或下载。

代码区的这几个变量可以控制网络的输入大小,更多的输入也就意味着更复杂的交通环境,也意味着需要更长的学习时间及更大的学习难度。

整个代理由一个名为「learn」的函数所控制,该函数能够接受当前的状态(以一个扁平阵列呈现),而所得到的反馈为行车速度,也就是以 mph 为单位的平均速度。

函数最基本的形式(告诉代理,让车辆维持现状,不需要变道或减速)大概长这样:

而既然这是一个追求速度的「比赛」,那么你需要通过神经网络控制车辆,比如:

在初始代码中,已经提供了上述内容。当然,你可以自行对数据进行预处理,并将这些状态输入网络,但不需要在这上面花太多时间。

这个地方就是你施展「才华」的地方——这是一个隐藏层里的一个神经元示例。

下图呈现的是最终的回归层,它决定了最终的执行环节将会呈现怎样的结果。

在 Q-Learning 里还提供了一些其它选择,可以在 Github 上找到。

最后一步就是创建“大脑”。

如果点击了 run training,那么可以训练神经网络,并以 30 倍于实时的速度实现单线程运行,随后训练网络的结果会以可视化的形式呈现在电脑上,学生们也可以做一些即时反馈和改进。

该网站上的评估键可以直接运行同样的任务,也就相当于小测验。通过每次 30 分钟的 10 次运行,最后将计算出每次车辆的平均速度,并取中值做为结果。而且,本地测试的评估会受到其它车辆出现的情况的影响,所以本地的测试只能做为参考。

值得一提的是,Fridman 老师表示这些车都有着安全系统,所以不需要担心车的反应速度不够快,它们不会因为你突然操控加速减速而出车祸的。(老师入戏好深……)

Fridman 还在主页上公布了一个神经网络训练排名榜,目前有三位同学取得了很不错的成绩,甚至还有比老师训练得好的,太厉害了。

老师说了,如果速度不能提上 60km/h,那你明天就不要来上课了(误)。不过排行榜今天就截止统计啦,所以大家如果测试了比排行榜更高的分数,欢迎告诉AI科技评论小编呀,我们会找你做硬创公开课的。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-01-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

IBM提出深度学习模型水印方法,可防止侵权

如果机器学习模型可以在照片,电影,音乐和手稿添加水印以表明所有权,防止知识产权窃取,并防止攻击者损害其完整性,该会如何呢?IBM正在申请新的专利,他们可以做到这...

24820
来自专栏CDA数据分析师

数据挖掘:推荐系统综述以及美团推荐系统介绍

其实推荐系统前面已经讲过不少,那时候主要是放在机器学习上讲的,既然这次要系统撸一遍数据挖掘,就把推荐系统单独拿出来说一说。相信如果做过推荐系统的人,都知道是什么...

97080
来自专栏智能算法

蚁群算法(独辟蹊径的进化算法)

1. 算法背景——蚁群的自组织行为特征 高度结构化的组织——虽然蚂蚁的个体行为极其简单,但由个体组成的蚁群却构成高度结构化的社会组织,蚂蚁社会的成员有分...

37590
来自专栏AI科技评论

干货 | Siri 语音识别的小心机:你在哪里,就能更准确地识别那附近的地址

AI 科技评论按:这篇文章来自苹果机器学习日记(Apple Machine Learning Journal)。与其他科技巨头人工智能实验室博客的论文解读、技术...

15320
来自专栏ATYUN订阅号

强化学习开源项目:自己动手创建虚拟自动驾驶汽车

想象一下,你生活在一个没有交通拥堵,没有交通事故,也无需花费时间开车的世界,那会多美好。

62120
来自专栏企鹅号快讯

2017年度30大最惊艳的开源机器学习项目

在过去的一年里,Mybridge AI 比较了近 8,800个开源机器学习项目,选择了前30名(概率只有0.3%)。 这是一个竞争激烈的名单,精挑细选了2017...

29980
来自专栏AI科技大本营的专栏

AI 行业实践精选:通过机器学习刺激销量——如何利用NLP挖掘潜在客户

【AI100 导读】在这篇博客中,作者会向大家介绍如何以更有效的方式通过 Xeneta 进行营销,会训练一个机器学习算法,通过对于公司的描述来预测潜在客户的质量...

38880
来自专栏机器之心

资源 | 吴恩达《ML Yearning》52章译文,一份很有诚意的GitHub项目

在该 GitHub 项目中,读者可直接下载各章节译文的 MarkDown 文档,也可以下载 PDF 版的英文原版。此外为了有更好的阅读体验,作者为这个项目构建了...

8510
来自专栏机器之心

前沿 | 如何解决深度学习中的多体问题

选自Medium 机器之心编译 参与:乾树 多个智能体如何协同工作才能高效完成任务?深度学习领域中的多体问题就像物理领域中的一样难解。很多研究机构正致力于研发先...

37370
来自专栏ATYUN订阅号

自动驾驶技术—如何训练自己的神经网络来驾驶汽车

神经网络,特别是深度学习的研究最近在计算机视觉的领域和计算机科学的其他重要领域取得了许多突破。在这些技术的应用中,自动驾驶技术十分火热。几乎每个人都听说过它,许...

30570

扫码关注云+社区

领取腾讯云代金券