[经验] 人脸识别、语音翻译、无人驾驶...这些高科技都离不开深度神经网络了!

[复制链接]
发表于 2018-5-11 11:43:14   693 查看 0 回复 显示全部楼层 倒序浏览
分享

                              


人工智能如今已渗入到生活中的各个方面。从引人关注的围棋、象棋对手,到手机支付、手机解锁中的人脸识别,都运用了人工智能。


围棋人工智能


人工智能具备很多人类的感知和识别能力,能自动完成一定的任务,例如识别声音、认出人脸和做出决策等等。

人工智能 AI


如何自动完成任务?以图像识别为例,在以前,我们会给计算机输入一系列规则让它推理(rule-basedreasoning),它采用特征点归类的方法来辨别图像,但这很难能准确地识别。


如果我们告诉计算机左边是萝卜,那它可能会以为右边的甜筒也是胡萝卜。

要想实现真正的人工智能,人们研究出了机器学习。

机器学习简单说就是,编写出一套算法,使计算机能“自动”地进行学习。我们不需要输入大量规则,只需用少量的规则建造一个模型,计算机就可以通过学习来创造新的数据,从而对新事物做出分析和判断。

通过学习左边的 1,可以判断出右边也是 1

之前我们示范过,如何用一个神经网络,写出一套机器学习算法,来自动识别未知的图像。


一个 4 层的神经网络

输入层经过几层算法得到输出层


实现机器学习的方法有很多,近年被人们讨论得多的方法就是深度学习。

深度学习是一种实现机器学习的技术,它是用深度神经网络来实现机器学习,网络深度比原始网络加深了数十甚至上百倍。

增强学习也可以达到机器学习的效果,感兴趣的小伙伴可以上网搜索,在此暂时没有推荐的书籍。


一个 34 层的深度神经网络


这种网络可以解决什么问题呢? 其中最热门的就是图像识别问题。

比如计算机拿到一些猫的照片后,可以识别出中华田园猫和其他种类的猫,然后分类。这种看似很废的用处,如果运用到医疗领域,比如分辨好的和病变的器官,或是目前大热的人脸识别,都将改变人类的生活。

人脸识别


从 2010 年开始,为了更好地发展图像识别技术,人们建立了图像数据库 ImageNet,甚至举办了基于数据库的识别大赛 ILSVRC,比比看谁的图像识别方法更好。


ImageNet 数据库


深度学习在比赛上得到了很好的成绩,因此受到更多人的重视并发展。在这之前,发展受限主要是因为芯片和显卡带不动(运算量实在太大了)。

旧的图像识别方法

无论在深度学习普及之前还是之后,对于图像处理大都是将图像转换成一个向量之后进行计算,从而进行分类。根本的问题就是,如何用一个高维的向量来表示一个图片。

表示方法有很多,比如采用提取图像的定向梯度直方图得到特征,并对所提取的特征进行处理。这样确保能尽量保留每一类物体图片的特征,从而区分出不同的图片。

然而,采用这种特征提取方法的计算机识别率并不高,错误率仍然接近 28%,比人类笨太多了。下面介绍几种深度学习的方法,它们使识别错误率极大地降低。

卷积神经网络:AlexNet

在 2012 年,深度学习第一次被运用到 ImageNet 比赛中。其效果非常显著, 错误率从前一年的 26% 直接降低到 16%。




那一年,夺冠的图像识别神经网络被称为 AlexNet,本质是卷积神经网络(ConvolutionalNeural Network)。


AlexNet 结构

卷积神经网络是一类采用卷积层,池化层和全连接层的神经网络它不去具体地查看每一个像素点之间的关系,而是对每一小块区域进行编码。

多层神经网络的编码复杂程度较高,所以分类的结果也比较准确。我们以识别字母 A 为例,简单地解释一下原理。


C:卷基层;S:池化层;F:全连接层


假设我们要编码 AINPUT的右下角,那被指向的 C1(第二个框)的点就代表了 A 被选出的区域。C1 一共有 6 张,每张的同一个位置都在编码这个区域。S2(第三个框)是池化层,对上一层(C1 )进行简化。C2 上有一个小框指向 S2,说明这块区被简化。S2 又被选出一块指向 C3(第四个框),表示这块区域在C3上被编码。


全连接层用几个数字表示一块区域。F6(右二)用 84 个数据来代表前面的 120 个数据,最后 OUTPUT 则为输出 10 个数据,这 10 个数据就代表了一开始的 A。(此处应有掌声!!!)

卷积相当于两个图像之间、像素点与像素点之间一一对应的乘法,再进行求和。

图形处理器-GPU(Graphics ProcessingUnit)


由于采用多层的神经网络,且每一层的结果都是一个高维的特征图像,所以计算量也相当大,在 AlexNet 中就需要确定 6 千万个参数来确定这个网络。

那么多的网络光靠 CPU 可能算不来,只能借助 GPU 来计算。GPU是什么呢?


GPU 工作原理

看不懂就掠过吧,不重要


