NLP深度学习 —— CS224学习笔记10

来源:互联网 发布:蚁群算法代码 编辑:程序博客网 时间:2024/05/16 15:29

2.3 深度双向RNN

到目前我们都是使用以前的词来预测后面的词。

双向深度神经网络是在每个时间点t,同时有2个隐藏层,一个从左往右传播,一个从右往左传播。

最后的分类结果由两个的结合产生。

方程式表达为

多层的深度结构为

2.4 应用:RNN翻译模型


我们讨论有RNN来替代传统翻译模型的可能性。

这里前3个隐藏层时间点编码来源语言,后2个将h3解码到目标语言。

编码阶段

解码阶段

实践中对交叉熵函数做一些扩展来提高翻译的准确性

一是为编码和解码训练不同的RNN权重,这使两个部分解耦并提高准确度,意味着编码和解码阶段的权重矩阵不同。

二是在解码是用三个不同输入计算每个隐藏状态:此前的隐藏状态(标准),编码的最后一个隐藏层,此前预测的输出词。

三是用多个RNN层训练深度RNN,更深的层提供更强的学习能力。

四是训练双向编码器以提高准确度。

五是考虑到梯度消失问题,逆转输入的顺序可以降低输出阶段的错误率。

3 GRU

GRU使RNN更能捕捉长期的信息。


GRU有4个操作阶段:

a 新记忆产生,新输入词x_t和之前的隐藏状态h_t-1,生成新的h_t。

b 重置门,重置信号r_t,决定h_t-1对于h_t的重要性,如果觉得与新记忆无关,可以完全消除过去的记忆。

c 更新门,更新信号z_t决定多大程度h_t-1应被输入下一个阶段。

d 隐藏状态,更具更新门的结果,隐藏状态h_t生成。

4 LSTM

LSTM动机与GRU相同,但单元结构不同。

LSTM由5个阶段操作:

a 生成新记忆,与GRU想同根据输入词和此前状态生成新的记忆状态。

b 输入门,根据新的输入词和此前的隐藏状态判断,生成i_t来指示新的输入是否值得保留。

c 遗忘门, 评估此前的记忆单元对于计算当前记忆单元是否有用,不考虑输入词。

d 最终记忆生成,根据遗忘门和输入门的结果生成最终记忆。

e 输出/展示门,这个门在GRU不显性存在,目的是将最终记忆和隐藏状态区分开来。最终记忆包含很多信息,但并不必要保存在隐藏状态中。隐藏状态被用于LSTM的每个门中,因此这个门评估记忆中的哪些部分要在隐藏状态中展示/保留。

原创粉丝点击