吴恩达深度学习 第五课 第三周 序列模型和注意力机制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吴恩达深度学习 第五课 第三周 序列模型和注意力机制相关的知识,希望对你有一定的参考价值。


文章目录

  • ​​基础模型概述​​
  • ​​选择最可能的句子​​
  • ​​集束搜索(beam search)​​
  • ​​改进集束搜索​​
  • ​​集束搜索的误差分析​​
  • ​​机器翻译评估(bleu score)​​
  • ​​注意力模型直观理解​​
  • ​​语音识别​​
  • ​​CTC算法​​
  • ​​触发字检测(trigger word detection)​​


本文概要,seq2seq模型的学习包含了机器翻译和语音识别领域,此外,还有集束搜索算法(beam search)和注意力机制(attention model)

基础模型概述

当我们的输入和输出都是一个序列时,比如机器翻译,基础的一种模型是利用两个网络:编码网络(encoder network)和解码网络(decoder network)。
编码网络RNN接受原始出入并输出一个向量表达输入序列,之后解码网络接受编码网络的输出为输入,训练我们想要的输出结果,同时每次生成的输入都会传递到下一单元来预测输出。
类似的,如果我们的模型要给一张照片添加描述,可以输入一张照片,借用图片处理模型例如Alexnet输出一个包含图片特征的向量,出入到RNN中来生成图像的描述。

选择最可能的句子

seqseq机器翻译模型与语言模型十分相似的,区别在于输入处变为编码器输出的特征向量,而不是语言模型的零向量,因而我们称之为条件语言模型。

吴恩达深度学习


在机器翻译的结果选择上,我们没有使用贪心算法。第一点,首先我们没有使用在结果分布中随机抽取结果的方法,显然不和我们的初衷,我们想要一个最好的翻译结果而不是随机的–选取吴恩达深度学习的y。第二点,在选取结果时我们没有选择贪心算法,以下图为例,贪心算法会选择每一步概率最大的结果,而由于is in等常用词明显概率更大,因为贪心算法会选择第二种翻译结果,这显然会将结果带偏,我们选择的集束搜索将在下面介绍。

吴恩达深度学习

集束搜索(beam search)

集束搜索首先会挑选出翻译结果的第一个单词,挑选的方式是选择三个或多个最可能的单词,这里选择的数量是一个超参数–集束宽(beam width),接下来算法会针对三个词语选择第二个单词,这样我们获取了最可能的三个单词对,然后在第二个单词的基础上继续寻找第三个单词,直至输出句尾符号。这里我们采用的是三个网络副本,每个网络的第一个单词不同,所以不需要初始化网络副本。最后我们获取了三个翻译结果,选择概率最大的结果。

吴恩达深度学习

改进集束搜索

这里我们使用长度归一化来改进模型。我们的目的是极大化集束搜索的概率,而集束搜索的概率借助于极大似然估计可以转化为概率的乘积。而概率值都是小于1的,乘积会特别小,因为我们可以回选择取对数,log是一个增函数,因为不会影响每个翻译结果的概率大小的变化。

对于目标函数,我们还可以做一点优化,我们知道句子的长短会影响到概率,每当增加一个单词就会乘一个概率,因为模型会倾向于更少的单词来翻译,所以我们可以对目标函数再做一步归一化,即目标函数除以预测的单词数量,这样就减少了对长输出的惩罚。

在实践中,我们会给吴恩达深度学习添加一个指数a,当a为1,相当于完全长度归一化;当a为0,则为没有完全归一化,当a介于0到1,则介于未归一化和完全归一化之间。

吴恩达深度学习

集束搜索的误差分析

我们知道,误差分析和束搜索算法是相互作用,当模型出现问题,我们怎么确定是RNN(编码网络和解码网络)出现问题还是集束搜索算法的问题呢?

我们假设标准的答案是吴恩达深度学习,首先通过RNN网络计算标准答案的概率然后与之前的输出结果概率作比较,如下图,如果标准答案概率大于之前的结果概率,说明是集束搜索的问题;反之,如果标准答案概率小于之前的结果概率,则说明是RNN的责任更大。

吴恩达深度学习

机器翻译评估(bleu score)

机器翻译不像图像识别那样测量准确性就可以了,机器翻译通过blue得分,考虑的是一元词组、二元词组、三元词组等。

首先,考虑单词出现的准确度,如果一个单词出现在标准结果,那么就可能是合理,但这里我们要考虑一种特殊情况,如下,如果机器翻译的结果是7个the,准确度也为1,因而我们可以限定一个单词可以出现的最大次数,下图中我们知道the出现的最大次数为2,所以我们限定翻译结果the出现的最大次数为2,那么准确度就为吴恩达深度学习

吴恩达深度学习


接下来考虑二元词组的,一是要考虑二元词组出现的次数,而是考虑不同的二元词组。

吴恩达深度学习


接下来我们定义一下最终的bleu得分,吴恩达深度学习是n元数组的准确度,那么blue得分即为取平均值做指数运算,这里的BP包含了“简短惩罚”,事实上,机器翻译倾向于翻译较少的单词,这样可以提高准确度。所以这里BP是一个惩罚因子,惩罚输出过短的结果。

吴恩达深度学习

注意力模型直观理解

注意力模型分为两部分,一部分是特征提取(双层网络),包含了注意力权重,二是生成网络RNN。特征提取会计算隐藏状态与生成网络状态的相关性,生成注意力权重,通过权重化的隐藏特征与RNN网络的单元状态结合生成下一单元的状态。

吴恩达深度学习


权重的表示方法吴恩达深度学习,表示我们在生成网络的一个状态时吴恩达深度学习应该在吴恩达深度学习时花在a上的注意力的数量。

吴恩达深度学习

语音识别

CTC算法

语音输入比如10秒的语音,100赫兹,即每秒有100个样本,那么一共有1000个输入,输出可能没有这么多,因而CTC算法允许这样的输出"ttt___",算法会将没有被下划线分割的重复的字符折叠起来,而下划线用来表示特殊的空白符与空格符不同。

触发字检测(trigger word detection)

一个可用的算法是,把声频片段计算出他的生谱图特征得到特征向量,然后放入RNN中,最后定义我们的目标标签y,当出现我们设定的比如"hi siri",就把这个点的标签设为1,这种算法的问题在于构建了一个不平衡的数据集,0比1多太多了。

吴恩达深度学习


一种粗暴的方法是当出现目标值时,将附近的标签都设为1,增加正样本。

吴恩达深度学习


参考​​第三周 序列模型和注意力机制​​Coursera吴恩达《序列模型》课程笔记


以上是关于吴恩达深度学习 第五课 第三周 序列模型和注意力机制的主要内容,如果未能解决你的问题,请参考以下文章

吴恩达《深度学习》第五门课循环序列模型(RNN)

吴恩达深度学习课程第一课 — 神经网络与深度学习 — 第三周练习

吴恩达机器学习笔记-第三周

吴恩达实验(神经网络和深度学习)第一课第三周,代码和数据集,亲测可运行

吴恩达深度学习工程师 04.卷积神经网络 第三周目标检测 基本的对象检测算法

自然语言处理与词嵌入——吴恩达DeepLearning.ai深度学习笔记之序列模型