加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

深度学习已成功应用于这三大领域

发布时间:2018-04-09 19:23:56 所属栏目:大数据 来源:站长网
导读:在本章中,我们将介绍如何使用深度学习来解决计算机视觉、语音识别、自然语言处理以及其他商业领域中的应用。首先我们将讨论在许多最重要的AI 应用中所需的大规模神经网络的实现。接着,我们将回顾深度学习已经成功应用的几个特定领域。 尽管深度学习的一

其中的一个创新点是卷积网络的应用(Sainath et al., 2013)。卷积网络在时域与频域上复用了权重,改进了之前的仅在时域上使用重复权值的时延神经网络。这种新的二维卷积模型并不是将输入的频谱当作一个长的向量,而是当成一个图像,其中一个轴对应着时间,另一个轴对应的是谱分量的频率。

完全抛弃HMM 并转向研究端到端的深度学习语音识别系统是至今仍然活跃的另一个重要推动。这个领域第一个主要突破是Graves et al. (2013),他训练了一个深度的长短期记忆循环神经网络(见第10.10 节),使用了帧-音素排列的MAP 推断,就像LeCun et al. (1998c)以及CTC 框架(Graves et al., 2006; Graves, 2012) 中一样。一个深度循环神经网络(Graves et al., 2013) 每个时间步的各层都有状态变量,两种展开图的方式导致两种不同深度:一种是普通的根据层的堆叠衡量的深度,另一种是根据时间展开衡量的深度。这个工作把TIMIT 数据集上音素的错误率记录降到了新低17:7%。关于应用于其他领域的深度循环神经网络的变种可以参考Pascanu et al. (2014a); Chung et al. (2014)。

另一个端到端深度学习语音识别方向的最新方法是,让系统学习如何利用语音(phonetic)层级的信息“排列”声学(acoustic) 层级的信息(Chorowski et al., 2014; Lu et al., 2015)。

自然语言处理

自然语言处理(natural language processing,NLP) 是让计算机能够使用人类语言,例如英语或法语。为了让简单的程序能够高效明确地解析,计算机程序通常读取和发出特殊化的语言。而自然语言通常是模糊的,并且可能不遵循形式的描述。自然语言处理中的应用如机器翻译,学习者需要读取一种人类语言的句子,并用另一种人类语言发出等同的句子。许多NLP 应用程序基于语言模型,语言模型定义了关于自然语言中的字、字符或字节序列的概率分布。

与本章讨论的其他应用一样,非常通用的神经网络技术可以成功地应用于自然语言处理。然而,为了实现卓越的性能并扩展到大型应用程序,一些领域特定的策略也很重要。为了构建自然语言的有效模型,通常必须使用专门处理序列数据的技术。在很多情况下,我们将自然语言视为一系列词,而不是单个字符或字节序列。因为可能的词总数非常大,基于词的语言模型必须在极高维度和稀疏的离散空间上操作。为了使这种空间上的模型在计算和统计意义上都高效,研究者已经开发了几种策略。

n-gram

语言模型(language model) 定义了自然语言中标记序列的概率分布。根据模型的设计,标记可以是词、字符甚至是字节。标记总是离散的实体。最早成功的语言模型基于固定长度序列的标记模型,称为n-gram。一个n-gram 是一个包含n 个标记的序列。

神经语言模型

神经语言模型(neural language model, NLM) 是一类用来克服维数灾难的语言模型,它使用词的分布式表示对自然语言序列建模(Bengio et al., 2001b)。不同于基于类的n-gram 模型,神经语言模型在能够识别两个相似的词,并且不丧失将每个词编码为彼此不同的能力。神经语言模型共享一个词(及其上下文) 和其他类似词(和上下文之间) 的统计强度。模型为每个词学习的分布式表示,允许模型处理具有类似共同特征的词来实现这种共享。例如,如果词dog和词cat映射到具有许多属性的表示,则包含词cat的句子可以告知模型对包含词dog的句子做出预测,反之亦然。因为这样的属性很多,所以存在许多泛化的方式,可以将信息从每个训练语句传递到指数数量的语义相关语句。维数灾难需要模型泛化到指数多的句子(指数相对句子长度而言)。该模型通过将每个训练句子与指数数量的类似句子相关联克服这个问题。

高维输出

在许多自然语言应用中,通常希望我们的模型产生词(而不是字符) 作为输出的基本单位。对于大词汇表,由于词汇量很大,在词的选择上表示输出分布的计算成本可能非常高。在许多应用中,V 包含数十万词。表示这种分布的朴素方法是应用一个仿射变换,将隐藏表示转换到输出空间,然后应用softmax 函数。假设我们的词汇表V 大小为|V|。因为其输出维数为|V|,描述该仿射变换线性分量的权重矩阵非常大。这造成了表示该矩阵的高存储成本,以及与之相乘的高计算成本。因为softmax 要在所有|V| 输出之间归一化,所以在训练时以及测试时执行全矩阵乘法是必要的|| 我们不能仅计算与正确输出的权重向量的点积。因此,输出层的高计算成本在训练期间(计算似然性及其梯度) 和测试期间(计算所有或所选词的概率) 都有出现。对于专门的损失函数,可以有效地计算梯度(Vincent et al., 2015),但是应用于传统softmax 输出层的标准交叉熵损失时会出现许多困难。

结合n-gram 和神经语言模型

n-gram 模型相对神经网络的主要优点是n-gram 模型具有更高的模型容量(通过存储非常多的元组的频率),并且处理样本只需非常少的计算量(通过查找只匹配当前上下文的几个元组)。如果我们使用哈希表或树来访问计数,那么用于n-gram 的计算量几乎与容量无关。相比之下,将神经网络的参数数目加倍通常也大致加倍计算时间。当然,避免每次计算时使用所有参数的模型是一个例外。嵌入层每次只索引单个嵌入,所以我们可以增加词汇量,而不会增加每个样本的计算时间。一些其他模型,例如平铺卷积网络,可以在减少参数共享程度的同时添加参数以保持相同的计算量。然而,基于矩阵乘法的典型神经网络层需要与参数数量成比例的计算量。

因此,增加容量的一种简单方法是将两种方法结合,由神经语言模型和n-gram 语言模型组成集成(Bengio et al., 2001b, 2003)。

对于任何集成,如果集成成员产生独立的错误,这种技术可以减少测试误差。集成学习领域提供了许多方法来组合集成成员的预测,包括统一加权和在验证集上选择权重。Mikolovet al. (2011a) 扩展了集成,不是仅包括两个模型,而是包括大量模型。我们也可以将神经网络与最大熵模型配对并联合训练(Mikolov et al., 2011b)。该方法可以被视为训练具有一组额外输入的神经网络,额外输入直接连接到输出并且不连接到模型的任何其他部分。额外输入是输入上下文中特定n-gram 是否存在的指示器,因此这些变量是非常高维且非常稀疏的。

模型容量的增加是巨大的(架构的新部分包含高达|sV |n 个参数),但是处理输入所需的额外计算量是很小的(因为额外输入非常稀疏)。

神经机器翻译

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!