卷积神经网络的经典论文

摘要:深度学习允许具有多个处理层的计算模型学习具有多个抽象级别的数据的表示。这些方法在许多方面带来了显著的改进,包括最先进的语音识别、视觉对象识别、对象检测等许多领域,如药物发现和基因组学。深度学习可以发现大数据中的复杂结构。它使用BP算法来完成这个发现过程。BP算法可以指导机器如何从上一层获取误差,改变这一层的内部参数,用于计算和表示。深度卷积网络在处理图像、视频、语音、音频等方面带来了突破,而递归网络在处理文本、语音等序列数据方面展现了闪亮的一面。

机器学习技术已经在现代社会的各个方面显示出强大的功能:从网页搜索到社交网络内容过滤,再到电子商务网站上的产品推荐。它越来越多地出现在消费品中,如相机和智能手机。

机器学习系统用于识别图片中的目标,将语音转换为文本,匹配新闻元素,根据用户的兴趣提供工作或产品,并选择相关的搜索结果。渐渐地,这些应用使用了一种叫做深度学习的技术。传统的机器学习技术在处理未经处理的数据时能力有限。几十年来,如果你想建立一个模式识别系统或机器学习系统,你需要一个复杂的引擎和相当专业的知识来设计一个特征提取器,它将原始数据(如图像的像素值)转换成一个合适的内部特征表示或特征向量。子学习系统,通常是分类器,检测或分类输入样本。特征表示学习是用原始数据填充机器,然后自动找到需要检测和分类的表达式的一套方法。深度学习是一种特征学习方法,通过一些简单但非线性的模型,将原始数据转化为更高级、更抽象的表达。通过足够多的变换组合,也可以学习非常复杂的函数。对于分类任务,高层表达可以加强输入数据的判别能力,同时弱化无关因素。比如图像的原始格式是像素阵列,那么第一层的学习特征的表达通常是指图像的特定位置和方向是否有边缘。第二层通常根据那些边缘的一些发射来检测图案,此时它忽略一些边缘的一些小干扰。第三层可以组合这些模式,使它们对应于熟悉的目标的某个部分。随后的层将重新组合这些部分以形成待检测的目标。深度学习的核心方面是,以上各层的特征不是人工工程设计的,而是利用一般的学习过程从数据中学习的。

深度学习正在取得巨大的进步,解决了人工智能界努力多年却没有进展的问题。事实证明,它能够善于发现高维数据中的复杂结构,因此可以应用于科学、商业和政府。除了在图像识别和语音识别领域打破记录,它还在其他领域击败了其他机器学习技术,包括预测潜在药物分子的活性,分析粒子加速器数据,重建大脑回路,预测非编码DNA的突变对基因表达和疾病的影响。也许更令人惊讶的是,深度学习在自然语言理解的各种任务中产生了非常可喜的成果,尤其是话题分类、情感分析、自动问答和语言翻译。我们相信在不久的将来,深度学习会取得更多的成功,因为它几乎不需要人工工程,并且它可以很容易地受益于可用计算能力和数据量的增加。目前正在为深度神经网络开发的新学习算法和架构只会加速这一过程。

监督学习

机器学习最常见的形式,无论深度与否,都是监督学习。想象一下,我们需要建立一个系统,可以对包含房子、汽车、人或宠物的图像进行分类。我们首先收集大量的房屋、汽车、人和宠物的图像数据集,并为每个对象标注其类别。在训练过程中,机器会拍一张照片,然后产生一个输出,以向量的形式表示为分数,每个类别都有这样一个向量。我们希望所需类别在所有类别中得分最高,但在培训前不太可能出现这种情况。输出分数和预期模式分数之间的误差(或距离)可以通过计算目标函数来获得。然后,机器将修改其内部可调参数,以减少这种误差。这些可调参数通常称为权重,是实数,可以视为“旋钮”,定义了机器的输入和输出功能。在一个典型的深度学习系统中,可能有数百万个样本、权重和标记样本用于训练机器。为了正确地调整权重向量,学习算法计算每个权重的梯度向量,指示如果权重增加少量,误差将增加或减少的量。然后在梯度向量的相反方向上调整权重向量。我们的目标函数,所有训练样本的平均值,可以看作是权重的高维空间中的一个多变的地形。负梯度向量表示在这个地形中下降方向最快,使其更接近最小值,也就是平均输出误差最低的地方。

在实际应用中,大多数从业者使用一种叫做随机梯度下降(SGD)的算法。它包括提供一些输入向量样本,计算输出和与误差,计算这些样本的平均梯度,然后相应地调整权重。通过提供一个小样本集来训练网络,重复这个过程,直到目标函数停止增长。之所以称之为随机,是因为小样本集将对所有样本的平均梯度进行噪声估计。这个简单的过程通常会找到一组很好的权重,与其他设计良好的优化技术相比,其速度是惊人的。训练结束后,系统会通过不同的数据样本——测试集来展现系统的性能。这是用来测试机器的泛化能力——对未训练新样本的识别能力。

目前,许多应用中的机器学习技术使用线性分类器对人工提取的特征进行分类。第二类线性分类器将计算特征向量的加权和。当加权和超过阈值时,输入样本将被分配到特定类别。从20世纪60年代开始,我们就知道线性分类器只能将样本划分成非常简单的区域,也就是说,空间被一个超平面分成两部分。

