为了吊一下您的胃口,让我们先看看DNN技术的3个实际用途。通过研究这些应用,你将会认识到DNN在各个领域的巨大潜力。在阅读本节时,问自己下面这个问题:

“我怎样使用这些世界级学者创造的DNN思想来解决我感兴趣的问题呢?”

说明

一个最早的分层神经系统是日本东京NHK广播科学研究实验室在20世纪70年代后期开发的Neocognitron51。这是一个视觉模式识别的神经网络。虽然这是一个很大的突破,但是这项技术几十年来一直处于学术研究领域。

(此处已添加圈子卡片,请到今日头条客户端查看)

欢迎加入程序员读书会,每日分享IT好书,不定期送书活动

 增强雾天的可视性

假设你正在去参加一个重要会议的途中。你需要开车穿过城镇中一条三千米长的主街道。你的老板已经警告你不要迟到。再迟到一次,你的职位就不保了!

幸好,你刚好能准时赶到,路上没有出现交通拥堵情况!但是当你转到大街上时,一层厚厚的浓雾笼罩了你。如果慢下来,你会迟到;如果不慢下来,你有可能会到得更晚!

图4.2显示了有雾和无雾情况下能见度的巨大差异。我想我们都同意这样的观点——即使是在空旷的道路上,视觉导航在模糊的环境中也要困难得多。

起因和传统解决方案

事实证明,由于雾、霾和霭等大气颗粒对光的吸收或散射,在雾天行驶时,场景可视性和对比度会比较低,这严重地降低了能见度。能见度的降低会大大降低驾驶员对车辆的判断能力,在人的远程感知系统中产生错误的感知,因此可见性预测和增强具有相当实用的价值。

通常,除雾算法需要一张没有雾的相同场景的图像52,或者在有雾图像中有像车道标识或者交通标志这样提供距离信息的显著物体53。

 

深度神经网络的3种使用方式_神经网络

 

 

图4.2 雾对视觉的影响(图片来自 Hussain 和Jeong 见附注 54)

DNN突破性进展

汉阳大学Jechang Jeong教授和计算机工程学生Farhan Hussain开发了一种深度神经网络方法,实时去除图像中的雾气,这对于不可见的图像是很有效的。他们采用的方法十分有趣,他们认为:

“图像中的雾可以通过未知的复杂函数进行数学模拟,我们利用深度神经网络来近似相应的雾的数学模型。”

他们利用深度神经网络生成了雾合成的近似模型。他们算法的细节在图4.3中给出。下面研究人员所说的方法的核心潜在优势:

“我们的技术优点如下:它的实时操作和基于最小的输入,即单个图像,以及对各种不可见图像数据所展现的鲁棒性和泛化。”

 

深度神经网络的3种使用方式_神经网络_02

 

 

图4.3 Jeong 和Hussain的除雾DNN算法

(图片来自 Hussain and Jeong 参见附注 54)

出色的结果

