Nature文章《deep learning》文章翻译

news2024/11/25 14:55:50

这篇文章是对Nature上《deep learning》文章的翻译。原作者 Yann LeCun, Yoshua Bengio& Geoffrey Hinton。

这篇文章的中心思想是深入探讨深度学习在机器学习中的革命性贡献,重点介绍其在特征学习、监督学习、无监督学习等方面的突破,并阐述其在图像识别、语音识别、自然语言理解等领域的应用。

主要内容概述:

深度学习的背景和原理:

深度学习是特征学习的一种方法,允许计算模型通过多个处理层来学习数据的多层次抽象。深度学习模型由多个简单但非线性的模块组成,通过逐层转换输入,最终得到对数据更抽象的表示。
深度学习与传统机器学习的不同之处在于,它不需要手动设计特征提取器,而是通过数据学习特征,使其在解决复杂问题时非常有效。

深度学习的应用领域:

图像识别:深度卷积神经网络(ConvNets)在图像、视频等的处理上取得了重大突破,能够自动识别图像中的物体、区域等。
语音识别:深度神经网络同样在语音识别中取得了领先地位,尤其是在大词汇量的任务上表现卓越。
自然语言处理:深度学习在自然语言理解中取得了显著成果,如主题分类、情感分析、问答系统、机器翻译等。

监督与无监督学习:

监督学习是深度学习中最常见的形式,通过标记的训练数据来优化模型性能。
无监督学习虽然在深度学习复兴中起到了催化作用,但其效果在一定程度上被监督学习的成功所掩盖。不过,作者认为无监督学习在未来会更加重要,因为它更符合人类和动物通过观察学习的方式。
模型和算法的进展:

卷积神经网络(ConvNets)在计算机视觉任务中被广泛应用,尤其是在特征识别和合并相似特征的过程中非常有效。
循环神经网络(RNNs)和长短期记忆网络(LSTM) 在处理时间序列数据(如文本和语音)方面展现了优势。

未来展望:

文章指出,深度学习与复杂推理相结合的系统是人工智能发展的重要方向。尽管深度学习在语音和手写识别方面已有较长时间的应用,但未来需要新的范式来替代基于规则的符号操作。
分析与解释:
深度学习的优势在于它能够自动从数据中学习有效特征,从而避免了传统机器学习中手动设计特征提取器的繁琐工作。这种优势使其在复杂高维数据的处理上表现非常出色,例如在图像、文本、语音等领域。
多层次的特征表示使得深度学习能够通过逐层抽象,从原始输入中提取出有用的模式,逐步构建对数据的复杂理解。这一特性使得深度学习在分类、检测等任务上超越了传统模型。
未来的挑战和方向:作者强调深度学习未来将与复杂推理结合,以实现更为智能的系统。这意味着深度学习不仅仅是在特征提取和模式识别上的应用,更是朝向推理和决策的方向迈进,这将为人工智能领域带来更大的突破。

总体来说,这篇文章系统地介绍了深度学习的原理、现状和未来发展方向,强调了深度学习在多个领域中的变革性贡献以及其在人工智能中的广阔应用前景。

深度学习

深度学习允许由多个处理层组成的计算模型学习数据的多层次抽象表示。这些方法极大地改进了语音识别、视觉对象识别、目标检测等领域的最先进水平,以及药物发现和基因组学等其他许多领域。深度学习通过反向传播算法发现大型数据集中的复杂结构,指示机器如何改变其内部参数,这些参数用于从上一层的表示计算每一层的表示。深度卷积网络在图像、视频、语音和音频处理方面取得了突破,而递归网络则在文本和语音等序列数据上取得了显著进展。

机器学习技术推动了现代社会的许多方面:从网络搜索到社交网络上的内容过滤,再到电子商务网站上的推荐功能,它也越来越多地应用于相机和智能手机等消费产品。机器学习系统被用于识别图像中的物体,将语音转录为文本,将新闻、帖子或产品与用户的兴趣进行匹配,并选择相关的搜索结果。这些应用程序越来越多地使用一种称为深度学习的技术。

传统的机器学习技术在处理原始形式的自然数据方面存在局限性。几十年来,构建模式识别或机器学习系统需要精心的工程设计和相当的领域专业知识,以设计特征提取器,将原始数据(如图像的像素值)转换为合适的内部表示或特征向量,学习子系统(通常是分类器)才能够从中检测或分类输入中的模式。

特征学习是一种方法集合,能够使机器直接处理原始数据并自动发现用于检测或分类的特征。深度学习方法是一种具有多层特征的特征学习技术,通过组合多个简单但非线性的模块,将每一层的特征(从原始输入开始)转化为更高、更抽象的特征。经过足够多的这种转换,可以学习非常复杂的函数。在分类任务中,更高层次的特征放大了输入中对分类有帮助的部分,同时抑制了不相关的变化。例如,图像通常由像素值数组组成,第一层的学习特征通常检测图像中特定方向和位置的边缘。第二层则通过检测边缘的特定排列来识别基本图案,不受边缘位置轻微变化的影响。第三层可能将这些基本图案组合成更大的结构,对应于熟悉物体的部件,而后续层则将这些部件组合成完整的对象。深度学习的关键在于,这些特征层不是由人类工程师设计的,而是通过通用学习程序从数据中自动学习得到的。

