一、序列模型-sequence model

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 一、序列模型-sequence model

在生活中,有许多领域都用到了序列模型,如语音识别,音乐创作,情感分类,DNA序列分析,机器翻译,视频动作检测,名称实体识别等。


1、符号定义


对于训练数据中的输入序列X和输出序列Y,令  x(i)<t>表示第  i个训练数据输入序列中,第 t个位置的序列元素;令y(i)<t>表示第  i个训练数据输出序列中,第 t个位置的序列元素;令 Tx(i)表示第 i i i个训练数据输入序列的长度;令  Ty(i)表示第 i i i个训练数据输出序列的长度。one-hot向量表示法表示 x(i)<t>:对于构建的词库vocabulary,词库中 x(i)<t>位置的取值为1,其余位置取值均为0;伪词<UNK>-Unknown Word,用来代替没有在vocabulary中出现的词。



2、构建循环神经网络-Recurrent Neural Network



使用标准神经网络(ANN)处理序列问题问题的缺陷:首先,序列问题下不同的训练数据的输入和输出很大可能下会不同;其次,也是比较重要的缺陷在于,ANN不会共享从不同文本文职学习到的特征。


循环神经网络(RNN)的结构如下图所示:

b792eae67758445c90c3ec86bdc84b97.png


其中, a<i>表示通过神经网络层和激活函数计算之后的值,其中  a<0>一般初始化为全0向量; w a x , w a a , w y a w_{ax},w_{aa},w_{ya} wax,waa,wya表示权重系数。如:

image.png

其中,g表示激活函数,计算  a时候的激活函数和计算 y时候的激活函数不一定为一种激活函数。计算 a 时候的激活函数通常使用 tanh或者 Relu;计算  y的时候,激活函数通常使用sigmoid(用于二元分类问题)或者softmax(用于多元分类问题)。上述拓展公式扩展到第 t步时的计算方法如下所示:


image.png

使用 [waa;wax]=wa,可以将上式 at的表达形式进行简化为:

image.png

使用 w y 代 替 w y a w_y代替w_{ya} wy代替wya可以将上式 y

<t>的表达形式变为:

image.png


2.1 RNN中的反向传播


  RNN正向传播的简化示意图如下图所示:


b3c40d4b72f6404caea8a5fb4ce88081.png


下面定义出序列模型的单个时间步下的交叉熵误差计算式:

image.png

所以总的误差为将所有时间步下的误差进行累和得到:



误差反向传播的示意图如下图所示:

0190cfd248de4d4b84598bfa8ebe196d.png


2.2 不同架构的RNN


多对多RNN,many-to-many,输入序列有多个元素,输出序列也有多个元素,输入输出序列长度相同的示意如下所示:


5e3d96cc746c4a4c9ce3868ae46f1d16.png


多对多RNN,many-to-many,输入序列有多个元素,输出序列也有多个元素,输入输出序列长度不同的示意如下所示:

5aadac3a746243c3b590ad7ef7d88f7a.png


多对一RNN,输入序列中有多个元素,输出序列中只有一个元素:

38b99a2689c3412abd5faaeedf8878ba.png


一对多RNN,输入序列只有一个元素,输出序列中包含多个元素:


13a7555a38b64c61b7b1adaa3365990f.png

3、语言模型的RNN架构


3.1 架构


基于RNN的语言模型的架构如下所示:


28e99ee3dfe2448dad48b9be228636be.png


损失函数使用交叉熵误差,形式如下所示:

image.png


3.2 序列采样


下图展示了怎样从一个训练好的RNN模型中提取出结果序列。

79c3f66ad80b43ef8d943be359fe733b.png




4、RNN的梯度消失问题-vanishing gradients



若输入序列的长度过长,后续RNN在预测时,对于很早之前的输入信息会变得不太“敏感”,若很早之前输入的信息对于RNN后续预测影响很大,则会使得RNN的效果变得很差,使得RNN不擅长捕捉远程依赖关系。


4.1 门控制单元-Gate Recurrent Unit

GRU通过修改RNN的隐藏层,使得RNN可以更好地捕捉长距离的关系,有助于减少梯度消失的问题。

     简化版的GRU单元如下所示:


850b926a54d8432f93abd3bdb8698ef5.png


其中     C表示记忆单元(memory cell),

C  <t>=tanh(wc[C<t1>x<t>]+bc)