事实证明,由这两位开发的DNN甚至可以很好地消除不可见图像中的雾。如图4.4所示,顶部图像(见图4.4a)显示了没有雾的原始场景,(中间图像(见图4.4b)是雾景,底部图像(见图4.4c)使用DNN去雾的图像。

Hussain和Jeong总结到:

“对各种合成图像进行的实验表明,我们提出的技术有能力合理地近似相应的雾函数,并将其去除以获得更好的可视性和安全性……这里提出的方法是健壮的,因为它对大量看不见的模糊图像生成了很好的结果。”

 

深度神经网络的3种使用方式_神经网络_03

 

 

图4.4 Jeong和Hussain的去雾DNN算法的图像样本

(图片由 Hussain和Jeong提供,参见附注54)

4.3.2 打击黑客犯罪

恶意软件,如木马、蠕虫病毒、间谍软件和僵尸网络,是指可以关闭计算机的恶意软件。从有互联网用户起,刑事犯罪网络就已经在利用这些软件获取非法利益。

一位在公益组织工作的朋友最近发现他的计算机完全被这种恶意软件关闭了。不仅他个人不能访问关键的软件文件,还被执行这一攻击的罪犯勒索大量的“赎金”来解锁计算机系统。你可能也经历过类似的事情。

幸好我的朋友有备份,不用支付赎金。但是恶意软件耗费了他很多时间,也让他很担心,并用了几天时间来焦急地恢复文件。这种攻击不仅影响个人开展合法的业务,还影响到企业甚至国家政府。虽然人们已经采取了许多方法来而遏制这种恶性活动,但它依然十分猖獗。

深度学习解决方案

来自Invincea Labs, LLC55 的Joshua Saxe和Konstantin Berlin使用深度神经网络来帮助识别恶意软件56。DNN体系结构由一个输入层、两个隐藏层和一个输出层组成。输入层有1024个输入特征,每一个隐藏层有1024个神经元。

Joshua和Konstantin使用来自客户和内部恶意软件库的超过400 000个软件二进制文件测试了他们的模型。

可喜的结果

好消息是,他们的DNN检测率达到了95%,假阳性率为0.1%。哇!但是真正令人惊喜的是,他们通过直接学习二进制文件就获得了这样的结果,没有经过任何过滤、解包或者手动对二进制文件分类。这真是太惊人了。

怎样才能解释他们获得如此巨大的成果呢?研究人员观察到:

“神经网络也有几个特性,能使其很好地用于恶意软件检测。首先,神经网络允许增量学习,因此,不但可以进行批量训练,而且收集了新的训练数据后,可以对其进行有效地再训练(即使是按照每小时或每天)。其次,它们允许我们通过预训练单层来组合标记的和没有标记的数据。最后,分类器是很小巧灵便的,所以使用很小的内存便能快速地完成预测。”

你应该记住这一段内容,当你的老板问你深度学习是什么的时候把这些展示给他。商业、研究和生活中唯一重要的事情是——结果。Joshua和Konstantin总结到:

“我们的研究结果表明,目前快速训练和部署一个低资源、高度准确的机器学习分类模型是可行的。假阳性率接近传统的基于大量人工标注的方法,同时也能检测到以前没见过的恶意软件。”

这就是为什么深度学习对你和你老板都重要!

 不可思议的缩略图

我童年的时候看过一部名为《不可思议的收缩人》的电影,讲述的是一个叫Scott的年轻人,他暴露在了大量有毒的放射性垃圾中。这是相当不幸的,当时Scott正在他的船上钓鱼,享受他轻松的一天。

然而,几天后他并没有毙命,如果是你我的话,就肯定活不成了。剧作家用了一点艺术表现的手法。这种暴露异常地扰乱了可怜的Scott的生物系统。几天后,Scott开始萎缩。我这里说的萎缩不仅是说他的胳膊、腿或者脑袋,因为那样就变成一个怪物了。Scott的整个身体等比例缩小了,他变成了不可思议的收缩人。

最终,他变得如此之小,以至于他的妻子让他住进了洋娃娃的屋子。我敢肯定,Scott当时肯定过得不开心,换作你也是一样。我已经不太记得电影是怎么结束的,但我记得的最后一幕是,面包渣大小的小Scott挥舞着一根钢制的缝纫针在绝望地对抗一只恶毒的蜘蛛!

图像压缩

虽然科学家还没有完全解决如何使活着的人类变小的问题,但Jeong和Hussain已经想出如何使用深度神经网络来压缩图像57。图4.5展示了他们的DNN。

 

深度神经网络的3种使用方式_神经网络_04

 

 

图4.5 Jeong和Hussain的图像压缩DNN(图片来自 Hussain和Jeong,参见附注57)

我们注意到模型由两部分组成——编码器和解码器。这是因为图像压缩包括两个阶段:第一个阶段是压缩图像,第二个阶段是解压并恢复原图像。输入层和输出层神经元的个数与待压缩的图像的大小对应。压缩是通过在最后的隐藏层指定一组比原始输入属性集合要小的神经元来实现的。

选择哪一个激活函数

研究人员将他们的想法应用于多个测试图像,并尝试了各种压缩比。他们使用了线性整流(ReLu)激活函数。线性整流函数用在隐藏层的激活函数上,因为:

“得到更好的网络泛化,并减少实际的压缩—解压时间。”

Jeong和Hussin也使用了sigmoid激活函数来运行模型。

测试图像上的性能表现

图4.6显示了3幅不同图像的结果。原始图像显示在顶部,用线性整流函数和sigmoid函数压缩和重构的图像分别显示在中间和底部。研究人员观察到:

 

深度神经网络的3种使用方式_神经网络_05

 

 

深度神经网络的3种使用方式_神经网络_06

 

 

深度神经网络的3种使用方式_神经网络_07

 

 

图4.6 Jeong和Hussain的图像压缩DNN得出的图像结果

(图片来自Hussain和Jeong,参见附注57)

“我们推荐的DNN能很好地学习压缩/解压功能。”

我非常赞同。这有没有给你什么启发?