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

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

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

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

5.深度学习基础

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

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

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

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

ae6d0c574478f5c87fe13e859224e1bf6c2804cb

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

549877ccaa0d8064adeabba13119a246f0fde7ff

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

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

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

ce203764d1c630a39bb01b50dac385c3c26a97bd

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

卷积神经网络

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

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

c1eeea748233ec7e49ddb2ef2e78eded1f5443b8

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

f3a9508dcbcf5f121161470a141749566099c2d0

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

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

6314bb2e210f11dfc8b067be5add4531628736b1

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

ce13f0b9ff371b3dc90bbb360a7db588cef530b1

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

f3f57fec75b39fc3512ed8d792ea4cb53e07430f

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

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

递归神经网络

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

75a9344a442f8e74866b1fd84c89a4403f5eea6a

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

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

1631323f291138e23a2904bbee8138ae2f2acfb26

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

82ce450463c23ef98a8bd4c26cdc563c7f4fea71

总结

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

 数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由阿里云云栖社区组织翻译。

文章原标题《all-you-need-to-know-about-neural-networks-part-2》,

作者:Leona Zhang 译者:虎说八道,审校:。

文章为简译,更为详细的内容,请查看原文

相关文章
|
机器学习/深度学习 网络架构
神经网络4
与单层神经网络不同。理论证明,两层神经网络可以无限逼近任意连续函数。 这是什么意思呢?也就是说,面对复杂的非线性分类任务,两层(带一个隐藏层)神经网络可以分类的很好。 下面就是一个例子(此两图来自colah的博客),红色的线与蓝色的线代表数据。而红色区域和蓝色区域代表由神经网络划开的区域,两者的分界线就是决策分界。 可以看到,这个两层神经网络的决策分界是非常平滑的曲线,而且分类的很好。有趣的是,前面已经学到过,单层网络只能做线性分类任务。而两层神经网络中的后一层也是线性分类层,应该只能做线性分类任务。为什么两个线性分类任务结合就可以做非线性分类任务? 我们可以把输出层的决策分界单独拿出来看一下
70 0
|
5月前
|
机器学习/深度学习 存储 算法
简单的神经网络
softmax激活函数将多个未归一化的值转换为概率分布,常用于多分类问题。交叉熵损失函数,特别是与softmax结合时,是评估分类模型性能的关键,尤其适用于多分类任务。它衡量模型预测概率与实际标签之间的差异。在PyTorch中,`nn.CrossEntropyLoss`函数结合了LogSoftmax和负对数似然损失,用于计算损失并进行反向传播。通过`loss.backward()`,模型参数的梯度被计算出来,然后用优化器如`SGD`更新这些参数以减小损失。
|
5月前
|
机器学习/深度学习
什么是神经网络?
神经网络是一种深度学习方法,源自人类大脑生物神经网络的概念。它由大量相互连接的人工神经元(也称为节点或单元)组成,每个神经元接收输入,进行简单处理后生成输出,并将结果传递给下一层的神经元。
65 2
|
5月前
|
机器学习/深度学习 算法 数据可视化
感知机和神经网络
**神经网络**是模仿生物神经元结构的数学模型,用于处理复杂关系和模式识别。它由输入层、隐藏层(可能多层)和输出层组成,其中隐藏层负责信息处理。随着层数增加(深度学习),网络能处理更多信息。基本模型包括感知机,仅输入和输出层,用于线性划分;而**BP神经网络**有多个隐藏层,通过反向传播和梯度下降优化参数,避免局部最小值。训练过程中,神经元通过激励函数响应并调整权重,以提高预测准确性。
|
5月前
|
机器学习/深度学习 算法 PyTorch
神经网络反向传播算法
神经网络中的反向传播算法是用于训练的关键步骤,通过计算损失函数梯度更新权重。它始于前向传播,即输入数据通过网络得出预测输出,接着计算预测与实际值的误差。反向传播利用链式法则从输出层开始逐层计算误差,更新每一层的权重和偏置。例如,一个包含隐藏层的网络,初始权重随机设定,通过反向传播计算损失函数梯度,如sigmoid激活函数的网络,调整权重以减小预测误差。在Python的PyTorch框架中,可以使用`nn.Linear`定义层,`optimizer`进行参数优化,通过`backward()`计算梯度,`step()`更新参数。
|
5月前
|
机器学习/深度学习 算法 语音技术
神经网络
【6月更文挑战第14天】神经网络。
43 3
|
机器学习/深度学习 算法 PyTorch
神经网络知识蒸馏
翻译:《Distilling the knowledge in a neural network》
|
机器学习/深度学习 算法 自动驾驶
神经网络5
4.训练 下面简单介绍一下两层神经网络的训练。 在Rosenblat提出的感知器模型中,模型中的参数可以被训练,但是使用的方法较为简单,并没有使用目前机器学习中通用的方法,这导致其扩展性与适用性非常有限。从两层神经网络开始,神经网络的研究人员开始使用机器学习相关的技术进行神经网络的训练。例如用大量的数据(1000-10000左右),使用算法进行优化等等,从而使得模型训练可以获得性能与数据利用上的双重优势。 机器学习模型训练的目的,就是使得参数尽可能的与真实的模型逼近。具体做法是这样的。首先给所有参数赋上随机值。我们使用这些随机生成的参数值,来预测训练数据中的样本。样本的预测目标为yp,真实目标
81 0
|
机器学习/深度学习 自然语言处理 算法
简单了解神经网络
神经网络是一种强大的机器学习算法,具有很广泛的应用,可以用于图像识别、语音识别、自然语言处理、推荐系统等多个领域。
99 0
|
机器学习/深度学习 算法
连载|神经网络(上)
连载|神经网络(上)