斯坦福大学-自然语言处理与深度学习(CS224n)笔记 第十一课 NMT与RNN的进一步讨论

本课概要

1、gated recurrent units比如GRUs和LSTM的再次回顾
2、机器翻译评估
3、单词生成问题

一、 gated recurrent units比如GRUs和LSTM的再次回顾

在RNN的后馈计算中,很容易出现梯度消失的问题。


梯度消失的原因是因为RNN结构中,所有的节点是一个一个按顺序相连的,所以权值矩阵就会依次相乘,很容易造成梯度消失。

而在GRUs中,长距离的节点之间也可以直接相连,这样就可以避免梯度消失。

通过加入更新门(update gate)和重置门(reset gate),构成GRUs,调整之间的关系。

RNN和GRU的比较

GRUs和LSTM比较

对LSTM的图示解释(图中的色块对应右边同色的解释部分)
在这里插入图片描述基于LSTM的这些改进,LSTM会RNN能记忆更多。

训练Gated RNN的一些建议

  • 使用LSTM或者GRU:它可以使得事情变得更加简单
  • 初始化循环权值矩阵为正交
  • 以比较小的数字初始化其他矩阵
  • 将遗忘门的bias初始化为1
  • 使用自适应的学习率算法(adaptive learning rate algorithms),如Adam, AdaDelta, …
  • 剪裁梯度的范数(the norm of the gradient):对Adam和AdaDelta.而言,1-5是比较合适的
  • 要么垂直的dropout,要么学习怎么正确的水平也进行dropout
  • 要学会耐心!

模型集成(ensemble)

  • 我们可以训练8-10个模型,然后计算预测结果的平均数
  • 一般而言,集成模型的结果都会比较好
    在这里插入图片描述

二、机器翻译评估

1、总述

一共有三种可能的评估途径

  • 人工评估
    • SSER(subjective sentence error rate),即主观句子错误率
    • 正确/不正确
    • 充分性与流利性(5或者7级打分)
    • 错误分类
    • 翻译的比较排名
  • 利用那些使用MT作为一个子部分的应用
    • 比如基于外文文献的问答系统(question answering),主要的问题是很多翻译的方面无法评估到,比如翻译的流畅程度
  • 自动度量
    • 单词错误率((word error rate)
    • BLEU (Bilingual Evaluation Understudy)

2、BLEU介绍

  • 首先,我们对一段机器翻译,需要有对应的人工翻译,我们称之为对照翻译(reference translation)。

  • 接着,计算N元准确率:机器翻译的N元组中有多少可以在对照翻译中找到?(对照组中某个词如果已经在机器翻译中对应过了,那么就不可以再使用它对应机器翻译中的第二个对应词了,比如机器翻译中出现两个airport当对照翻译中也出现两个的话才会全部是正确;这样就不可以使用“the the the the”来作弊)

  • 接着,简洁惩罚(Brevity Penalty):如果机器翻译的长度要小于人工翻译的长度的话,就要受到惩罚。

  • BLEU是N元准确率的加权调和平均(geometric mean),然后在乘以一个简洁惩罚(Brevity Penalty)。

  • 计算公式:

  • 一个具体的计算例子:BLUE4只计算N≤4的N元组。

评估还有可能遇到的一个问题是:很有可能机器翻译的质量是很高的只是恰好和人类翻译的不一致。一个解决方法是准备多篇对照翻译。
在这里插入图片描述
一开始BLUE的评估效果很好,和人类判断一致。但是当BLUE成为了一个评估标准了以后,BLUE和人类判断的相关性反而降低了。这也是为什么google翻译没有那么好的原因。
在这里插入图片描述

三、单词生成问题

在翻译的过程中,大量的算力会花在计算softmax上,所以这个问题需要改进。

  • 如果我们对生成的词汇(vocabulary)有所限制的话,得到的结果是生成的句子中都是未知<unk>

  • 另外一种想法是对softmax进行一定的限制

    • 层级模型(Hierarchical models):树结构词汇,非常复杂并且对树结构敏感[Morin & Bengio, AISTATS’05], [Mnih& Hinton, NIPS’09].
    • 噪音对比估计( Noise-contrastive estimation):二分类[Mnih& Teh, ICML’12], [Vaswaniet al., EMNLP’13].
    • 这两种方法无法利用GPU进行提升
  • 另外一种想法是Large-vocab NMT(SébastienJean, KyunghyunCho, Roland Memisevic, YoshuaBengio. On Using Very Large Target Vocabulary for Neural Machine Translation. ACL’15. )

    • 在训练的时候,每次使用词汇的一个子集来进行训练,每个子集中含有V’个词汇。将训练集分成不同的好几个子集,每个子集中会有τ个目标单词, |Vʹ| = τ。在实践中,|V| = 500K, |Vʹ| = 30K or 50K.

      举例来说,当τ=5时:
      在这里插入图片描述
    • 在测试的时候,选择K个频率最高的单词作为候选,再加上K’个候选的单词,两者构成候选列表;基于此选出翻译。一般而言,Kʹ = 10 or 20, K = 15k, 30k, or 50k.

至此这节课结束了,但是ppt还有内容,待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值