机器学习深度学习·神经网络·计算机视觉我是程序员

关于神经网络,你需要了解这些(二)

2018-08-06  本文已影响74人  阿里云云栖号

摘要: 对神经网络概念还很朦胧?来看看阿里技术大牛的分享!

关于神经网络,你需要了解这些(一)

本文的第1部分中,我们简要概述了神经网络和深度学习。特别是,我们讨论了感知机模型、前馈神经网络和反向传播。在本节中,我们将深入学习神经网络其他的相关知识,特别是卷积神经网络(CNN)和递归神经网络(RNN)。

5.深度学习基础

从20世纪90年代到2006年发展的第二个低谷期,之后神经网络再次进入群众视角,这次影响力比以前更大。神经网络兴起期间的一个重大事件是Hinton包括Salahundinov在内在多个学术论坛提交的多层神经网络(现在称为“深度学习”)的论文。

其中一个论文解决了为神经网络设置初始化值的问题。简单来说,解决方案是将输入值视为x,将输出值视为解码x,然后通过此方法找到更好的初始化点。另一篇论文提出了一种快速训练深度神经网络的方法。实际上,有许多因素促成了神经网络的普及,例如,计算资源的巨大增长和数据的可用性。在20世纪80年代,由于缺乏数据和计算资源,很难训练大规模的神经网络。

神经网络的早期兴起是由三个巨人驱动的,即Hinton,Bengio和LeCun。Hinton的主要成就是Restricted Boltzmann Machine和Deep Autoencoder,Bengio的主要贡献是使用元模型进行深度学习的一系列突破。这也是深度学习取得重大突破的第一个领域:

2013年,基于元模型的语言建模已经能够胜过当时最有效的方法 -概率模型。LeCun的主要成就是与CNN有关的研究。深度学习在NIPS、ICML、CVPR、ACL等一些重要的峰会上,吸引了不少关注。其中包括Google Brain,Deep Mind和Facebook AI的出现,这些都将他们的研究中心放在深度学习领域。

深度学习进入爆发期后的第一个突破是在语音识别领域。在我们开始使用深度学习之前,所有的模型都是在先前定义的统计数据库上进行的。2010年,微软使用深度学习神经网络进行语音识别,我们从下图中可以看出,两个错误指标都下降了2/3,这是一个明显的改善。基于最新的ResNet技术,微软已将该指标降至6.9%,并逐年实现了改进提升。

在图像分类领域,CNN模型在2012年经历了ImageNet形式的重大突破。在ImageNet中,图像分类使用海量数据集进行测试,然后分类为1000种类型。在应用深度学习之前,由于Hinton和他的学生在2012年使用CNN所做的工作,图像分类系统的最佳错误率为25.8%(2011年),仅降低了10%。

从图中我们可以看出,自2012年以来,该指标每年都经历了重大突破,所有这些突破都是使用CNN模型实现的。

这些巨大的成就在很大程度上归功于现代系统的多层结构,因为它们允许独立学习和通过分层抽象结构表达数据的能力。抽象的特征可以应用于各种任务,对深度学习的当前流行做出了重大贡献。

接下来,我们将介绍两种经典和常见类型的深度学习神经网络:一种是卷积神经网络(CNN),另一种是递归神经网络(RNN)。

卷积神经网络

卷积神经网络有两个核心概念。一个是卷积,另一个是池化(pooling)。在这一点上,有些人可能会问我们为什么不简单地使用前馈神经网络而选择CNN。例如,以1000x1000图像为例,神经网络在隐藏层上将拥有100万个节点。那么,前馈神经网络将具有10 ^ 12个参数。在这一点上,系统几乎不可能学习,因为它需要绝对大量的估算。

但是,大量图像具有这样的特征:如果我们使用CNN对图像进行分类,那么由于卷积的概念,隐藏层上的每个节点只需要连接并扫描图像的一个位置的特征。如果隐藏层上的每个节点连接到10 * 10个估算,则最终参数数量为1亿,如果可以共享多个隐藏层访问的本地参数,则参数数量会显着减少。

