序列模型(三)- 序列模型和注意力机制

本次学习笔记主要记录学习深度学习时的各种记录,包括吴恩达老师视频学习、花书。作者能力有限,如有错误等,望联系修改,非常感谢!


第一版       2022-07-22        初稿

一、序列结构的各种序列(Various sequence to sequence architectures)

在这里插入图片描述
如图的法语翻译为英语,首先建立编码网络(图下左),是一个RNN结构,RNN的单元可以是GRU也可以是LSTM,每次只向该网络输入一个法语单词,将输入序列接收完毕后,会输出一个向量代表这个右边解码器的输入序列。
解码器每次输出一个翻译后的单词,直到结尾。
在这里插入图片描述
给一张猫图,能自动的输出改图的描述。图下为AlexNet结构,去掉最后的softmax层,预训练的网络可以是图像的编码网络。
得到4096维的向量,输入到RNN中,生成图像的描述,

二、选择最可能的句子(Picking the most likely sentence)

在这里插入图片描述
1.建立一个语言模型:
能让你估计句子的可能性。
2.机器翻译:
绿色是编码网络,而紫色是解码网络,解码网络和刚才语言模型几乎一摸一样,而语言模型几乎以零向量开始,而解码网络以绿色输出为输入,称为条件语言模型。概率取决于输入的法语句子。
在这里插入图片描述
将被告知不同英语翻译所对应的概率,并不是从得到的分布中随机取样,而是找到一个英语句子y,使得条件概率最大化。通常算法是Beam Search。
在这里插入图片描述
为什么不用贪心搜索呢?
贪心搜索,生成第一个词的分布后,将会根据条件语言模型选出最有可能的第一个词进入机器翻译模型,然后挑选第二个词等。
但是,真正要做的是一次性挑选整个单词序列,从y1到yTy使得整体的概率最大化。

如图第一个翻译明显比第二个好,但挑选完Jane is后,若每次挑选则going概率会高。

三、集束搜索(Beam Search)

在这里插入图片描述
集束搜索算法,首先挑选要输出的英语翻译中的第一个单词,列出了10000个词的词汇表(忽略大小写),绿色为编码网络,紫色为解码部分,来评估一个单词的概率值。
1.集束搜索会考虑多个选择,会有个参数B,叫做集束宽,本例设为3,于是集束搜索会考虑3个可能结果,然后存入计算机内存。
2.针对每个第一个单词考虑第二个单词是什么,如下图Step1到Step2的过程。
3.为了评估第二个词的概率,如图右上第一个网络,假设第一个估计in,传给下一个,在in情况下第二个是什么单词。找的是第一个和第二个单词对的最大概率。网络机构下为概率。
在这里插入图片描述
4.如第二个网络图,若第一个单词是jane,同样操作。
5.若搜索到"in September",“jane is”,"jane visits"三个可能,去掉setember作为第一个单词的选择,减少到两种可能。
在这里插入图片描述
6.集束搜索会挑选出针对前三个单词的三个最可能的选择。
7.再加一个单词继续,直到结尾标志

四、改进集束搜索(Refinements to Beam Search)

在这里插入图片描述
长度归一化是对集束算法稍作调整的一种方式。
概率小于1,乘起来会得到很小很小的数字,会造成数值下溢。实践中取log,严格单调递增的函数。最大化logP。
同样可以归一化,除以翻译结果的单词数量。更柔和的方法,是在Ty上加上指数a。有时称作“归一化的对数似然目标函数”
在这里插入图片描述
B很大,更好的结果,但算法运行慢,内存占用大;
B很小,结果没那么好,但运行块。
不同于广度优先搜索深度优先搜索,集束搜索更快,但不保证找到argmax的准确最大值。

五、集束搜索的误差分析(Error analysis in Beam Search)

