这篇主要是针对深度学习原理进行一个简单的介绍。让大家了解一下这个NBHH的方法到底是怎么实现的。然后介绍一下如何把深度学习应用在这个无人驾驶小车DIY项目上面。

        开
始之前,我想先让大家屡清楚三个重要的概念。AI(人工智能)、机器学习、深度学习。可以这么理解,AI可以看做是一个目的,让机器能够做一些以往只有人
才能做的智能的工作,这个概念其实在很久很久之前普斯茅斯会议上就已经提出来了。然后机器学习可以看做是一种手段,方法,是用来实现AI的。那深度学习
呢?它其实是机器学习这一大类方法里面的其中一种,由神经网络发展而来。由于它的效果贼好,所以现在实在是太火爆了。。。下面这张图就可以清晰的反应三个
概念之间的关系。

        好
了,下面开始重点讲解深度学习原理。由于深度学习可以用在很多领域,图像分类,图像检测,姿态估计,行为识别,语音识别,自然语言处理等等。我们就从最简
单的用深度学习做图像分类说起吧。因为我们这个项目其实就用的是图像分类。给你一张当前小车正前方的道路图像,然后判断出需要进行什么操作(左转,右转,
停止还是直行)。

        这里,我们先举一个生活中的小例子来前进行一个类比的说明。N年后,浪星的儿子去幼儿园上课。这次上课的题目是《认识霸王龙和剑龙》。然后呢老师投影了下面这张图片?问浪星儿子:“小朋友,你知道这是什么龙吗?”。

          浪星儿子摸摸头,说:“ 牙齿尖尖的,是剑龙吧 ”。
老师亲切的说“不是哦,这是霸王龙”。浪星儿子心里嘀咕了一下,原来牙齿尖不尖跟剑龙没什么关系。于是老师又拿出一张图片问“那这只是什么龙呢?”

        浪星儿子这次自信的说,爪子这么尖,那一定是剑龙了吧。老师摇摇头,这只还是霸王龙哦。浪星儿子又开始嘀咕了,原来尖尖的爪子跟剑龙也没有半毛钱关系啊。正在这时,老师又拿出了一张图片,问“这只呢?”

        浪星儿子一脸嫌弃的看着这个丑八怪,说,这么丑的恐龙,难道是剑龙?老师微笑着说“对喽,这只就是剑龙”。浪星儿子又嘀咕开了,莫不是身上长着鳞片的丑八怪就是剑龙。

        如此反复之后,浪星儿子看完了老师准备的所有图片之后,自信的学会了分辨霸王龙和剑龙。

        后来,浪星给儿子买了一个玩具恐龙,浪星儿子一眼就认出了,这是丑八怪剑龙!

        好了,故事讲完了。我们再把刚才浪星儿子认识恐龙的经历回忆一遍梳理一遍来加深映像:

        如果你理解这个学习过程,那么我们接下来对比使用深度学习让计算机来识别霸王龙和剑龙的过程,就会非常easy了。

        首
先是准备样本。注意一个小细节,在学习的过程中,老师准备了很多的霸王龙和剑龙的图片,并且是有标签的(有标签的意思是老师知道哪一张图片是剑龙还是霸王
龙,并且在浪星儿子预测出结果后可以做比对,看浪星儿子是预测对了,还是错了)。那么在深度学习上面,这些带有标签的图片叫做样本。下面这张图就是浪星给
计算机准备的样本。注意标签我用数字代替,0表示霸王龙,1表示剑龙:

        有
了训练样本,我们就要开始设计训练网络了。我们可以把这个过程抽象一下,把从图片到预测结果看做一个函数或者说映射。我们就是要学习这个映射过程,使得这
个映射变得更加准确。而设计网络,就是设计这个映射规则的过程。我们姑且把这个映射称作F(x),x是输入的图片。输出就是它的预测值。那么可以想象,刚
开始F(x)还没有经过学习,和浪星儿子一样的笨,所以通常输出都是错误的。但是不用急,我们有标签,只要把标签和预测值做一个对比,就知道F(x)预测
的偏差有多大,然后我们再调整一下映射F(x)里面的参数就行了。看看下面这个流程图:

        是
不是和上面的浪星儿子学习过程非常的相似。binggo。就是这么好理解!BUT,咱们感性层面认识了之后,如果追究下去,F(x)是怎样的一个映射,如
何设计;步骤4是如何根据标签值和预测值的差距来调整F(x)的。那么恭喜你,你已经快入门了。这两个过程分别对应深度学习的网络设计和优化方式。这里我
我就不详细说了,有兴趣的可以自行度娘。如果这篇文章能够让你有兴趣入门深度学习,那浪星也算是功德一件了。

 

        介
绍完了深度学习的原理之后,我们再来讨论一下我们这个无人驾驶小车当中怎么使用深度学习技术。首先我们使用图片分类来做。因为我们的小车比较简单,只需要
左转,右转,直行和停止就行,速度是固定的。转弯也没有角度区分。所以使用最简单的图片分类来做就行了。如果我们把左转用标签0来表示,右转用标签1来表
示,直行用标签2来表示,停止用标签3来表示。那么首先我们得采集一些训练样本,然后给他们打上标签,就像下面这样:

        然
后使用一个开源的训练框架,tensorflow或者caffe,再选择一个开源的网络模型,然后就可以开始happy的训练了。训练完了之后,就可以开
始用了。拍一张照片给深度学习系统它就会返回来告诉你应该0(左转),还是1(右转),还是2(直行),还是3(停止)。吼吼,激动不激动。。。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信