Lession5--RNN 文本翻译、attention model

Sequence to sequence models:由encoder和decoder组成。decoder的前一个输出为当前输入。
应用1:文本翻译
应用2:图像标注。用CNN训练得到特征作为encoder,在后面加上decoder。

文本翻译

文本翻译与语言模型不同之处在于:语言模型在训练好之后是随机输出一个句子,而文本翻译需要找出最有可能的翻译句子。实现这种搜索的启发式搜索方式叫beam search(集束搜索)。(它不一定能够找到全局最优解)

beam search算法

参数:beam width:表示一次考虑的几种可能。例如B=3表示每次考虑3种可能的输出。
第一步:计算 P ( Y < 1 > ∣ x ) P(Y^{<1>}|x) P(Y<1>x),假设单词表中有1000个单词,那么分别计算1000个单词的概率,选出其中概率最大的B个单词,假设这B个单词分别为:in ,Jane,september.
第二步:计算 P ( y < 1 > , y < 2 > ∣ x ) = P ( y < 1 > ∣ x ) P ( y < 2 > ∣ y < 1 > , x ) P(y^{<1>},y^{<2>}|x)=P(y^{<1>}|x)P(y^{<2>}|y^{<1>},x) P(y<1>y<2>x)=P(y<1>x)P(y<2>y<1>,x),也就是分别为3个单词计算后面连接1000个单词的概率,也就是3000个 P ( y < 1 > , y < 2 > ∣ x ) P(y^{<1>},y^{<2>}|x) P(y<1>y<2>x),选出其中概率最高的三种。
第三步同样如此,直到句子结束。(遇到结束的特殊符号)。
当B=1时,beam search就是greedy search.

beam search的改进

原始计算概率: arg ⁡ max ⁡ y ∏ t = 1 T y P ( y < t > ∣ x , y < 1 > , . . . , y < t − 1 > ) \arg \max_y \prod_{t=1}^{T_y}P(y^{<t>}|x,y^{<1>},...,y^{<t-1>}) argymaxt=1TyP(y<t>x,y<1>,...,y<t1>)时,有以下两个问题:
1.多次乘积容易导致计算机小数位溢出,解决方法:在计算结果前面加上log,将乘积变成Log的加法;
arg ⁡ max ⁡ y ∑ t = 1 T y log ⁡ P ( y < t > ∣ x , y < 1 > , . . . , y < t − 1 > ) \arg \max_y \sum_{t=1}^{T_y}\log P(y^{<t>}|x,y^{<1>},...,y^{<t-1>}) argymaxt=1TylogP(y<t>x,y<1>,...,y<t1>)
2.为了使概率更高,为了使概率更高,会趋向于选择更短的句子,因此将概率做归一化: 1 T y α arg ⁡ max ⁡ y ∑ t = 1 T y log ⁡ P ( y < t > ∣ x , y < 1 > , . . . , y < t − 1 > ) \frac{1}{Ty^\alpha}\arg \max_y \sum_{t=1}^{T_y}\log P(y^{<t>}|x,y^{<1>},...,y^{<t-1>}) Tyα1argymaxt=1TylogP(y<t>x,y<1>,...,y<t1>)
其中, α \alpha α的经验值一般取0.7.

对模型做误差分析

误差分析
计算人类翻译的最优解的概率与学习得到的最优解概率。若前者得分高,说明是beam search出了问题,应该增加B的数值,若后者高,说明RNN模型出了问题,可能需要对模型做进一步改进。
用多个例子来对模型作分析,最后找出问题比较严重的部分是RNN还是beam search。

attention model

没有attention机制的encoder-decoder结构通常把encoder的最后一个状态作为decoder的输入(可能作为初始化,也可能作为每一时刻的输入),但是encoder的state毕竟是有限的,存储不了太多的信息,对于decoder过程,每一个步骤都和之前的输入都没有关系了,只与这个传入的state有关。attention机制的引入之后,decoder根据时刻的不同,让每一时刻的输入都有所不同。
模型简介:
预测权重系数
首先根据初始的隐藏单元和输入计算出权重系数,也就是"match"过程,match的方法有几种:
1.利用余弦相似度计算两个向量间的相似度;
2.利用简单的神经网络进行训练;
预测出权重系数之后,利用权重系数计算出 c 0 c^0 c0,作为rnn的输入部分,与隐藏单元 z 0 z^0 z0一起作为输入预测第二个时刻的隐藏单元 z 1 z^1 z1
预测输出
继续match
然后继续用 z 1 z^1 z1和各个输入一起预测第二个时刻的权重系数,继续用于第二个时刻的输出,直到翻译结束。
因此在输出每个时刻y时,都利用了不同输入的不同注意力,且这些注意力权重都是通过训练得到的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值