学界丨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订阅号

谷歌MnasNet:实现移动端机器学习模型的自动化

在智能手机领域,检测对象,分类图像和识别面部的应用程序并不是什么新鲜事;它们已经被Google Lens和Snapchat等应用推广,但普遍性无法替代质量,而大...

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

AI 技术讲座精选:​产品经理如何学机器学习——一篇以产品为中心的机器学习概论

我现在常常听说产品负责人/经理、技术经理和设计师通过网上课程学习机器学习。我一直鼓励这种做法——实际上,我本人曾学习过那些课程(并且在博客上发表了相关内容)。但...

3013
来自专栏大数据文摘

资源 | 适合小朋友的Scratch动手项目!AI在生活中的19个应用

1664
来自专栏AI研习社

Andrej Karpathy谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想

有越来越多的传统编程语言(C、C++、Java)等程序员开始学习机器学习/深度学习,而对机器学习/深度学习的研究人员来说,编程也是必备技巧。那么传统程序员和深度...

3074
来自专栏AI科技评论

视频 | 给正在读论文的你:如何高效阅读文献?

原标题:How to Read a Research Paper 翻译 | 王飞 J叔 字幕 | 凡江 整理 | 林尤添 无论是对于机器学习,密码...

27010
来自专栏DT数据侠

海量游戏、影视究竟哪部才是你的菜?交给这个推荐系统帮你选

在我们生活的这个时代,每周都有大量的新游戏、电影和剧集问世,追剧、追游戏并不容易,往往需要花费好几个小时浏览各种博客、媒体上的评价才能决定一部作品是否是你的菜。...

800
来自专栏AI科技评论

学界丨从一个失败的强化学习训练说起:OpenAI 探讨应该如何设计奖励函数?

AI科技评论按:在当下,强化学习算法以一种惊奇、不可思议的方式进入到了我们的视野中。AI 科技评论此前也做过不少相关的覆盖和报道,而在 OpenAI 的这篇文章...

27511
来自专栏AI派

个性化推荐系统中的绕不开的经典问题有哪些

推荐系统从诞生到现在,伴随产生了很多的问题,有一些问题有较好的解决方案,但是有的仍然没有通用的解决方案。介绍这些问题之前,先来介绍下推荐系统的预测手段。

2873
来自专栏量子位

微软旗下Maluuba推出看图问答数据集,想让AI看懂图表

安妮 编译整理 量子位 出品 | 公众号 QbitAI ? 科学图表能简洁地概括趋势、速率和比例等有价值的信息,让我们直观地了解概念。而机器对这种结构化视觉信息...

3184
来自专栏PPV课数据科学社区

[译文]机器学习不是数据科学

对于很多人来说,机器学习就是数据科学。在我这道这两个术语的含义之前,我也简单的认为数据科学只不过是机器学习一个流行的叫法而已。过了一段时间,再次考虑这个问题的时...

3874

扫码关注云+社区