表示 t时间步下的记忆单元,在GRU中,  a<t>=C<t>;

Γu=sigmoid(wu[C<t1>,x<t>]+bu)


表示更新门控;

C<t>=ΓuC  <t>+(1Γu)C<t1>


用来计算  t时间步下的输出值;


完整版的GRU需要引入一个新的门控单元-相关性门控 Γr表示  t−1时间步的记忆单元和 t时间步的记忆单元之间的相关性,所以需要对 C<t>的计算进行调整:




4.2 长短期记忆单元-Long Short Term Memory

下图罗列出了在GRU中使用的机制:


6f0be9316ca7464394a20baa46023560.png



LSTM相对于GRU是一种更加有效,更加泛化的克服梯度消失问题的工具。在LSTM中,a<t>和 C<t>不再是一个相同的值;LSTM通常不需要相关性控制门 Γr,但是增加了两个额外的控制门 Γf表示遗忘控制门和  Γo表示输出控制门。所以LSTM的核心等式如下所示:


image.png


LSTM的示意图如下图所示:

c056f6cc46714c96966c597d2b48e26f.png



5、双向RNN-Bidirectional RNN


BRNN是为了同时考虑过去的信息和未来的信息,在某个时间步                                  t                              t下进行决策,BRNN的示意图如下图所示:

09ac29ed428b4a5aac1d262234709b7e.png


其中,在某个时间步    t下的预测值区别于RNN,需要同时考虑前向输入和后向输入


image.png





相关文章
|
9月前
|
机器学习/深度学习 自然语言处理 语音技术
从 Seq2Seq 到 Attention:彻底改变序列建模
从 Seq2Seq 到 Attention:彻底改变序列建模
39 0
|
1月前
|
机器学习/深度学习 自然语言处理 TensorFlow
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
详细介绍Seq2Seq、Attention、Transformer !!
详细介绍Seq2Seq、Attention、Transformer !!
74 0
|
8月前
|
机器学习/深度学习 存储 自然语言处理
深入解析序列模型:全面阐释 RNN、LSTM 与 Seq2Seq 的秘密
深入解析序列模型:全面阐释 RNN、LSTM 与 Seq2Seq 的秘密
110 0
|
10月前
RxSwift特征序列Single、Maybe、Completable的使用
RxSwift特征序列Single、Maybe、Completable的使用
172 1
|
算法 数据挖掘
【多标签文本分类】BERT for Sequence-to-Sequence Multi-Label Text Classification
【多标签文本分类】BERT for Sequence-to-Sequence Multi-Label Text Classification
【多标签文本分类】BERT for Sequence-to-Sequence Multi-Label Text Classification
|
机器学习/深度学习 自然语言处理
一、序列模型-sequence model2
一、序列模型-sequence model
一、序列模型-sequence model2
|
机器学习/深度学习 自然语言处理 PyTorch
【多标签文本分类】代码详解Seq2Seq模型
【多标签文本分类】代码详解Seq2Seq模型
242 0
【多标签文本分类】代码详解Seq2Seq模型
|
机器学习/深度学习 自然语言处理 PyTorch
【35】Sequence序列网络介绍与使用(含RNN,RNNCell,LSTM,LSTMCell的调用)
【35】Sequence序列网络介绍与使用(含RNN,RNNCell,LSTM,LSTMCell的调用)
221 0
【35】Sequence序列网络介绍与使用(含RNN,RNNCell,LSTM,LSTMCell的调用)
|
机器学习/深度学习 数据采集 自然语言处理
End to End Sequence Labeling via Bidirectional LSTM-CNNs-CRF论文
传统改机的序列标注系统,需要大量的针对特定任务的手工特征和经过预处理的数据。在这篇文章中,作者引入了一种创新的神经网络结果,使用Bi-LSTM、CNN和CRF相结合的网络结果,使模型能够从词和字级别表示中学习和收益。作者指出他们的系统是真正意义上的端到端结果,不需要任何特征工程或者数据预处理工作,因此可以广泛应用于各种序列标注任务。该模型在PennTreebank WSJ词性标注任务和CoNLL 2003 词性标注数据集上取得优异的成绩,前者97.55%的准确率,后者取得91.21%的F1值。
111 0
End to End Sequence Labeling via Bidirectional LSTM-CNNs-CRF论文