《TensorFlow自然语言处理》—1.4 自然语言处理的深度学习方法

举报
华章计算机 发表于 2019/07/20 22:04:03 2019/07/20
【摘要】 本节书摘来自华章计算机《TensorFlow自然语言处理》一书中的第1章,第1.4.1节,[澳] 图珊·加内格达拉(Thushan Ganegedara) 著 马恩驰 陆 健 译。

1.4 自然语言处理的深度学习方法

我认为深度学习彻底改变了机器学习,特别是在计算机视觉、语音识别和NLP领域。深层模型在机器学习的许多领域掀起了一轮范式转换的波澜,因为深层模型可以从原始数据中学习丰富的特征,而无须使用有限的人工设计特征。这导致令人讨厌且成本昂贵的特征工程被淘汰。这样一来,深层模型使得传统方法更有效,因为深层模型可以同时执行特征学习和任务学习。此外,由于深层模型中有大量参数(即权重),这使得它可以比人工设计拥有更多的特征。然而,由于模型的可解释性差,深层模型被认为是黑盒。例如,对于给定问题,理解深层模型“如何”学习特征和学习“什么”特征仍然是一个悬而未决的问题。

深层模型本质上是一种人工神经网络,它有输入层、位于中间的许多相互连接的隐藏层以及输出层(例如,分类器或回归器)。就像你看到的那样,这构成了从原始数据到最终预测的端到端模型。中间的这些隐藏层为深层模型提供动力,因为它们负责从原始数据中学习“好”的特征,从而最终成功解决手头的任务。

1.4.1 深度学习的历史

让我们简单地介绍一下深度学习的根源,以及它是如何演变为一种非常有前景的机器学习技术的。1960年,Hubel和Weisel进行了一项有趣的实验,发现猫的视觉皮层由简单细胞和复杂细胞组成,并且这些细胞以分层形式组织,而且,这些细胞对不同刺激的反应不同。例如,简单细胞会被不同朝向的边缘外形激活,而复杂细胞则对空间变化(例如,边缘外形的朝向)不敏感。这刺激了人们在机器中复制类似行为,从而产生了深度学习的概念。

在随后的几年中,神经网络引起了许多研究者的关注。1965年,由Ivakhnenko和其他人引入了一种神经网络,该网络以Rosenblatt提出的著名的感知器(Perceptron)为基础,并通过一种称为数据处理组方法(GMDH)进行训练。后来,在1979年,福岛引入了Neocognitron,该网络为最著名的深层模型之一(卷积神经网络)奠定了基础。与始终采用一维输入的感知器不同,Neocognitron能够使用卷积操作处理2D输入。

人工神经网络过去通常通过计算当前层和前一层的雅可比矩阵来反向传播误差信号,以优化网络参数。此外,梯度消失的问题严重限制了神经网络的潜在层数(深度)。靠近输入的层的梯度非常小,这被称为梯度消失现象,其原因是应用链式法则来计算较低层权重的梯度(雅可比矩阵),这又限制了经典神经网络的可能的最大深度。

然后在2006年,人们发现通过最小化网络的每一层的重建误差(通过尝试将输入压缩到较低维度然后将其重建回原始维度而获得该误差)来预训练深度神经网络,可以为神经网络权重提供一个良好的初值。这使得梯度可以从输出层一直保持到输入层。这基本上使神经网络模型可以有更多层,从而避免梯度消失的不利影响。此外,这些更深层的模型能够在许多任务中超越传统的机器学习模型,主要是在计算机视觉领域(例如,MNIST手写数字数据集的测试准确度)。有了这一突破,深度学习成为机器学习社区的流行语。

在2012年,由Alex Krizhevsky(http://www.cs.toronto.edu/~kriz/)、Ilya Sutskever(http://www.cs.toronto.edu/~lya/)和Geoff Hinton创建的深度卷积神经网络AlexNet赢得了2012年大规模视觉识别挑战赛(LSVRC),误差比从之前的最佳值下降了10%,这为神经网络的进步提供了动力。在此期间,语音识别取得了进展,据报道,良好的语音识别准确度是因为使用了深层神经网络。此外,人们开始意识到图形处理单元(GPU)可以实现更多的并行性,与中央处理单元(CPU)相比,它可以更快地训练更大和更深的神经网络。

更好的模型初始化技术(例如,Xavier初始化)进一步改进了深层模型,使得耗时的预训练变得多余。此外,还引入了更好的非线性激活函数,如ReLU(Rectied Linear Unit),它减少了深层模型处理梯度消失的不良影响。更好的优化(或学习)技术(如Adam)可以在神经网络模型所拥有的数百万个参数中自动调整每个参数的学习率,这一技术在许多不同的机器学习领域中刷新了最好的成绩,如物体分类和语音识别。这些进步还允许神经网络模型具有大量隐藏层,而可以增加隐藏层数(从而使神经网络更深)是神经网络模型明显比其他机器学习模型效果更好的主要原因之一。此外,更好的层间归一化(例如,批量归一化层)已经在很多任务中提高了深度网络的性能。

后来,人们引入了更深层的模型,如ResNets、HighwayNets和LadderNets,它们有数百层和数十亿个参数。借助各种由经验和理论所激发的技术,神经网络可以具有庞大的层数。例如,ResNets通过捷径连接技术在相距很远的层之间建立连接,这可以最大限度地减少之前提到的层之间的梯度消失问题。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。