阿里云
为了无法计算的价值
打开APP
阿里云APP内打开
学习中心> 深度学习与自动驾驶> 正文

深度学习与自动驾驶

12课时 |
2956人已学 |
免费
课程介绍

这门自动驾驶课程由麻省理工MIT开设,话题前沿且实践性质很强。课程面向机器学习初学者,但已经有大量经验的研究人员也能从课程提供的从实践出发的深度学习方法和应用中受益。

课程大纲

  1. 深度学习与无人车导论
  2. 深度强化学习-运动规划
  3. 卷积神经网络:用于自动驾驶任务端到端学习
  4. 循环神经网络:用于掌握时间
  5. 以人为本的半自动驾驶车辆

深度学习与无人车导论(1)

 

内容介绍

一、目标人群

二、项目

三、问题

四、种类

五、什么是驾驶

六、无人驾驶汽车的历史

七、If Driving is a Conversation

八、Neuron: Biological Inspiration for Computation

九、什么是人工神经?

十、Neural Networks are Amazing

十一、Special Purpose Intelligence

十二、General Purpose Intelligence

 

内容简介

基于深度学习的无人驾驶课程,关于深度学习的方法包括利用深层神经网络去构建自动驾驶的指导性研究报告。下图是一个可视化,是之后会讲到的两个仿真或者游戏之一。用它作为一种方法去学习深度强化学习,同时也能提高积极性,通过挑战自己并且战胜其他同学的方式,如果想在最后的公布中获得一个特等奖,游戏包括了一个竞赛,将会清楚地描述这项游戏中包含的东西,设计一个神经网络,如果想赢得比赛,需要你的车比65英里每小时更快一点。

 

目标人群

1、面向那些人:

(1) 可能是一个编程新手

(2)初次接触机器学习

(3)初次学习机器人技术

或者已经是这方面的专家,但想重温一遍这方面的基础。

2、你将学到:

(1)An overview of deep learning methods:

 学到深度强化学习的概述

 学习卷积神经网络

 学习重复神经网络

(2)

学习这些方法如何帮助提高自动驾驶的各个组成部分,知觉,视觉,定位,映射,控制规划和驾驶状态检测。

 

项目

1、"DeepTratfc"是第一个项目。

Project: DeepTraffic

Deep Traffic

Americans spend Billion hours stuck in traffic every year.

Deep neural networks can help

这里有7条车道,这是一个顶视图,它看起来像一个游戏,但是它是很严谨的。这个正在动的红色物体,这辆红色的车是由神经经网络控制的,之后课程将会解释如何去控制和设计这个神经网络的各种参数,这个神经网络的学习是在浏览器里完成的,所以使用ConvNet.JS去学习,它是一个由Andrej Karpathy利用javascript编写的库。做这个的原因是通过很少的裝备需求,快速的开始神经网络学习。为了完成这个课程中的项目,不需要有任何的裝备,只需要有一个Chrome浏览器。

2、第二个项目代号被命名为DeepTesla,或者可以叫做Tesla,使用特斯拉汽车驾驶中,关于前行道路的数据,并且使用终端对终端的进行学习,使用图像并将其放入卷积神经网络,直接映射或者“强制将其映射到转向角上,因此它只需要一个单一的图像就能预测汽车的转向角,拥有汽车自身的数据,需要建立一个神经网络并且尝试做得更好,尝试着去驾驶的更好或者至少和这辆特斯拉车一样好。

 

问题

1、什么是智能?这个来自于时代杂志的1996年3月期刊。

2、这是另一个问题,机器可以思考吗?下面是刚刚问题的答案,机器已经可以开始思考了,那么,它和人类思想有什么特别和不同的地方吗?在1996年这是一个很好的问题,同时在2016年这也是一个好问题,在2016年也是一个好问题,未来也是一个好问题。

3、同样这里有两种方式来问这个问题。

(1)第一个是特殊目的的版本,人工智能系统能否达到一个被很好定义过的目标,具体而言,能否达成被正式定义的、有限个目标?

(2)这是一个完美简单的系统示意图,它存在于一个环境中,它还有一组传感器系统,用来实现感知功能,它将传感器数据作为输入,然后做一些神奇的事情,就是方框中的问号那里,同时通过一组效果器(Affectors)来操纵一些对象造成影响。

所以特殊的目的,可以在这个架构下只要环境是被正式定义过的,明确定义过的,只要一组目标有一个明确的定义,只要一组动作,传感器以及感知的方式是有明确定义的,拥有好的算法,这些算法可以对这些目标进行优化。但问题是如果沿着这条路缓慢地移动,能否得到更通俗易懂的公式,能够获取人工智能的通用目标?人工智能更否达成没有被良好定义过的,不受约束的一组目标,通过一组不受约束的、简单定义的动作,和一个不受约束的、简单定义的效用函数也就是奖励,这才是人类的生活,大部分时间在做的,生活在一个没被定义的、充满不确定性的世界。

 

