对RNN编码器-解码器的一点小总结(1)

本文总结了RNN编码器-解码器的工作原理,包括编码器和解码器的结构、流程,强调了其在语言建模中的优势,并讨论了梯度消失与爆炸问题及其解决方案。参考了LearningPhraseRepresentationsusingRNNEncoder–Decoder论文和知乎资源。
摘要由CSDN通过智能技术生成
	本人对RNN编码器-解码器做出的一点小总结,如有错误,请指正!

1. 概述:

RNN编码器-解码器:由两个递归神经网络(RNN)组成,编码器将可变长度源序列映射成固定长度向量,解码器将固定长度向量映射回可变长度目标序列。这两个RNN的工作大体上正好是相反的。

注意:输入和输出的序列长度可能不同。

要达到的目的是:联合训练解码器和编码器以在给定源序列的情况下使目标序列的条件概率最大化。

2.流程:

编码器顺序读取输入序列x的每个符号。当它读取每个符号时,RNN的隐藏状态h_t会根据等式 :
在这里插入图片描述
改变。这说明当前时刻的h_t是由当前时刻的xi 和 上一时刻的h_t-1 共同决定的。

特例:解码器公式有所不同,多出了一个输入序列的总和c,为:
h_t=f(h_(t-1),y_t,c)
在读取到序列的结尾(由序列结尾符号标记)之后,RNN的隐藏状态是整个输入序列的总和c。
f() 函数是神经网络中的激活函数,做一个非线性的映射,可以实现信息过滤(如将不重要的信息过滤掉,表现为概率低的信息)

使用BPTTX类似于BP反向传播改变参数。

3.优点:

RNN编码器-解码器能够更好地捕捉短语表中的语言规律,间接改善了整体的翻译性能。对该模型的进一步分析表明,RNN编码器-解码器学习一个短语的连续空间表示,该表示保留了短语的语义和句法结构。

4.问题:

RNN存在的问题:梯度消失/梯度爆炸。

梯度消失这一问题更为常见,原因是使用链式法则时,由于激活函数的原因,导致激活函数的导数值小于等于1,会梯度趋近于0,造成梯度消失。改进方法:使用RELU激活函数。

梯度爆炸解决方法为:对梯度做截断(给梯度限定一个值)能够在一定程度上解决梯度爆炸的问题

文献参考:

论文: Learning Phrase Representations using RNN Encoder–Decoder
for Statistical Machine Translation

知乎: 对RNN的理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值