序列模型和注意力机制基础

1. 序列结构的各种序列

语言翻译
在这里插入图片描述
在给出足够多的法语和英语文本,训练这个模型确实有效。。。
图像描述
在这里插入图片描述
这里也确实证明了AleNet模型输出的特征向量确实包含了图片的信息。

总结
seq2seq模型主要来说就是由一个encoder+一个decoder构成。

对于多个输出序列如何选择的问题,将在后面给出解决算法!

2. 选择最可能的句子

在这里插入图片描述
对于语言模型来说,一般最开始的输入是一个0向量,而机器翻译任务我们可以看到,右边decoder与语言模型结构一样,不同的是输入的encoder计算的结果——因此叫条件语言模型,即输出的任一英文句子翻译都是取决于前面输入的法语句子。
在这里插入图片描述
我们每次执行获取的翻译其实都相当于从一个分布中随机的取样获得结果。但是我们要的是找到一个英语句子y,使得条件概率最大化。
在这里插入图片描述
贪心搜索就是每次都搜索最有可能的词,但是我们需要的是整个序列总体的概率最大化。
看一个例子,
有两个句子,hin明显上面的质量比下面的要高,因此我们要让其条件概率比下面的大。如果使用贪心搜索的话,因为在Jane is的条件下,第三个词是going的概率更大(在英语中更常使用)。因此会得到一个欠佳的句子。
句子可能组合过大。(句子长度×词汇表大小)
这时我们需要一个近似搜索算法,使得挑选出的句子y的条件概率最大化。

3. 集束搜索

在这里插入图片描述
算法流程:
输入:集束宽B=3

  1. 将解码器第一个单元的softmax值取前三个概率最大的单词,存起来。
  2. 将第一个单词分别作为x输入到下一个解码单元中去,计算在给定法语句子和第一个单词下组成的单词概率最大而产生第二个单词,但是我们优化的是第一和第二个单词组成的单词对的条件概率最大化。(条件概率公式可以改写成第一个单词的概率×第二个单词的概率)。从第二步中所有结果中选3个条件概率最大的单词对。
    在这里插入图片描述
  3. 一次类推,直到获得最终句子。

note:如果集束宽度=1,就是贪婪搜索算法。

4. 改进集束搜索

长度归一化
在这里插入图片描述
问题1:乘积概率导致数值下溢
解决办法:取log值,乘变加。
理论依据:log函数是严格单调递增的函数,所以优化结果一样。
问题2:累乘概率低,或者是log累加负数,导致优化时倾向于更短的翻译。
解决方法:归一化,除以单词数量。即,取每个单词的概率对数值的平均。
PS:在单词数量Ty上加个指数a,即,a=0,为1;a=1,长度归一化;其余在两者中间。
理论依据:这里的超参数没有理论依据,但是实践过程中效果很好。
总结:在运行搜索的过程中,对于不同的句子长度大小,都保存3个,最后用上面的目标函数打分,挑出在归一化的log概率目标函数上得分最高的一个。(这个目标函数有时叫做归一化的对数似然目标函数)。
在这里插入图片描述

5. 集束搜索中的误差分析

在这里插入图片描述
在这里插入图片描述
这里就是这节课的要点,RNN的预测y*,和集束搜索预测的y_bar,进行对比。这里要时刻保证y*要大于y_bar,不然就是出了大问题。
在这里插入图片描述

6. Blue得分

Bule(bilingual evaluation understudy)得分的意义就是能够衡量机器翻译效果的好坏。

在这里插入图片描述
机器翻译的精确度问题很大,对于上图中的一个糟糕翻译精确度竟然为1。
改良方法:截断计数。每个单词的计分上限为在参考句中出现的最多次数

在这里插入图片描述
二元词组的BLUE得分。形式化的公式如上图。
在这里插入图片描述
有意思的是一个BP惩罚因子,对于输出较短的翻译进行了惩罚。其中的道理就是,如果输出了一个短翻译,更容易得到高精度,其中词可能大部分都在参考中。

7. 注意力模型的直观理解

在这里插入图片描述
motivation:人类在翻译长句子的时候往往是一部分一部分的翻译。而这种编码解码结构的神经网络,对于短句子效果很好,会有一个相对高的BLEU得分。
在这里插入图片描述
大致的感觉就是,每次计算当前时间步的输出单词,不仅获取上一个单词和激活值作为输入,还要从编码的句子用注意力矩阵获取部分信息。
在这里插入图片描述

在这里插入图片描述

8. 注意力模型

在这里插入图片描述
首先用一个双向RNN计算每个时间步t的特征向量a<t>
然后用一个单向的RNN用上下文向量C和状态S来生成翻译。
细节:注意力权重和为1。
在这里插入图片描述
直观:当前时间步的注意力函数取决于上一步的隐藏状态和对应位置的特征词。训练一个小的神经网络来模拟这个函数。
(???)
缺点:三次方的时间。
在这里插入图片描述
日期标准化问题和注意力权重可视化。

9. 语音识别

在这里插入图片描述
音频预处理:声谱图(横轴时间,纵轴频率,颜色声波能量)
伪空白输出。
在过去,人工设计音位来表示音频,但是在现在的end-to-end模型中,已经没必要了。必要的是大量的训练数据。
在这里插入图片描述
使用注意力模型
在这里插入图片描述
使用CTC损失函数。
算法思想:RNN的输出包括重复字符和特殊的空白符。CTC损失函数的原则就是将空白字符之间的重复的字符折叠起来。

10. 触发字检测

在这里插入图片描述
在这里插入图片描述
一个RNN结构。在某人说出触发字之前,将训练集目标标签都设置为0,这个点之后设为1。
缺点:不平衡训练集,0的数量比1太过于多。
其他方法:多次输出1。

11. 结论和致谢

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值