种类

可以将任务划分成为是三个不同的种类。

1、正式的任务,这是最简单的方法,在人工智能诞生的早期,它不被看成是最简单的方法,仔细想想确实如此,最简单的是正式的任务,玩桌面游戏、提高理论,所有可以被正式定义的数学逻辑问题。

2、第二类是专家任务,这里是由许多令人激动的突破发生,这就是机器学习的方法以及数据驱动的方法可以帮助或改善人类专家的表现,这意味着包括医疗诊断,硬件设计,调度。

3、第三类任务是认为理所当然的事情,琐碎的事情,每天早上醒来所做的事,每天讲话,书面语言,视觉感知,以及走路。

 

什么是驾驶

1、驾驶有多困难?

开放式问题:

驾驶是更贴近于下棋还是日常谈话?

今天讲到的是一个非常困难的任务,在对象操纵上,所以这里要提的问题是在谈论深度学习之前,在讨论具体方法之前,需要深入了解一下什么是驾驶,驾驶有多难,驾驶是更像国际象棋呢?还是像图中看到的?

2、在这套“棋盘中”可以正式定义一个车道集合,还有驾驶动作组合,比如你可以改变你的车道,你可以避开障碍,你可以规定什么是障碍物,你可以指定一套道路驾驶规则,还是更像自然语言呢,驾驶与日常中的对话类似,自动驾驶也需要高级别的推理能力,通信能力,学习能力,并且运行在一个欠驱动空间中,欠驱动系统是指系统的独立控制变量个数小于系统自由度个数的一类非线性系统,除了左车道或者右车道,加速,减速还有更多吗?

3、Chess Pieces: Self-Driving Car Sensors

External

(1)Radar

(2) Visible-light camera

(3)LIDAR

(4)Infrared camera

(5)Stereo vision

(6)GPS/IMU

(7) CAN

(8)Audio

Internal

(1)Visible-light camera

(2)Infrared camera

(3)Audio

把整个自动驾驶的场景看作是一盘国际象棋,这是棋子,需要哪些传感器才能让一个自动驾驶汽车能够成功运行?做了大量关于自动驾驶汽车传感器的深入研究,有雷达,有射线传感器,激光雷达,这些传感器能够让你获取到当前环境中的障碍物信息,可以帮助你在当前所处环境中定位这些障碍物。有可见光摄像机和提供纹理信息的立体视觉,这会帮助你不仅仅知道障碍物在哪,而且还可以知道障碍物是什么,这有助于将障碍物进行分类,但必须要了解这些障碍物微妙的动作,再有就是车辆自己本身的信息,比如来自GPS和IMU(惯性测量单元传感器)的车辆的轨迹和运动信息,还有就是车辆有丰富的状态,它正在干什么?所有的独立系统都在做什么?这些都来自于屏蔽网。

4、接下来是一个研究较少的但是却很吸引人的音频方面的研究,来自道路的声音,提供了丰富的路面信息,比如潮湿的路面,当雨停的时候的声音,道路仍然很湿,它发出一系列声音,刺耳的轮胎声和喇叭声,这些都是非常有意义的信号。工作的重点是一个真的被低谷的事是面向内部的传感器,感知驾驶员的状态,他们在注视什么?他们疲劳了吗?他们的情感状态,他们一直在座位上吗?音频也是同样的过程,这些都来自于视觉信息和音频信息。

5、Chess Pieces: Self-Driving Car Tasks

(1)Localization and Mapping:

Where am I?

(2)Scene Understanding:

Where is everyone else?

(3)Movement Planning:

How do I get from A to B?

(4)Driver State:

What's the driver up to?

接下来,这是个任务,如果把构建自动驾驶汽车的任务模块化,首先,你想要知道你在哪里,你想知道我在哪里,你想知道定位和映射,你想映射外部环境,你想找出所有不同的障碍物,所有试题物体的所处的位置,并且利用这些信息估测出所处的环境情况,用这些来定位位置,定位自动驾驶的汽车的位置,再有就是对于场景的理解能力,这里所指的理解不仅仅是对于外界环境和动态的位置方面的理解,还包含了对于多处环境中的实体本身的理解,它是汽车吗?它是行人吗?它是一只鸟吗?接下来是运动规划,一旦想通了,你的位置和其他在这个世界里的实体的位置关系,那么也就能找到能在这个世界中运行的轨迹,最后一旦找到了如何保证在世界上中的移动是安全的,并且找到了有效的方法,就能搞清楚人们在交通工具上都在做什么,自动驾驶汽车的路径规划,对于特斯拉的关注可能会通过半自动化车辆,车辆不仅必须要能控制自己,而且要能有效地移交控制权,由车换到人,反之亦然。

 