深度学习在解决人工智能领域多年未能攻克的难题上取得了重大突破。它在发现高维数据中的复杂结构方面表现优异,因此广泛应用于科学、商业和政府等多个领域。除了在图像识别和语音识别方面打破记录之外,深度学习在预测潜在药物分子的活性、分析粒子加速器数据、重建大脑回路,以及预测非编码DNA突变对基因表达和疾病的影响等方面,也超越了其他机器学习技术。更令人惊讶的是,深度学习在自然语言理解方面也取得了极具前景的成果,尤其是在主题分类、情感分析、问答和语言翻译等任务中。

我们认为,深度学习在不久的将来会取得更多的成功,因为它几乎不需要过多的人工干预,因此它可以充分利用高速的计算能力和庞大的数据量,从而更有效地训练模型并提高其性能。目前正在开发的新型学习算法和深度神经网络架构将进一步加速这一进展。

一、监督学习

最常见的机器学习形式,无论是否是深度学习,都是监督学习。想象我们想要构建一个系统,能够对图像进行分类,比如识别图像中包含房子、汽车、人物或宠物。首先,我们收集大量的房子、汽车、人和宠物的图像数据集,每张图像都有对应的标签。在训练过程中,机器会被展示一张图像,并输出一个分数向量,每个类别对应一个分数。我们希望目标类别的分数在所有类别中最高,但在训练之前这通常不会发生。我们计算一个目标函数,衡量输出分数与期望分数模式之间的误差(或距离)。机器随后会调整其内部的可调参数以减少这一误差。这些可调参数通常称为“权重”,它们是实数,可以看作定义机器输入-输出功能的“旋钮”。在一个典型的深度学习系统中,可能有数亿个这样的可调权重,以及数亿个带标签的样本用于训练机器。

为了正确调整权重向量,学习算法会计算一个梯度向量,该向量为每个权重指示当权重增加微小值时,误差会增加还是减少。然后,权重向量根据梯度向量的反方向进行调整。

目标函数在所有训练样本上取平均后,可以看作是权重值高维空间中的一种起伏的地形。负梯度向量表示在这个地形中最快下降的方向,使其逐渐靠近一个最小值,即平均输出误差较小的地方。

实际上,大多数从业者会使用一种叫做随机梯度下降(SGD)的算法。该方法的过程是:给定一些样本的输入向量,计算它们的输出和误差,然后计算这些样本的平均梯度,并据此调整权重。这个过程会针对训练集中许多小批量样本重复,直到目标函数的平均值不再下降。之所以称为‘随机’,是因为每个小批量样本集合只能对整体平均梯度进行一次近似估计,这个估计包含了随机噪声。与那些复杂的优化技术相比,这种简单的方法通常能在相对较短的时间内找到一组不错的权重。训练完成后,系统的性能会在一个称为测试集的不同样本集上进行评估,以此来测试模型的泛化能力——也就是它在未见过的新输入上给出合理答案的能力。

目前许多机器学习的实际应用中,都会在人工设计的特征之上使用线性分类器。一个二分类的线性分类器会计算特征向量各组件的加权和。如果加权和超过某个阈值,则将输入分类为某个特定类别。

自20世纪60年代起,我们已经知道线性分类器只能将输入空间划分为非常简单的区域,即由超平面分隔的半空间。然而,图像和语音识别等问题要求输入-输出函数对输入中的不相关变化不敏感,例如物体的位置、方向或光照的变化,或者语音的音高或口音变化,同时对特定的细微差异非常敏感(例如,区分白狼和一种叫萨摩耶的类似狼的白色犬种之间的差异)。在像素级别上,两只萨摩耶在不同姿势和不同环境下的图像可能彼此差异很大,而一只萨摩耶和一只狼在相同姿势和类似背景下的图像可能非常相似。线性分类器或任何其他基于原始像素的“浅层”分类器无法区分后者,而可能将前者归为同一类。这就是为什么浅层分类器需要一个良好的特征提取器来解决选择性和不变性的问题——这个特征提取器能够提取对分类重要的图像特征,同时对诸如动物姿势等不相关的特征保持不变。为了增强分类器的能力,可以使用通用的非线性特征,比如核方法中的特征,但像高斯核这样的通用特征无法使学习器在训练样本之外实现良好的泛化。传统的做法是手工设计良好的特征提取器,这需要相当多的工程技能和领域专业知识。然而,如果可以通过通用学习程序自动学习到良好的特征,那么这些繁杂的手工工作就可以避免。这正是深度学习的关键优势。

深度学习架构是由多层简单模块堆叠而成的,这些模块中的全部(或大部分)都可以进行学习,许多模块负责计算非线性的输入-输出映射。堆叠中的每个模块都会对输入进行转换,以增加表示的选择性和不变性。通过多个非线性层,例如5到20层深度,一个系统能够实现对输入数据的极其复杂的函数处理,既对细微的差异敏感(例如区分萨摩耶犬和白狼),又对大的不相关变化保持不敏感,如背景、姿势、光照和周围物体的变化。