看下图,前馈神经网络和CNN之间的区别显然很大。图像中的模型从左到右依次为完全连接、正常、前馈、完全连接的前馈和CNN建模神经网络。我们可以看到,可以共享CNN神经网络隐藏层上节点的连接权重参数。

另一个操作是池化。CNN将在卷积原理的基础上在中间形成隐藏层,即池化层。最常见的池化方法是Max Pooling,其中隐藏层上的节点选择最大输出值。因为多个内核正在池化,所以我们在中间获得了多个隐藏层节点。

有什么好处?首先,池化进一步减少了参数的数量,其次,它提供了一定量的平移不变性。如图所示,如果图像中显示的九个节点之一要经历转换,则在池化层上生成的节点将保持不变。

CNN的这两个特性使其在图像处理领域中流行,并且已成为图像处理领域的标准。下面的可视化汽车的例子是CNN在图像分类领域中应用的一个很好的例子。在将汽车的原始图像输入CNN模型后,我们可以通过卷积和ReLU激活层传递一些简单粗糙的特征,如边缘和点。我们可以直观地看到它们距离最上面的输出层的输出图像越近,它们越接近汽车的轮廓。此过程将最终检索隐藏的图层表示并将其连接到分类图层,之后它将接收图像的分类,如图像中显示的汽车、卡车、飞机、船舶和马。

下图是LeCun和其他研究人员在早期手写识别领域使用的神经网络。该网络在20世纪90年代在美国邮政系统中得到应用,有兴趣的读者可以登录LeCun的网站查看手写识别的动态过程。

虽然CNN在图像识别领域已经变得非常受欢迎,但它在过去两年中也成为文本识别的工具。例如,CNN是目前文本分类最佳解决方案的基础。在确定一段文本的类别方面,所有人真正需要做的是从文本中的关键词中寻找指示,这是一项非常适合CNN模型的任务。

CNN具有广泛的实际应用,例如在调查、自动驾驶汽车、分段和神经风格中。神经风格是一个不错的应用程序。例如,App Store中有一个名为Prisma的流行应用程序,它允许用户上传图像并将其转换为不同的样式。例如,它可以转换为Van Goh的Starry Night风格,这个过程在很大程度上依赖于CNN。

递归神经网络

至于递归神经网络背后的基本原理,我们可以从下图中看到,这种网络的输出不仅依赖于输出x,还依赖于隐藏层的状态,隐藏层的状态根据先前的输入x进行更新。展开的图像显示了整个过程,来自第一个输入的隐藏层是S(t-1),它影响下一个输入X(t)。递归神经网络模型的主要优点是我们可以在顺序数据操作中使用它,如文本,语言和语音,其中当前数据的状态受先前数据状态的影响,使用前馈神经网络很难处理这种类型的数据。

说到递归神经网络,我们不能提出我们前面提到的LSTM模型。LSTM实际上并不是一个完整的神经网络,简而言之,它是RNN节点经过复杂处理的结果。LSTM具有三个门,即输入门,遗忘门和输出门。

这些门中的每一个用于处理单元中的数据并确定单元中的数据是否应该被输入,遗忘或输出。

最后,我们来谈谈神经网络的跨学科应用,这种应用正在获得广泛认可。该应用程序涉及将图像转换为图像的文本描述或描述它的标题,我们可以首先使用CNN模型来描述具体的实现过程,以提取有关图像的信息并生成矢量表示。稍后,我们可以将该向量作为输入传递给已经训练过的递归神经网络,以产生图像的描述。

总结

在本文中,我们讨论了神经网络的发展,并介绍了该领域的几个基本概念和方法。上述文章基于孙飞博士在年度阿里云计算大会上发表的演讲。他目前正在致力于研究推荐系统和文本生成方法。

本文作者:【方向】

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

上一篇 下一篇

猜你喜欢

热点阅读