无人驾驶汽车的历史

1、DARPA Grand Challenge II (2006)

最大的突破来自于第二届无人驾驶机器人挑战赛,斯坦福斯坦利获得冠军的时候,他们是完成比赛的五辆汽车中的一辆,这是在沙漠中比赛中难以置信的成就,一辆全自动化的车辆能够完成整个比赛,并且打破了世界纪录。

2、DARPA Urban Challenge (2007)

在2007年度无人驾驶机器人城市挑战赛,比赛内容不是在沙漠中进行比赛,而是在一个城市环境中进行卡内基梅隆大学名为“Boss”的通用汽车贏得了比赛。

3、Industry Takes on the Challenge

并且比赛中的大量的工作都开始被接受,并且大型的主要的产业参与者都开始应对无人驾驶对于车辆制造的挑战,谷歌,如今的“waymo”自动驾驶汽车,特斯拉“autopilot”系统和如今的“autopilot2”系统,优步在匹兹堡进行的无人驾驶汽车测试,而且还有很多这样的公司,包括这门课程的以为演讲者来自nuTonomy,它正行驶在波士顿的美妙的街道上。如果思考一下在无人驾驶机器人挑战赛所取得的成就,如果仔细看看谷歌自动驾驶汽车的成就,你会发现它们的本质上是把世界变成一场象棋游戏,它们利用非常精确的传感器,通过一个明确的规则来建立一个三维度的世界地图,有效的将它们自身定位在哪个世界,并且在那个世界中进行移动,接下来谈论到驾驶。

 

七、If Driving is a Conversation

How Hard is it to Pass the Turing Test?

1、Natural language processing to enable it to communicate successfully

2、Knowledge representation to store information provided before or during the interrogation

3、Automated reasoning to use the stored information to answer questions and to draw new conclusions

4、这是一个开放的问题:如果开车更像一场对话,像用自然语言的对话,那么它可能通过图灵测试吗?图灵测试目前的方案是计算机被误认为人的时间超过30%吗?如果人类再有遮挡时和电脑或另一个人对话,他们会错把谈话的另一面误认为是人类,而事实上这就是一台电脑但是却在模仿人的方式,在自然语言中,选一个可以成功的通过图灵测试的系统是处理自然语言的一部分以使它能够顺利地通过进行通信,比如用通用语言和解释语言来进行通信,然后你代表的交谈状态的知识,随着时间推移而转变,而最后一部分是很复杂的,最后一部分就是自动推理,这是一个推理的过程,可以教会机器来学习推理的方法吗?接下来的课程将会通过讨论得出结论,因为会讨论到的各种不同的方法,不同的深度学习方法。神经网络善于从数据中学习,但是他们现在还没有好的推理机制,现在推力可能只是一个特别的,现在的推理可能只是一些东西,那些告诉自己感到很特别,更好的感觉到我们比机器好。推理可能很简单和从数据中学习的过程一样简单,只需要一个大型的网络,或者也可能需要一个完全不同的机制。

 

、Neuron: Biological Inspiration for Computation

1、Neuron: computational building block for the brain

2、Human brain:

~100-1,000 trillion synapses

3、(Artificial) Neuron: computational building block for the "neural network"

4、(Artificial) neural network:

~1-10 billion synapses

5、Human brains have ~10,000 computational power than computer brains.

在接下来的课程中,会讨论它出现的可能性。在机器学习领域最近的突破,以及这些突破的核心。最近的突破就是神经网络,神经网络已经存在很长一段时间了,将谈论它的变化,已经没有改变的事物,以及它的可能性。但首先,一个神经元,粗略的说,是大脑的计算单元。这不是一个模型,它更像是一个灵感,人类神经元激发了人工神经元,激发了人工神经网络的计算单元,给一些背景资料,这些神经元对于所有的人工大脑和人类大脑是互相关联的。对于人类大脑,每个神经元平均会发出10000个连接,它们互相连通,目前最大的人工神经网络,有100亿个连接,也就是突触,大脑最多是人造神经网络连接数量的10000倍,有1万亿到10万亿的突触。

 

九、什么是人工神经

1、Perceptron: Forward Pass

什么是人工神经?人工神经是神经网络的单元,它采用一种输出,对每一个输出对应其权重加起来,然后对每个神经元加上偏置值,使用激活函数,这需要它的输入的,输入的和加上偏值然后整合来产生一个0~1的信号。

