首页 > 最新资讯 > CNN与RNN有什么不同?
CNN与RNN有什么不同?

CNN与RNN有什么不同?

2018-10-15 12:32

#深度学习 #CNN #RNN


 

1982年由David Hasselhoff主演的热播美剧《霹雳游侠》可谓有先见之明,剧中有一辆充满未来感的“庞蒂亚克火鸟”汽车。这辆会说话的自动驾驶汽车也以好莱坞的方式生动地为我们上了一节关于图像和语言识别的课。

 

 

如果是今天重写剧本,Hasselhoff的AI汽车KITT将会具有从卷积神经网络CNN递归神经网络(RNN进行深度学习的功能,方便观察、聆听和对话。

 

这是因为CNN如同眼睛一样,正是目前机器用来识别对象的图像处理器。相应地,RNN则是用于解析语言模式的数学引擎,就像耳朵和嘴巴。

 

从上世纪 80 年代,CNN迎来快速发展,已成为当今自动驾驶汽车、石油勘探和聚变能研究领域的“眼睛”。在医学成像方面,它们可以帮助更快地发现疾病并挽救生命。

 

如今,数十亿人也在不知不觉中享受着CNN带来的便利:在Facebook上发布朋友的照片,使用自动标记姓名的功能,同时也让自己的社交活动变得更加顺畅。

 

如果将CNN从火鸟汽车上去掉,“火鸟”便不再拥有自主驾驶的电脑眼,那么它就会沦落为另一个毫无二致的动作道具。

 

另一方面,如果将RNN从自动驾驶“火鸟”座驾上剥离,就会失去智能电脑声音,以及KITT的法语和西班牙语命令。

 

毫无疑问,RNN正在加速基于语音的计算革命。它们是自然语言处理大脑,可为Amazon Alexa、Google Assistant和Apple Siri提供听力和语音。它们为Google的自动完成功能提供预见性,可以自行填写搜索查询中的行。

                                             

回到未来

 

如今CNN和RNN使得这种自动驾驶汽车已不再只是好莱坞式的幻想。汽车制造商正在快马加鞭开发未来的KITT型汽车。

 

当今的自动驾驶汽车甚至可以在上路之前进行模拟测试。这样,开发人员即可测试并验证车辆的眼睛能否以“超人”的感知力来洞悉世界。

 

得益于CNN和RNN,各种AI驱动的机器都具备了像我们眼睛和耳朵一样的能力。经过在深度神经网络领域数十年的发展,以及在处理海量数据的GPU高性能计算方面的长足进步,大部分AI应用都已成为可能。

 

CNN简史

 

早在自动驾驶汽车出现之前,人类大脑神经元之间的生物联系就启迪着研究一般性人工神经网络的研究员。CNN的研究员遵循了同样的思路。

 

1998年,CNN迎来了一个开创性的时刻。那一年,Yann LeCun及LéonBottou、Yoshua Bengio和Patrick Haffner 共同发表了一篇具有影响力的论文《基于梯度的学习技术应用于文档识别》(Gradient-based Learning Applied to Document Recognition)。

 

文中描述了学习算法如何帮助用最少的预处理对手写字母中的模式进行分类。其研究在读取银行支票的精度方面打破了历史记录,而且这项技术现在已得到了广泛的商业应用。

 

它为AI的未来点燃了希望。作为该论文的首席研究员,LeCun于2003年成为纽约大学的教授,并于2018年以首席AI科学家的身份加入Facebook。

 

下一个突破性的时刻是2012年,多伦多大学的研究员Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton发表了一篇开创性的论文《深度卷积神经网络的 ImageNet 分类》(ImageNet Classification with Deep Convolutional Neural Networks)。

 

这项研究推动了对象识别技术的发展。该三人小组训练了一个深度卷积神经网络,对来自“ImageNet 大规模视觉识别挑战赛”的120万张图像进行分类,其错误率得到了空前降低。

 

这也引发了今天的 AI 热潮。

 

CNN解读:

 

狗还是小马?

 

下面是一个图像识别角色的例子。人类在看到大丹犬时,知道尽管它体型很大,但它仍然是一条狗。计算机则只看数据。那么计算机如何知道这是一条大丹犬而不是小马?由于像素的数值表示可以通过CNN的多个层进行处理。许多大丹犬的特征可以通过这种方式识别出来,最终得出这是一条狗的答案。

 

现在让我们来深入探查CNN,从更多的技术层面了解它的本质。

 

CNN由输入层(例如由像素数表示的图像)、一个或多个隐含层以及输出层构成。

 

这些数学运算层会帮助计算机一次一点点地定义图像细节,并最终(可能性很大)识别特定对象、动物或其他任何目标。不过,失误经常在所难免,尤其是在训练初期。

 

卷积层:

 

在数学中,卷积是一种分组函数。就CNN而言,卷积发生在两个矩阵(以列和行排列的矩形数组)之间,它可以形成第三个矩阵作为输出。

 

CNN在卷积层中使用这些卷积来筛选输入数据并查找信息。

 

在CNN中,卷积层将完成大部分计算繁重的工作。它起着数学过滤器的作用,帮助计算机查找图像边缘、明暗区、颜色及其他细节(例如高度、宽度和深度)。

 

通常,一张图像上会应用多种卷积层过滤器。

 

  • 池化层:池化层通常夹在卷积层之间。它们将用于缩减卷积层所创建的表示的大小,同时减少内存需求,从而实现更多的卷积层。

     

  • 归一化层:归一化是一项用于改进神经网络性能和稳定性的技术。它通过将所有输入都转换为均值为0且方差为1,从而使每个层的输入更便于管理。可以将其视为数据的规范化调整。

     

  • 全连接层:全连接层用于将一层中的各个神经元连接到另一层中的所有神经元。

 

有关更深入的技术说明,可参阅NVIDIA开发者网站上的 CNN 页面。

 

CNN非常适合计算机视觉应用,但在提供足够数据的情况下,还可将其用于视频、语音、音乐和文本等多个领域。

 

 

CNN可以在这些隐含层中使用一系列过滤器(或神经元),从而优化图像识别效率。CNN 被称为“前馈”神经网络,因为信息是从一层馈送至下一层。

 

另一方面,RNN与传统人工神经网络和CNN共用大部分相同的架构,不同之处在于RNN具有可用作反馈环路的存储器。就像人类大脑一样(尤其是在谈话时),侧重点被放在了信息的新近度上,以求对后面的话做出预测。

 

因此,RNN适合预测一系列单词的后续内容。此外,RNN还可馈入不同长度的数据序列,而CNN则采用固定的输入数据。

 

RNN简史

 

RNN也诞生于20世纪80年代。1982年,John Hopfield发明了Hopfield网络,即RNN的雏形。

 

而RNN所使用的所谓长短期记忆 (LSTM) 网络则是由Sepp Hochreiter和Jürgen Schmidhuber于1997年发明的。2007年前后,LSTM在语音识别方面取得了飞跃式发展。

 

2009年,RNN在手写模式识别大赛中获胜。2014年,百度搜索引擎突破了Switchboard Hub5’00语音识别标准,堪称新的里程碑。

 

RNN解读

 

午餐吃什么?

 

RNN是一个带有活动数据存储器的神经网络。它可以应用于一系列数据,帮助猜测接下来会发生什么。

 

借助RNN,有些层的输出会被反馈给前一层的输入,从而构成反馈环路。

 

以下是一个简单RNN的典型例子。自助餐厅对每周同一天供应的菜品有严格的时间表,RNN的目的是追踪供应主菜的日期。不妨设想如下:周一为汉堡,周二为炸玉米饼,周三为披萨,周四为寿司,周五则为意大利面。

 

对于RNN而言,如果将“寿司”(输出)反馈至网络以确定周五的菜品,那么RNN就会知道序列中的下一个主菜是意大利面(因为它知道会有一个顺序,而周四的菜品刚刚完成,因此接下来就应该是周五的菜品)。

 

另一个示例是句子:我刚跑了10公里,需要来一杯____。人类可以根据过去的经验来猜想如何填空。得益于RNN的记忆功能,它可以预测接下来会发生什么,因为它对类似这样以“水”结束的句子已有足够的训练记忆,完全可以做出解答。

 

RNN的应用不仅限于自然语言处理和语音识别。它们还可用于语言翻译、股票预测和算法交易。

 

现在人们在用的神经图灵机 (NTM) 也是可以访问外部存储器的RNN。

 

最后一点,所谓的双向RNN其实是获取一个输入向量并在两个RNN上进行训练。其中一个在常规RNN输入序列上接受训练,而另一个则逆序接受训练。接下来,两个RNN的输出会进行连结或组合。

 

如今,CNN和RNN已经让应用程序、网络和机器远远超越了视觉和语音能力。没有这两个AI主力军,我们的机器就会无聊之至。

相关新闻