CPU 只有 8 个可以计算的核,一次只能运行 8 个进程,而 GPU 中带有成百上千个核,一次可以进行成百上千次计算(也叫并行计算),可以确定网络和参数。

更深更精确的网络:GoogleNet 与 VGGNet

2014 年,又诞生了两种经典的深度神经网络,GoogleNet 和 VGGNet。他们都是基于卷积神经网络的深度神经网络,和 AlexNet 的基本原理基本一致。这两个网络除了深度不一样,自身也各有特色。

GoogleNet


网络参数量过多会导致训练时的效果好,但测试时的效果差(这也叫过拟合现象),GoogleNet 可以解决这个问题。它采用了“InceptionModule”卷积结构,可以得到一个稀疏的网络结构来缓解这种现象,提高测试时的准确率。

Inception Module


其总的架构如下图:

VGGNet


和 GoogleNet 不一样的是,VGGNet 采用了更传统的卷积神经网络,结构也比较简单。其卷积核全部采用了小卷积核,可以尽量减少参数的数量和计算量。

VGGNet


这两种网络都将错误率降低至 7.5% 以下,但是仍然和人类的错误率有一点差距。

理论上,在一定的深度范围内,网络越深,准确率就会越高(这点在 VGG 的论文中有实验的证明,文末附有相关阅读)。但若超出范围,即使网络再深下去,准确率也没有明显提高。那么,网络深度真的到头了么?

将网络深度发挥到极致:ResNet

事实证明并没有。2015 年,ILSVRC 中一个更深的网络诞生了——ResNet。

ResNet 的网络基本原理和卷积神经网络一样,但直接将原来最深 22 层的深度神经网络扩展到了 152 层。

ResNet-34 网络的卷积核基本都和 VGGNet 一样采用小卷积核,它最大的特点是用到了余项函数,在两层的卷积层之间有直接的神经网络连接。这样的好处是,当我们使用反向传播算法来计算卷积层变化率时,梯度变化不会减小到 0。

梯度也是偏微分,它越大就说明需要越大的力度优化网络,所以我们要不断地减小梯度,但若小到等于 0,它就相当于无效了。

ResNet 的诞生也得益于 GPU 的并行计算越来越先进,GPU 的显存从原来的 4G 级别扩展到了 12G 级别,可以完成更大的计算量。


一块先进的 GPU


ResNet 的图像识别错误率低至 3.6%,这是什么概念?这么说吧,人类测试的错误率是 5%,也就是人工智能比人类更智能了!

无监督学习的实例:GAN 网络

以上的深度学习方法都是监督学习,笼统地说,就是给计算机一些例子和答案,让它去学习。但有时,例子根本就没有答案,这就需要用到无监督学习了。最近比较受瞩目的是 GAN(生成对抗网络),它不属于图像识别,而是可以生成图像!

网络生成图像


一般别人只使用单个的深层神经网络,而 GAN 用了两个相互竞争的网络,互相通过零和游戏进行竞争,最后还会给出判定,如果一方胜利,那另一方就失败。


这两个网络如何出我们想要的图像呢?

假设我们要生成一个艺术风格的图像,这两个网络就可以看作是生成器和判别器。生成器的任务就是生成一个艺术的图像,判别器的任务就是判断这个图像到底艺不艺术。


生成器对比真实数据和生成数据


GAN 完成训练的标志就是,它无法相对于另一个网络取得进步(就是没办法画得更好了!)。完成得最理想的效果就是,判别器没办法区分出真实的数据和生成器产生的数据。



GAN 的对抗其实和人类很像。比如熊孩子在学写字,老师在旁边检查,那熊孩子就是生成器,老师就是判别器。如果有一天,老师再也挑不出熊孩子写字的毛病了,熊孩子就荣升乖孩子,写字训练就结束了。


上面为样本,下面为生成图

最终会被对比和判别


深度学习的运用

比较常见的深度学习应用就是图像识别。在监控领域,我们可以自动识别人脸和汽车,人脸识别也是用了深度学习之后才有较高的准确率。


监控识别


另一个应用就是机器翻译。传统的机器翻译是将语言规则提取出来,然后再人工去添加各种特征,永远无法覆盖所有的语言现象。比如,北方的机器翻译不出南方人的话。

近年来,各大翻译软件都用了深度学习技术,利用神经网络改进关键模块,通用性大大地增强,南北差异再也不是问题了!


◆◆◆


可以看出,深度学习不仅作用于图像,还可以延伸到更广的领域。

随着学界对深度学习研究越来越成熟,更深层且功能更强大的神经网络不断地被开发。并且,各种计算器件比如 CPU 和 GPU 在不断强化,甚至出现了更高效的器件比如 FPGA,相信未来,这项技术会带我们进入一个更智能的世界。



本期作者

新加坡南洋理工大学许悦聪

深圳职业技术学院 RoboMaster 战队顾问

没事爱造无人机,热爱机器学习的博士生

- 专业不枯燥,解读机器人信息 -


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
标签:神经网络

只有小组成员才能发言,加入小组>>

23个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

方案交易

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区