但对于图像、语音识别等问题,他们所需要的输入输出函数不应该对输入样本中无关因素的变化过于敏感,比如位置的变化、目标的方向或光照,或者说话时语气或语调的变化,而应该对一些特定的微小变化非常敏感(比如白狼和类似于狼-萨摩耶犬的白狗的区别)。在像素层面,两只萨摩耶犬在不同姿势、不同环境下的图像可以说是天壤之别。但是,一只萨摩耶犬和一只狼在同一个位置,在相似的背景下的两个图像可能非常相似。

图1多层神经网络和BP算法

多层神经网络(用连接点表示)可以整合输入空间,使数据(用红蓝线表示的样本)可以线性分离。请注意输入空间(左侧)中的规则网格是如何被隐藏层转换的(转换后的网格在右侧)。在这个例子中,只使用了两个输入节点、两个隐藏节点和一个输出节点,但是用于目标识别或自然语言处理的网络通常包含几十或几百个这样的节点。C Olah和三星正在开发卷积神经网络芯片,以使智能手机、相机、机器人和自动驾驶汽车中的实时视觉系统成为可能。

分布式特征表示和语言处理

与不使用分布式表示的经典学习算法相比,深度学习理论表明深度网络具有两个不同的巨大优势。这些优势来自于网络中每个节点的权重,依赖于底层生成数据的合理结构分布。首先,学习分布式特征表示可以一般化,以适应新学习的特征值的组合(例如n元特征有2n种可能的组合)。其次,深度网络中的组合表示层带来了另一个指数级的优势潜力(指数级深度)。

多层神经网络中的隐含层利用网络中的数据输入进行特征学习,更容易预测目标输出。下面是一个很好的演示例子,比如以局部文本的内容作为输入,训练多层神经网络来预测句子中的下一个单词。内容中的每个词在网络中表示为1/n的向量,也就是说每个分量中有一个值是1,其余的都是零。在第一层,每个单词创建一个不同的激活状态,或单词向量(如图4所示)。在语言模型中,网络中的其余层通过学习将输入词向量转化为输出词向量来预测句子中的下一个词,可以预测词汇中的词作为文本句子中的下一个词出现的概率。网络学习包含许多活动节点的词向量,可以解释为词的独立特征,就像第一次演示文本学习文本符号的分层表示一样。这些语义特征在输入中没有被清楚地表示。而是利用“‘微规则’”在学习的过程中发现的,作为分解输入输出符号关系结构的好方法。当句子来自大量真实文本,个别微观规则不可靠时,学习词向量也能表现良好。使用训练好的模型预测新病例时,一些概念相近的词很容易混淆,比如星期二和星期三,瑞典和挪威。这种表示称为分布式特征表示,因为它们的元素并不互斥,并且它们的结构信息对应于观察到的数据变化。这些词向量是通过学习特征构建的,这些特征不是由专家确定的,而是由神经网络自动发现的。从文本中学习到的单词的向量表示现在广泛用于自然语言中。

图4单词向量学习的可视化

特征表示争论的中心是基于逻辑灵感的知识和基于神经网络的知识。在逻辑启发的范式中,一个符号实体代表着某种东西,因为它的独特属性与其他符号实体相同或不同。符号实例没有内部结构,结构与使用有关。至于理解符号的语义,必须合理对应变化的推理规则。相反,神经网络使用大量的主动载体、权重矩阵和标量非线性来实现快速的“直觉”功能,可以支持简单易行的常识推理。

在介绍神经语言学模型之前,先简单描述一下标准方法,这是一个基于统计的语言模型,这个模型不使用分布式特征表示。但是基于统计,短符号序列的频率增加到N(n-gram,N-gram)。可能的N元文法的数量接近VN,其中V是词汇表的大小。考虑到文本内容包含数千字,需要非常大的语料库。N-grams将每个单词视为一个原子单位,因此无法在语义相关的单词序列中进行泛化。但是,神经网络语言模型可以,因为它们将每个单词与真实特征值的向量相关联,并且语义相关的单词在向量空间中彼此接近(图4)。

递归神经网络

最初引入反向传播算法时,最令人兴奋的是使用递归神经网络(RNNs)进行训练。对于涉及序列输入的任务,比如语音和语言,RNNs可以取得更好的效果。RNNs一次处理一个输入序列元素,同时在网络中的隐式单元中维护包含序列元素在过去时间中的历史信息的隐式“状态向量”。如果是深层多层网络中不同神经元的输出,我们会考虑这个隐式单元在不同离散时间步长的输出,这样会让我们更清楚如何通过反向传播来训练RNNs(如图5,右图)。

图5递归神经网络

rnn是非常强大的动态系统,但训练它们被证明是有问题的,因为反向传播的梯度在每个时间间隔都有所增加或减少,所以在一段时间后,结果会激增或降至零。

由于先进的体系结构和训练方法,发现RNNs能够预测文本中的下一个字符或句子中的下一个单词,并且可以应用于更复杂的任务。比如在某一时刻读完英语句子中的单词后,会训练一个英语“编码器”网络,使隐含单元的最终状态向量能很好地代表句子中要表达的意思或思想。这个“思想向量”可以作为初始隐式状态(或附加输入),用于联合训练一个法语“编码器”网络,其输出是法语翻译的第一个单词的概率分布。如果从分布中选择一个特殊的第一个词作为编码网络的输入,将输出翻译句子中第二个词的概率分布,直到停止选择。一般来说,这个过程是根据英语句子的概率分布生成的法语单词序列。这种简单的机器翻译方法的性能甚至可以与最先进的(最先进的)方法相提并论,它也引起了人们的质疑,即是否有必要像使用推理规则一样操纵内部符号来理解句子。这与日常推理同时涉及类比与合理结论的观点是一致的。

其余超过字数限制...