在这里插入图片描述
一部分是神经网络结构,实际是个编码器-解码器结构;另一部分是集束搜索算法。
上述模型计算P(y*|x),RNN计算P(yhat|x),比较两者大小,其实是小于等于。
在这里插入图片描述
1.P(y*|x)大,意味着,集束搜索选择了yhat,而y*更大。
2.P(y*|x)小于等于,可能是RNN模型出错了。
若使用了长度归一化,就不是比较这两种可能性的大小,而是比较长度归一化后的最优化目标函数值。
在这里插入图片描述
如图过程,即误差分析过程。

六、(选)Bleu得分(Bleu Score)

在这里插入图片描述
Bleu(bilingual evaluation understudy双语评估替补)做的是,给定一个机器生成的翻译,它能够自动地计算一个分数来衡量机器翻译的好坏。
机器翻译缩写为MT,观察输出结果的每个单词是否出现在参考中,被称为机器翻译的精确度。
改良的评估:把每个词的积分上限定为它在参考句子中出现的最多次数。在句1中,the出现两次,比句2多。
在这里插入图片描述
使用二元词组,定义截取计数Count_clip,计算其总和为4,除以二元词组的总个数。
在这里插入图片描述
一元词组: P 1 = Σ u n i g r a m s ∈ y ^ C o u n t c l i p ( u n i g r a m ) Σ u n i g r a m s ∈ y ^ C o u n t ( u n i g r a m ) P_1=\frac{\underset{unigrams∈\hat{y}}{\varSigma}Countclip\left( unigram \right)}{\underset{unigrams∈\hat{y}}{\varSigma}Count\left( unigram \right)} P1=unigramsy^ΣCount(unigram)unigramsy^ΣCountclip(unigram)
n元词组: P n = Σ u g r a m s ∈ y ^ C o u n t c l i p ( u g r a m ) Σ u g r a m s ∈ y ^ C o u n t ( u g r a m ) P_n=\frac{\underset{ugrams∈\hat{y}}{\varSigma}Countclip\left( ugram \right)}{\underset{ugrams∈\hat{y}}{\varSigma}Count\left( ugram \right)} Pn=ugramsy^ΣCount(ugram)ugramsy^ΣCountclip(ugram)
在这里插入图片描述
BP为惩罚因子。

七、注意力模型直观理解(Attention Model Intuition)

在这里插入图片描述
在这里插入图片描述
使用双向RNN,不用A表示感知机,S表示RNN的隐藏状态。注意力模型会计算注意力权重,用a<1,1>表示当你生成第一个词时你应该放多少注意力在这个第一块信息处。会有一个上下文c。
在这里插入图片描述
在这里插入图片描述
注意力模型参考。

八、注意力模型(Attention Model)

在这里插入图片描述
如图右方紫,a<1,t>'是注意力权重,a<t’>来自上边。a<t,t’>就是y<t>应该在t’时花在a上注意力的数量。
在这里插入图片描述
s<t-1>是上一个时间步的隐藏状态,a<t’>就是上个时间步的特征是另一个输入。
此算法缺点是要花费三次方的时间。
在这里插入图片描述
日期标准化:

九、语音识别(Speech recognition)

在这里插入图片描述
seq2seq应用于语音识别:
音频数据常见的预处理步骤就是,运行这个原始的音频片段,然后生成一个声谱图。
在这里插入图片描述
注意力机制用于语音识别。
在这里插入图片描述
连接暂时分类:
假设语音一段话,_是空白符。
基本规则是,将空白符之间的重复的字符折叠起来

十、触发字检测(Trigger Word Detection)

在这里插入图片描述
触发字系统,如Apple的Siri。
在这里插入图片描述
如图,要做的是,把一个音频片段计算出它的声谱图特征得到特征向量,然后发放到RNN中,最后要做的是,定义目标标签y。
但0的数量比1多太多。还有个解决办法:其实可以在输出变回0之前,多次输出1。

1


  1. 深度学习-吴恩达 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值