2、Perceptron Algorithm

Provide training set of (input, output) pairs and run:

(1)Initialize perceptron with random weights

(2)For the inputs of an example in the training set, compute the Perceptron's output

(3)If the output of the Perceptron does not match the output that is known to be correct for the example:

① If the output should have been 0 but was 1, decrease the weights that had an input of 1.

② If the output should have been 1 but was 0, increase the weights that had an input of 1.

(4)Go to the next example in the training set and repeat steps 2-4 until the Perceptron makes no more mistakes

这个过程让单个神经元采用一些输入并产生一个输出。举个例子0~1,它可以作为一个线性分类,因此它可以画一条线,它可以学会画一条中间的线,在蓝色的点和黄色的点之间,这正是要在要在iPython Notebook上做的,之后会解释。基础算法是在初始化的输入里的权重,并且计算输出,在执行此操作之前,相加和计算输出。如果输出不符合基本事实,不符合预期的输出,不符合它本应该产生的输出,权重将相应减少,并且涉及到数学计算,这个过程会一直重复直到感知不到任何错误。

 

、Neural Networks are Amazing

1、Universality: For any arbitrary function f(x), there exists a neural network that closely approximate it for any input X

2、Universality is an incredible property!* And it holds for just 1 hidden layer.

Given that we have good algorithms for training these networks.

这是关于神经网络的了不起的事情。在数学领域是有关神经网络的普遍性,只是一个单一的层,如果叠在一起,就是一个隐含层,左侧是输入,右侧是输出,中间是一个的隐含层,它可以逼近几乎所有的函数,这是一个令人难以置信的性质。能想到想象到的所有函数用一层网络就能逼近,可以将驾驶看作一个函数,它需要输入,外界是输出,来控制起车辆,存在一个神经网络可以完美地驱动,这是一个有趣的数学事实。

 

十一、Special Purpose Intelligence

因此可以考虑将这些函数作为有特殊目的的函数。

 

特殊用途智能,可以将这些作为输出输入,比如卧室数量,平方面积,街道的类型,这些是三个输入,通过隐含层传递这些值,在下一个步骤,它产生为房子和住宅估计的最终价格,可以用监督的方式去训练网络更好的去做这件事,这就是监督的学习过程,提供了大量的实例,在实例中,知道卧室的数量和平方面积,知道街道的类型,并且也知道房子或住宅的最终价格,然后就可以通过反向传播,有效地教这些网络进行预测。

 

十二、General Purpose Intelligence

1、80x80 image (difference image)

2、2 actions: up or down

3、200,000 Pong games

4、This is a step towards general purpose artificial intelligence!

5、最近有一些令人兴奋的突破在通用智能方面。这个是来自于Andrej Karpatthy, 他现在在OpenAl,这是一个“pong”游戏(类似乒乓球),如果不熟悉“pong”,有两个拨片,试图将球反弹回去,并防止其他人反弹发送的球,人工智能代理是右边绿色的拨片,上面的比分是8:1,这大概需要在一个普通电脑上训练三天,这就是网络。

6、这个网络正在做什么?

这就是所谓的策略,网络输入是原始像素,原始像素有一个过程,需要取两帧之间的差别,但它基本上是原始像素的信息,这就是输入,那里有几个隐含层,并且输出是向上移动的单概率,这就是整个的系统,系统正在学习,你不知道在某一个时刻,你不知道应该做什么,它是在上移吗?还是在下移,你唯一知道是事情是最终你赢了比赛还是输了比赛,因此这就是它了不起的原因,没有监督的学习,关于是好还是坏,没有普遍的事实,每个人都可能好,也可能坏,但是如果你惩罚或奖励你采取的每一个动作,对于整个游戏你之前的每一个动作。不择手段的赢了比赛,如果赢了比赛,在每一个动作状态中所采取的每一个动作都会得到奖励,如果在比赛中失败就会被惩罚,在这个过程中只需20万场比赛,这里系统只模拟游戏,它就可以打开电脑,这个系统对乒乓球和游戏一无所知,这就是通用智能,除了这只是一个乒乓球比赛,会讲解如何进一步将他延伸,为什么它如此有前景?为什么要谨慎行事?再一次要做一系列向上向下,向上向下的动作,根据网络的输出,这里有一个临界值,有了向上移动的概率,根据网络的输出向上或向下移动,有一组状态。如果赢了,每一个单独的状态动作对都会被奖励,如果输了就会被惩罚。

我的学习进度
请登录后查看您的学习进度!
立即登录
本课程相关云产品