二、使用反向传播训练多层架构

从模式识别的早期开始,研究人员的目标一直是用可训练的多层网络来取代人工提取的特征,尽管这种解决方案相对简单,但直到20世纪80年代中期才被广泛理解。事实证明,多层架构可以通过简单的随机梯度下降进行训练。只要各模块对其输入和内部权重是相对平滑的函数,就可以通过反向传播过程来计算梯度。这种方法及其有效性在20世纪70年代和80年代被多个研究团队独立发现。

反向传播算法用于计算目标函数相对于多层网络中各模块权重的梯度,本质上就是链式求导法则的实际应用。关键在于,目标函数对某一模块输入的导数(或梯度)可以通过从该模块的输出(或后续模块的输入)开始反向推导获得。反向传播方程可以反复应用,从输出层(网络生成预测的地方)逐层传播梯度直到输入层(外部输入被馈入的地方)。一旦这些梯度计算完成,就可以很容易地得到各模块权重的梯度。

图1:多层神经网络与反向传播:

在这里插入图片描述

a,一个多层神经网络(图中由连接点表示)可以扭曲输入空间,使得数据类别(例如红色和蓝色的实线)在变换后的空间中线性可分。注意左侧输入空间中的规则网格是如何经过变换的(如中间面板所示),包含10个隐藏单元。这是一个简单的示例,只有两个输入单元、两个隐藏单元和一个输出单元,但用于对象识别或自然语言处理的网络通常包含数百甚至数千个单元。图片经C. Olah许可转载(http://colah.github.io/)。

b,链式求导法则告诉我们两个小的效果(x的变化对y的影响,y的变化对z的影响)如何组成。一个小的变化Δx首先通过乘以∂y/∂x(即偏导数的定义),变为y中的一个小变化Δy。同样,变化Δy在z中引起变化Δz。将一个方程代入另一个中,可以得到链式求导法则,即如何通过∂y/∂x和∂z/∂y的乘积将Δx变为Δz。这对于x、y、z为向量(偏导数为雅可比矩阵)时同样适用。

c,用于计算具有两个隐藏层和一个输出层的神经网络的前向传播方程,每一层都构成一个模块,通过这些模块可以反向传播梯度。在每一层,我们首先计算每个单元的总输入z,这是上一层各单元输出的加权和。然后对z应用一个非线性函数f(z)来得到该单元的输出。为了简化,我们省略了偏置项。神经网络中使用的非线性函数包括近年来广泛使用的修正线性单元(ReLU),f(z) = max(0, z),以及更传统的S型函数,例如双曲正切函数f(z) = (exp(z) - exp(-z)) / (exp(z) + exp(-z))和逻辑回归函数f(z) = 1 / (1 + exp(-z))。

d,用于计算反向传播的方程。在每个隐藏单元,我们计算误差导数,相对于每个单元的输出,这个值是上一层各单元输入的误差导数的加权和。然后,我们通过将输出相对于输入的误差导数乘以f(z)的梯度,将其转换为相对于输入的误差导数。在输出层,单元输出相对于输入的误差导数通过对损失函数求导得到。如果损失函数为1/2 * (y₁ - t₁)²,则y₁ - t₁,其中t₁为目标值。一旦∂E/∂zₖ已知,单元j和上一层单元i之间的权重wⱼₖ的误差导数仅为yⱼ∂E/∂zₖ。

图2 卷积神经网络内部结构。

在这里插入图片描述

图中展示了一个典型卷积网络结构的各层输出(横向排列),该网络被应用于识别一张萨摩耶犬的图片(左下角),输入图像是RGB通道(红、绿、蓝,右下角)。每个矩形图像代表一个特征图,用于显示网络在每个图像位置检测到的某种学习到的特征。信息在网络中自下而上流动,较低层的特征起到方向边缘检测器的作用,而在输出层会为每个图像类别计算一个得分。ReLU代表修正线性单元。

深度学习的许多应用使用前馈神经网络架构(图1),这种架构用于将固定大小的输入(例如图像)映射到固定大小的输出(例如多个类别的概率)。为了从一层传递到下一层,一组单元会计算上一层输入的加权和,并将结果通过一个非线性函数传递。目前,最流行的非线性函数是修正线性单元(ReLU),其定义为 f ( z ) = m a x ⁡ ( 0 , z ) f(z)=max⁡(0,z) f(z)=max(0,z),即简单的半波整流函数。在过去的几十年里,神经网络通常使用更平滑的非线性函数,例如 t a n h ⁡ ( z ) tanh⁡(z) tanh(z) 1 / ( 1 + e x p ⁡ ( − z ) 1/(1+exp⁡(−z) 1/(1+exp(z),但在拥有多层的网络中,ReLU通常学习速度更快,这使得无需无监督预训练也能直接训练一个深度监督网络。输入层和输出层之间的单元通常称为隐藏单元。隐藏层可以被视为以一种非线性方式扭曲输入,使得在最后一层中各类别能够线性可分(图1)。

在20世纪90年代末,神经网络和反向传播在机器学习领域被广泛放弃,在计算机视觉和语音识别领域也被忽视。人们普遍认为,在几乎没有先验知识的情况下,学习有用的、多阶段的特征提取器是不可行的。特别是,通常认为简单的梯度下降会陷入不良的局部极小值——即一种权重配置,在这种情况下,即使进行微小的调整也无法减少平均误差。

实际上,对于大型神经网络来说,不良的局部极小值几乎不是问题。无论初始条件如何,系统几乎总是能够收敛到质量非常相近的解。最近的理论和实验结果强烈表明,局部极小值通常不会造成严重影响。相反,损失函数的曲面中充满了大量鞍点(即梯度为零的位置),这些位置在大多数维度上曲面向上弯曲,而在少数维度上则向下弯曲。

这种预训练方法的第一个重要应用出现在语音识别领域,并得益于快速图形处理单元(GPU)的发展。GPU的便捷编程使研究人员能够将网络训练速度提升10到20倍。2009年,这一方法被用于将声音波形的短时间窗口映射为一组概率值,以识别该窗口中心帧可能对应的语音片段。该方法在小词汇量的标准语音识别基准测试中取得了突破性成绩,随后也被快速应用于大词汇量任务中,并取得了显著的成果。

到2012年,2009年开发的深度网络已被许多主要语音团队采用,并应用于安卓手机中。对于小数据集,无监督预训练可以有效防止过拟合,使得在标注样本较少的情况下,模型具备更好的泛化能力;在迁移学习场景中(即有大量“源”任务样本但“目标”任务样本较少时),预训练同样表现出色。随着深度学习技术的不断完善,人们发现预训练阶段仅在小数据集上是必需的。

然而,有一种特殊类型的深度前馈网络训练起来更容易,而且在泛化性能上也远优于各层之间具有完全连接的网络。这种网络就是卷积神经网络(ConvNet)。在神经网络不被看好的时期,卷积神经网络取得了许多实际应用的成功,并且最近已被计算机视觉领域广泛采用。

三、卷积神经网络

卷积神经网络(ConvNets)专为处理多维数组数据而设计。例如,一个彩色图像可以表示为三个二维数组,每个数组包含一个颜色通道的像素强度值。不同类型的数据可以以不同维度的数组形式存在:一维数组用于信号和序列数据(如语言);二维数组用于图像或音频频谱图;三维数组用于视频或体积图像。ConvNets 基于四个核心概念来充分利用自然信号的特性:局部连接、共享权重、池化操作和多层结构。

典型的卷积神经网络(ConvNet)结构由多个阶段组成,前几阶段包括卷积层和池化层两类。卷积层中的单元以特征图的形式组织,每个单元通过称为滤波器组的权重集合连接到上一层特征图的局部区域,生成的局部加权和经过非线性函数(如 ReLU)处理。同一特征图中的所有单元共享同一组滤波器,而不同的特征图使用不同的滤波器组。

这种结构设计有两个主要原因:首先,在图像等数组数据中,局部区域的数值通常高度相关,形成易于检测的独特模式;其次,图像的局部统计特征对位置具有不变性,即一种模式可以出现在图像的任意位置。因此,在不同位置的单元共享相同权重,以便在整个数组中检测相同的模式。从数学上讲,这种特征图的过滤操作是离散卷积,由此得名。

尽管卷积层的主要作用是检测前一层特征的局部连接,但池化层的目的是将语义上相似的特征合并为一个。由于组成特征模式的相对位置可能会有所不同,因此可以通过对每个特征的位置进行粗略采样来实现稳定的模式检测。典型的池化单元会计算特征图(或多个特征图)中局部区域的最大值。相邻的池化单元从稍有偏移的区域中获取输入,从而降低表示的维度,并对小范围的平移和变形具有不变性。通常,ConvNet 会堆叠两到三个卷积、非线性激活和池化的阶段,接着再加入更多的卷积层和全连接层。通过 ConvNet 进行梯度反向传播的过程与普通深度网络一样简单,使得所有滤波器组中的权重都能被训练。

深度神经网络利用了自然信号的分层结构特性,即高级特征可以由低级特征逐步组合而成。在图像处理中,边缘的局部组合形成基本图案,图案再组合成物体的不同部分,最终组成完整的对象。在语音和文本中,这种层级结构也存在:声音逐步组合成音素、音节、单词和句子。池化层通过减少对前一层中元素位置和外观变化的敏感性,使网络的表示更稳定。

卷积神经网络(ConvNet)中的卷积层和池化层直接借鉴了视觉神经科学中的简单细胞和复杂细胞的经典概念,其整体结构也类似于人类视觉皮层中的层级结构(从视网膜到初级视觉皮层再到高级视觉区域的逐层处理)。当 ConvNet 模型和猴子同时观看同一张图片时,ConvNet 中高级单元的激活能够解释猴子大脑视觉皮层中160个神经元反应变化的一半。ConvNet 的灵感来源于早期的神经网络模型“Neocognitron”,该模型的结构与 ConvNet 类似,但缺乏像反向传播这样端到端的监督学习算法。最早的一维卷积网络(称为时延神经网络)被用来识别语音中的音素和简单词汇。

卷积神经网络的应用可以追溯到20世纪90年代初,最早用于基于时延神经网络的语音识别和文档阅读系统。该文档阅读系统结合了卷积网络和一种带有语言约束的概率模型进行训练。到90年代末,这一系统已能够读取全美超过10%的支票。后来,微软也开发了基于卷积网络的光学字符识别和手写识别系统。此外,卷积网络在90年代初还被用于自然图像中的物体检测实验,包括人脸和手部检测,以及人脸识别等应用。

重要的是,图像可以在像素级别进行标注,这将在技术领域中有广泛应用,包括自主移动机器人和自动驾驶汽车。Mobileye 和 NVIDIA 等公司正在其即将推出的汽车视觉系统中使用基于卷积神经网络(ConvNet)的方法。其他日益重要的应用包括自然语言理解和语音识别。

尽管卷积神经网络(ConvNets)早期取得了一些成功,但在 2012 年 ImageNet 竞赛之前,主流的计算机视觉和机器学习领域对其关注较少。2012 年,深度卷积网络被应用于一个包含约 100 万张网络图像的数据集,这些图像涵盖了 1000 种不同类别。结果表明,卷积神经网络的表现非常出色,将当时最佳方法的错误率几乎减半。这一突破得益于高效的 GPU 使用、ReLU 激活函数、新的正则化技术(称为 dropout),以及通过变形已有数据生成更多训练样本的方法。这次成功引发了计算机视觉领域的革命;卷积神经网络现已成为几乎所有识别和检测任务的主流方法,并在某些任务上接近人类的表现。最近,卷积神经网络和循环神经网络模块的结合实现了一项令人瞩目的应用:为图像生成文字描述。(图3)

图3:

在这里插入图片描述

图 3 |从图像到文本。递归神经网络(RNN)通过接收深度卷积神经网络(CNN)从测试图像中提取的高层次特征表示,生成图像的文字描述(顶部)。当 RNN 在生成每个词时能够关注图像中的不同区域(中部和底部,亮色区域表示关注较多的部分),我们发现这一机制帮助 RNN 更好地将图像“翻译”成文字描述。当递归神经网络(RNN)在生成每个词时,能够将注意力聚焦于输入图像的不同区域(如中部和底部,亮色区域表示关注较多的部分)时,我们发现这种机制可以帮助 RNN 更准确地将图像“翻译”为文字描述。

最新的卷积神经网络(ConvNet)架构包含 10 到 20 层 ReLU 激活层、数亿个权重参数,以及节点间数十亿的连接。两年前,训练如此庞大的网络可能需要数周时间,而随着硬件、软件和算法并行化的进步,现在只需数小时即可完成训练。

卷积神经网络(ConvNet)视觉系统的出色表现,促使 Google、Facebook、Microsoft、IBM、Yahoo、Twitter、Adobe 等大型科技公司,以及众多快速发展的初创公司,纷纷开展相关研发项目,并部署基于 ConvNet 的图像理解产品和服务。

卷积神经网络(ConvNets)非常适合在芯片或现场可编程门阵列(FPGA)中实现高效的硬件部署。NVIDIA、Mobileye、Intel、Qualcomm 和 Samsung 等公司正在研发专用的 ConvNet 芯片,以支持智能手机、相机、机器人和自动驾驶汽车中的实时视觉应用。

四、分布式特征和语言处理

深度学习理论表明,深度网络相比不使用分布式表示的传统学习算法,在两个方面具有指数级的优势。这些优势都源于组合的强大能力,并且依赖于具有适当组件结构的数据生成分布。首先,分布式表示能够泛化到新的特征组合,而这些组合在训练过程中未曾出现过(例如,具有 n 个二进制特征时可能产生 2 n 2^n 2n 种组合)。其次,通过在深度网络中堆叠表示层,深度的增加带来了另一种指数级的优势(即深度上的指数级增长)。多层神经网络的隐藏层学习以一种便于预测目标输出的方式来表示网络的输入。这一过程可以通过训练多层神经网络来预测句子中下一个词的示例很好地说明。每个上下文中的词以“独热编码”(one-of-N vector)形式呈现给网络,即一个分量为1,其他分量为0。在网络的第一层,每个词都会产生一个不同模式的激励或者词向量。在语言模型中,网络的其他层会将输入的词向量转化为预测词的输出词向量,该词向量可以用于计算词汇表中每个词作为下一个词的概率。网络学习到的词向量包含多个活跃的分量,每个分量可以解释为该词的一个特征,这种分布式特征最早被用于符号的分布式特征学习中。这些语义特征在输入中并未清晰的呈现。它们在学习过程中作为一种将输入和输出符号的结构关系分解为多个“微观规则”的方法被发现。当词序列来自大规模真实文本语料库时,词向量效果尤为出色,尽管其中的“微规则”并不总是可靠。例如,当网络被训练来预测新闻报道中的下一个词时,“Tuesday”和“Wednesday”的词向量非常相似,与“Sweden”和“Norway”的词向量相似。这样的表征被称为“分布式表示”,因为这些特征(即向量的元素)之间不互相排斥,其多种配置反映了数据中的变化。这些词向量由网络自动学习得出,而不是依靠专家手动设定。通过文本学习的词向量在自然语言应用中被广泛使用。

在认知研究中,表征问题是逻辑驱动范式与神经网络驱动范式争论的核心。在逻辑驱动的范式中,符号的实例唯一的属性是与其他符号实例相同或不同,其内部结构对使用没有影响。为了进行符号推理,需要将符号绑定到精心选择的变量上,并依据推理规则进行操作。相比之下,神经网络通过使用大型活动向量、大规模权重矩阵以及标量非线性函数,来实现快速的“直觉式”推理,从而支持流畅的常识性推理。

在引入神经语言模型之前,语言的统计建模标准方法并未利用分布式表示,而是基于对长度为 N 的短符号序列(称为 N-grams)出现频率的统计。可能的 N-grams 数量约为 V N V^N VN,其中 V是词汇量,因此要考虑超过几个单词的上下文需要非常大的训练语料库。N-grams 将每个词视为独立的单元,因此无法在语义相关的词序列之间实现泛化,而神经语言模型可以做到这一点,因为它们将每个词与一个实值特征向量关联,语义相关的词在该向量空间中会靠得更近(如图 4 所示)。

图4:

在这里插入图片描述

五、循环神经网络

当反向传播首次被引入时,其最令人兴奋的用途是训练循环神经网络(RNNs)。对于涉及序列输入的任务,例如语音和语言,通常更适合使用RNNs(图5)。RNNs逐个元素地处理输入序列,在其隐藏单元中维持一个“状态向量”,该向量隐含地包含了所有过去序列元素的历史信息。当我们将隐藏单元在不同时间步的输出视为深度多层网络中不同神经元的输出(图5,右侧)时,就可以清楚地看到如何应用反向传播来训练RNNs。

RNNs 是非常强大的动态系统,但训练它们存在问题,因为反向传播的梯度在每个时间步要么增长要么缩小,因此经过许多时间步后,它们通常会爆炸或消失。

得益于循环神经网络(RNN)在架构和训练方法上的进步,它们不仅在预测文本中的下一个字符或词汇方面表现出色,还能够处理更复杂的任务,例如机器翻译。以英语到法语的翻译为例,RNN 采用一种被称为"编码器-解码器"的结构。首先,编码器会逐个读取英语句子中的单词,并将句子的信息压缩成一个状态向量,可以理解为对整个句子含义的“记忆”。然后,这个状态向量被传递给解码器,解码器通过它来生成法语翻译。解码器的工作方式是一次生成一个词,每次生成的词会被用作输入,帮助预测下一个词的概率,直到句子完整生成。这种逐步生成词汇的方式使得翻译变得更加自然,而不是依赖固定的翻译规则。尽管这种方法看似简单,但其效果与更复杂的传统方法相当,甚至更好。这也让人们开始质疑,是否真的需要传统的符号推理规则来理解和翻译句子。这种基于概率的翻译方式更符合我们日常推理的特点:通过多个独立的类比逐步得出合理的结论。

与其将法语句子的意思翻译成英语句子,可以学习将图像的含义“翻译”成英语句子(图3)。这里的编码器是一个深度卷积神经网络(ConvNet),它将像素转换为最后一个隐藏层中的活动向量。解码器则是一个类似于用于机器翻译和神经语言建模的RNN。最近,这类系统受到了广泛关注。

RNNs在时间上展开后(图5),可以被看作是一个非常深的前馈网络,其中所有层共享相同的权重。虽然它们的主要目的是学习长期依赖关系,但理论和实验证据表明,RNN很难长时间存储信息。

为了解决 RNN 无法长时间存储信息的问题,一种方法是为网络添加显式的记忆机制。这类方法的首个提案是长短期记忆网络(LSTM),它使用了一种特殊的隐藏单元,其特点是能够长时间记住输入。LSTM 中的一个特殊单元叫做记忆细胞,它的作用类似于累加器或带门控的“漏泄”神经元:它在下一时间步与自身相连,这个自连接的权重为 1,因此它能够复制自身的实数状态并累积外部信号。不过,这种自连接会被另一个学习单元进行乘性门控,该单元负责学习何时清除记忆单元中的内容。

LSTM 网络后来被证明比传统的 RNN 更为有效,特别是在每个时间步都有多层的情况下,这使得整个语音识别系统可以从声学特征到转录中的字符序列全面工作。LSTM 网络或其他形式的门控单元也被广泛用于编码器和解码器网络中,这些网络在机器翻译方面表现得非常出色。

在过去的一年中,许多研究者提出了不同的方案来为 RNN 增加记忆模块。这些提案包括神经图灵机(Neural Turing Machine),它通过一个“磁带式”记忆来扩展网络,使 RNN 可以选择读取或写入数据;还有记忆网络,其中通过一种关联记忆来增强常规网络的能力。记忆网络在标准问答基准测试中表现出色,其记忆模块用于记住故事的内容,以便网络在回答问题时使用这些记忆。

不仅仅是简单的记忆,神经图灵机和记忆网络还被用于需要推理和符号操作的任务。神经图灵机可以被教导“算法”,例如它们可以在输入是一个未排序的符号序列(每个符号伴随一个表示其在列表中的优先级的实数值)时,学习输出一个排序后的符号列表。记忆网络可以在类似于文本冒险游戏的环境中,被训练来跟踪世界状态。在阅读故事后,它们可以回答需要复杂推理的问题。例如,在一个测试中,网络被给定一段包含 15 句的《指环王》的简短版本,之后能够正确回答类似“弗罗多现在在哪?”的问题。

六、深度学习的未来

无监督学习在重新激发人们对深度学习的兴趣方面起到了催化作用,但后来被纯监督学习的成功所掩盖。尽管我们在本次综述中没有重点关注无监督学习,但我们预计从长期来看,无监督学习的重要性将会显著增加。人类和动物的学习过程在很大程度上是无监督的:我们通过观察来发现世界的结构,而不是被告知每个物体的名字。

人类视觉是一个主动过程,它以一种智能、任务导向的方式连续采样视野,使用小的高分辨率中央凹与大的低分辨率外围相结合。我们预计,视觉领域未来的进展很大程度上会来自于那些端到端训练的系统,这些系统将卷积神经网络(ConvNets)和循环神经网络(RNNs)结合起来,并通过强化学习来决定应该看向哪里。结合深度学习和强化学习的系统目前还处于初期阶段,但它们已经在分类任务中超越了被动视觉系统,并且在学习玩许多不同的视频游戏方面展现了显著的成果。

自然语言理解是深度学习在未来几年内有望产生重大影响的另一个领域。我们预计,使用 RNNs 来理解句子或整篇文档的系统,将在学习逐步关注某个部分的策略后变得更为有效。最终,人工智能的重大进展将通过将表示学习与复杂推理相结合的系统实现。虽然深度学习和简单推理在语音和手写识别中已经应用多年,但仍然需要新的范式,用操作大型向量的方法来替代基于规则的符号表达式操作。

来理解句子或整篇文档的系统,将在学习逐步关注某个部分的策略后变得更为有效。最终,人工智能的重大进展将通过将表示学习与复杂推理相结合的系统实现。虽然深度学习和简单推理在语音和手写识别中已经应用多年,但仍然需要新的范式,用操作大型向量的方法来替代基于规则的符号表达式操作。

最终,人工智能的重大进展将来自将表示学习与复杂推理相结合的系统。尽管深度学习和简单推理已经在语音和手写识别领域应用了很长时间,但仍然需要新的范式,以用大型向量操作来替代基于规则的符号表达式操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2232386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务实战系列之玩转Docker(十六)

导览 前言Q:基于容器云如何实现高可用的配置中心一、etcd入门1. 简介2. 特点 二、etcd实践1. 安装etcd镜像2. 创建etcd集群2.1 etcd-node12.2 etcd-node22.3 etcd-node3 3. 启动etcd集群 结语系列回顾 前言 Docker,一个宠儿,一个云原生领域的…

Rust 力扣 - 1423. 可获得的最大点数

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 题目所求结果存在下述等式 可获得的最大点数 所有卡牌的点数之和 - 长度为(卡牌数量 - k)的窗口的点数之和的最小值 我们遍历长度为(卡牌数量 - k)的窗口&#…

flink 内存配置(二):设置TaskManager内存

TaskManager在Flink中运行用户代码。根据需要配置内存使用,可以极大地减少Flink的资源占用,提高作业的稳定性。 注意下面的讲解适用于TaskManager 1.10之后的版本。与JobManager进程的内存模型相比,TaskManager内存组件具有类似但更复杂的结构…

配置DDNS结合光猫路由器实现外网映射

配置ddns结合光猫路由器实现外网映射 一、实现思路 首先需要去获取一个动态域名(文章不再赘述,重点去介绍具体实现),用作后面与与公网绑定。然后需要在光猫和路由器上去做配置,同时确保路由器有公网IP,最…

如何在BSV区块链上实现可验证AI

​​发表时间:2024年10月2日 nChain的顶尖专家们已经找到并成功测试了一种方法:通过区块链技术来验证AI(人工智能)系统的输出结果。这种方法可以确保AI模型既按照规范运行,避免严重错误,遵守诸如公平、透明…

华为HarmonyOS打造开放、合规的广告生态 - 激励广告

场景介绍 激励广告是一种全屏幕的视频广告,用户可以选择点击观看,以换取相应奖励。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告,通过AdRequestPar…

easyui +vue v-slot 注意事项

https://www.jeasyui.com/demo-vue/main/index.php?pluginDataGrid&themematerial-teal&dirltr&pitemCheckBox%20Selection&sortasc 接口说明 <template><div><h2>Checkbox Selection</h2><DataGrid :data"data" style&…

unity搭建场景学习

unity搭建场景学习 创建场景创建gameobject创建材质&#xff0c;用于给gameobject上色拖拽材质球上色上色原理设置多个材质方式设置贴图的方式 效果设置光滑度一些预览设置菜单渲染模型与碰撞模型网格渲染参数1. materials(材质)2. lighting(光照)3. reflection probes(反射探针…

软件加密与授权管理:构建安全高效的软件使用体系

“软件加密与授权管理&#xff1a;构建安全高效的软件使用体系”是一个全面且深入的议题&#xff0c;以下是对该议题的详细探讨&#xff1a; 一、软件加密的概念与重要性 软件加密是指为软件添加保护措施&#xff0c;以防止其被盗版或非法复制。这一技术站在软件开发者的角度&a…

【VScode】中文版ChatGPT编程工具-CodeMoss!教程+示例+快捷键

文章目录 1. 多模型选择2. 编辑快捷键3. 历史记录收藏 CodeMoss使用教程1. 安装CodeMoss插件2. 配置AI模型3. 使用快捷键4. 进行代码优化与解释5. 收藏历史记录 总结与展望 在当今快速发展的编程世界中&#xff0c;开发者们面临着越来越多的挑战。如何提高编程效率&#xff0c;…

宝塔Linux面板安装PHP扩展失败报wget: unable to resolve host address ‘download.bt.cn’

一、问题&#xff1a; 当使用宝塔面板安装PHP扩展失败出现如下错误时 Resolving download.bt.cn(download.bt.cn)...failed: Connection timed out. wget: unable toresolve host address download.bt.cn’ 二、解决&#xff1a; 第一步&#xff1a;如下命令执行拿到返回的I…

Scrapy源码解析:DownloadHandlers设计与解析

1、源码解析 代码路径&#xff1a;scrapy/core/downloader/__init__.py 详细代码解析&#xff0c;请看代码注释 """Download handlers for different schemes"""import logging from typing import TYPE_CHECKING, Any, Callable, Dict, Gener…

【C++】对左值引用右值引用的深入理解(右值引用与移动语义)

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 天高地阔&#xff0c;欲往观之。 ​ 目录 前言&#xff1a;对引用的底层理解 一、左值与右值 提问&#xff1a;左值在左&#xff0c;右值在右&#xff1f;…

docker下迁移elasticsearch的问题与解决方案

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 docker下迁移elasticsearch的问题与解决方案 数据挂载报错解决权限问题节点故障 直接上图&#x…

1.3 初探OpenCV贡献库

OpenCV贡献库&#xff08;opencv_contrib&#xff09;是OpenCV的一个扩展库&#xff0c;由社区开发&#xff0c;包含更多视觉应用和受专利保护的算法。它提供最新研究算法、扩展功能和社区支持。可以通过pip安装或手动编译。

太空旅游:科技能否让星辰大海变为现实?

内容概要 在这个快速变化的时代&#xff0c;太空旅游成为了一个让人热血沸腾的话题。想象一下&#xff0c;坐在一颗漂浮的太空舱里&#xff0c;手中端着饮料&#xff0c;眺望着无尽的星辰大海&#xff0c;简直就像科幻电影中的情节一样。不过&#xff0c;这不仅仅是一个空洞的…

智能提醒助理系列-jdk8升级到21,springboot2.3升级到3.3【性能篇】

本系列文章记录“智能提醒助理”产品建设历程&#xff0c;记录实践经验、巩固知识点、锻炼总结能力。 本篇介绍技术栈升级后的切换方案以及性能提升。 一、需求出发点 智能提醒小程序 当前使用的是jdk8&#xff0c;springboot2.3,升级到jdk21和springboot3.3 学习新知识的同时…

ROS2入门学习——ROS在机器人中的运行

一、入门级基础平台TurtleBot TurtleBot 是 ROS 中重要且资源丰富的机器人之一&#xff0c;特别适合入门级机器人爱好者提供基础平台。用户可以直接利用其自带的软硬件&#xff0c;专注于应用程序的开发。TurtleBot 随着 ROS 的发展&#xff0c;一直处于开发前沿。 TurtleBot…

cuda、pytorch-gpu安装踩坑!!!

前提&#xff1a;已经安装了acanoda cuda11.6下载 直接搜索cuda11.6 acanoda操作 python版本3.9 conda create -n pytorch python3.9conda activate pytorch安装Pytorch-gpu版本等包 要使用pip安装&#xff0c;cu116cuda11.6版本 pip install torch1.13.1cu116 torchvi…

二分法查找(c基础)

二分法查找一个有序数组中是否有某个数 大家看了可以自己写一下 &#xff08; 要用知识点 数组 while循环 scanf 函数 printf函数 &#xff09; //用二分法查找 #include<stdio.h> int main() {char arr[] { 1,2,3,4,5,6,7,8,9,10 };int sz sizeof(arr) / size…