《基于深度学习的自然语言处理》笔记

深度学习一般是指建立在含有多层非线性变换的神经网络结构之上,对数据的表示进行抽象和学习的一系列机器学习算法。

深度学习主要为自然语言处理的研究带来了两方面的变化:一方面是使用统一的分布式(低维、稠密、连续)向量表示不同粒度的语言单元,如词、短语、句子和篇章等;另一方面是使用循环、卷积、递归等神经网络模型对不同的语言单元进行组合,获得更大语言单元的表示。除了不同粒度的单语语言单元外,不同种类的语言甚至不同模态(语言、图像等)的数据都可以通过类似的组合方式表示在相同的语义向量空间中,然后通过在向量空间中的运算来实现分类、推理、生成等各种任务并应用于各种相关的任务之中。

自然语言处理(NLP)指的是对人类语言进行自动的计算处理。
它包括两类算法:将人类产生的文本作为输入;产生看上去很自然的文本作为输出。

引言

自然语言处理中的深度学习

将神经网络用于语言的一个主要组件是使用嵌入层,即将离散的符号映射为相对低维的连续向量。

有两种主要的神经网络,即前馈网络循环/递归网络,它们可以以各种方式组合。

前馈网络:也叫多层感知机(MLP),其输入大小固定,对于变化的输入长度,我们可以忽略元素的顺序。网络的非线性以及易于整合预训练词嵌入的能力经常导致更高的分类精度。
卷积前馈网络是一类特殊的结构,其善于抽取数据中有意义的局部模式,这些工作适合于识别长句子或者文本中有指示性的短语和惯用语

循环神经网络(RNN):是适于序列数据的特殊模型,网络接收输入序列作为输入,产生固定大小的向量作为序列的摘要。
语言模型:指预测序列中下一个单词的频率(等价于预测下一个序列的概率),是许多自然语言处理应用的核心。

有监督分类与前馈神经网络

学习基础与线性模型

留一法:在训练过程中,我们必须评估已训练函数在未见实例上的准确率。
一种方法是留一交叉验证

留存集:就计算时间而言,一个更有效的方法是划分训练集为两个子集,在较大的子集(训练集)上训练模型,在较小的子集(留存集)上测试模型的准确率。

三路划分:训练集、验证集和测试集。

独热(one-hot)和稠密向量表示

连续单词词袋

训练和最优化

损失函数
hinge(二分类)
hinge(多分类)

二元交叉熵 :二元交叉熵损失也叫做Logistic损失,被用于输出为条件概率分布的二元分类中。

分类交叉熵损失

等级损失

正则化

通过向优化目标中加入正则化R来完成以上的目的,这样做可以控制参数值的复杂性,避免过拟合情况的发生。
R的常用选择有L2范数、L1范数和弹性网络。

基于梯度的最优化

随机梯度下降

前馈神经网络

常见非线性函数

sigmoid :sigmoid激活函数 σ ( x ) = 1 / ( 1 + e − x ) \sigma(x)=1/(1+e^{-x}) σ(x)=1/(1+ex),也称作逻辑斯蒂函数,是一个S型的函数。它将每一个值 x x x变换到[0,1]区间中。

tanh(双曲正切):双曲正切激活函数 t a n h ( x ) = e 2 x + 1 e 2 x + 1 tanh(x)={e^{2x}+1\over e{2x}+1} tanh(x)=e2x+1e2x+1是一个S型函数,它将值 x x x变换到[-1,1]区间中。

线性修正单元(ReLU):修正激活函数,也被称为修正线性单元,是一种非常简单的激活函数。

正则化与丢弃法

相似和距离层

点积

欧氏距离

神经网络计算

与线性模型相似,神经网络也是可微分的参数化函数,它使用了基于梯度的优化方法来进行训练。

前向计算
反向计算(导数、反向传播)

处理自然语言数据

文本特征构造

NLP分类问题中的拓扑结构

通常来说,自然语言中的分类问题能够被分为几个宽泛的方向,其依赖于被分类的事项。

文本
成对文本
上下文中的词
词之间的关系

你可能感兴趣的:(机器学习,深度学习,自然语言处理,神经网络,机器学习,人工智能)