various sequence to sequence arc
coursera deeplearning
一、机器翻译和自动添加图像字幕的基本模型
机器翻译
image.png
自动添加图像字幕
image.png
二、机器翻译
1、机器翻译可以看作一种条件概率语言模型,即在给定原文序列 x 的条件下生成译文序列 y 的条件概率
image.png
比较容易想到的过程是:根据原文 x 计算每一个词典中的词在第1个输出位置 y<1> 的概率,然后将最大概率的词作为 y<1> ,然后根据 x,y<1> 计算每一个词典中的词在第2个输出位置 y<2> 的概率,然后将最大概率的词作为 y<2> , 不断重复直到 <EOS> ,这实际上是贪婪算法,搜索条件概率最大的一个词作为输出;问题是每一步最大不能保证全局( y<1>y<2>...y<Ty> )最大;同时,也不能直接对所有的句子空间进行搜索,否则计算量太大, 因此,Beam Search集束搜索就是处于这两种方法之间的解决方案
三、Beam Search集束搜索
1、beam width : 集束宽度,指每一步搜索数量的参数
例如当 beam width=3 时,对第1步计算所有词典的概率,选出概率最大的前3个词作为候选词 y<1> , 对每个候选词,计算第2步 y<2> 词典中所有词的概率,若词典为10000,则一共计算3×10000个词的概率,从3×10000个概率中选出 beam width=3 个最大的概率的词作为 y<2> 的候选词,不断反复,直到 <EOS>
2、使用 log
当很多个概率相乘时,容易导致小数溢出,因此使用 log 函数
image.png
另外,为了最大化上述公式,模型会倾向于输出比较短的句子,这样得到的值就会比较大,因此,对公式进行修改
image.png
Ty : 输出句子 y 的长度
α : 范围在 0~1
3、Error Analysis in Beam Search
根据 p(y|x) 和 p(y^|x) 判断模型是搜索算法出问题还是 RNN 模型出问题
y^ : 模型预测的句子
y* : 人工翻译的句子即标签
两种情况:
第一种: p(y*|x)>p(y^|x)
在给定输入原文 x 的情况下,模型概率小于人工概率,说明模型的搜索还有提升的空间,如果模型搜索得更好一点,p(y^|x) 的值还可以继续提升,这里主要体现的是搜索问题,即 beam-search 的问题
第二种:p(y^|x)≥p(y*|x)
人工概率小于模型概率,说明模型已经搜索到很高的概率了,但是并不是说模型搜索到的概率越大,预测效果越准,这时无法通过提升搜索概率来提升模型的精度,应当通过改进 RNN 模型来提升性能和精度
四、Bleu Score
1、BLEU score(Bilingual Evaluation Understudy 双语评估替补) 是为了解决衡量机器翻译质量好坏而提出来的算法;对于某句原文,可能有多个比较好的人工译文,为了计算人工译文与机器翻译的译文之间的好坏提出了Bleu Score
2、precision 精度
Precision : 分子是机器翻译 MT output 中存在于人工翻译 Reference 的句子中的单词的个数,分母是机器翻译的句子的单词的个数
Modified precision : 分子是机器翻译的单词最多在人工翻译 Reference 的某个句子中的出现次数,分母是机器翻译的句子的单词的个数
3、Blue score on bigram
bigram是双词组的意思,计算双词组情况下的精度 precision
Count : 计算每个双词组在 MT output 中出现的次数
Count-clip : 计算每个双词组在 Reference X 中至多出现的次数
精度= Count / Count-clip
4、n-gram
image.png
5、Bleu Score
BP : 为了防止机器翻译长度太小引入的惩罚项
捕获.PNG
五、Attention Model 注意力模型
1、为了解决模型在句子长度太长时性能下降的问题,提出Attention Model 注意力模型
image.png
基本思想是在翻译长句子的时候,类比人类一段一段翻译的过程,将注意力即权重放在当前临近的位置,而句子比较远的部分降低其权重
2、模型
模型包含两部分,一是双向 RNN ,输入原文输出特征值即激活函数 a ,二是另一个 RNN ,输入 C 输出机器翻译的译文
image.png
a<t'> : 激活函数值即特征值
α<t,t'> : 在第 t' 个输入词语的情况下, t输出的神经元 S<t'> 的权重
C : C<t>=Σα<t,t'>a<t'>
3、权重α
为了计算权重α,引入一个小神经网络,输入 s<t-1> a<t'> 输出 e<t,t'>
而 α 由 e 计算得
image.png
注意力模型的缺点是,二次成本运行
六、Speech Recognition & Trigger Word Detection
1、Speech Recognition 中 CTC损失函数
为了解决语音输入的长度远远大于字符输出的长度的问题,引入CTC损失函数,CTC输出可以是重复的字符,以及空白字符,在输出的时候将其折叠得到正常的单词
image.png
2、 Trigger Word Detection 触发字检测
Trigger Word Detection 指的是对语音识别系统说话,触发其应用开关的功能
标签可以这样设计,即在触发语音之前输出为0,在触发语音结束时输出为1
image.png
在 Sequence Models 第4部分介绍了 Transformer Network
包括 Self-attention Mutil-Head Attention Transformer Network