吴恩达-DeepLearning.ai-05 序列模型(三)

吴恩达-DeepLearning.ai-05 序列模型(三)

序列模型和注意力机制

1、基础模型

Sequence to sequence模型(比如:机器翻译):前半部分编码,后半部分解码,进行预测。

image to sequence(图片描述生成):一个CNN训练图片得到softmax层前面的特征,输入到RNN中进行学习训练,得到描述预测。

2、选择最可能的句子

语言模型和机器翻译(条件语言模型)的不同之处在于:语言模型的输入x(1)=0向量,而机器翻译通过后半部分的输入是通过编码其他语言得到的特征,后面都是一个RNN语言模型进行模型预测。

如果要将法语翻译成英文,当你输入一个法语句子,模型将会告诉你所有可能的英语翻译结果的可能性,你需要做的不是从得到的结果中进行随机采样,你要做的是找到一个英语句子y,使得对应的条件概率最大。这时就需要一个算法,找到那个句子,方法通常是 定向搜索(beam search)。

为什么不用贪婪搜索(greedy search)?原因是贪婪搜索是先选出概率最大的第一个词,然后选出第二个词,以此类推。但是我们需要的是一次性挑选出整个句子,来使得整体的概率最大化,就好像下面的两句话,我们希望得到的是第一个。

3、定向搜索

beam search算法(B=3):
首先会一次输出第一个单词最可能的3个选项,然后存到计算机中(解码器的softmax算法会输出概率最大的前三个)。
然后会对得到的3个词,分别进行第一步的同样的操作(但是是要找到概率最大的第一个和第二个单词组成的单词对)。
其次重复上面操作得到所有完整的结果之后得到条件概率最大的那个句子。



4、改进定向搜索

长度归一化:对于前面的条件概率,会得到一个很多小于1的数相乘的结果,最后会得到一个远小于1的数,造成溢出。通常在实践中会加一个log,这样,对于前面的相乘,变为了log的求和方式。并且对于原来的目标函数因为相乘会使得结果越小,所以算法更倾向于选择简短的句子(数量少,概率大)。对于加log之后也有一个问题,log的结果都是小于等于1(我认为在这里小于0),加起来的项越多,结果越负。所以在这里不进行最大化,将结果进行归一化(除以翻译结果的总词数量),得到取每个单词概率结果的平均值,减少了对输出长结果的惩罚。然后再进行最大化搜索。(厉害了,体会到一个算法改进的动机和一些细微的变化)

定向搜索算法的优缺点:

5、定向搜索的误差分析

进行误差分析主要是为了分析出当算法结果不好时我们需要进行调节,是由于定向搜索算法引起的,还是我们的RNN模型不好引起的呢?



6、Bleu得分修正

对于一个机器翻译问题结果通常有多个,并且都很好,怎么评价这些翻译那个更好呢?这时候通常需要用Bleu得分来解决。
Bleu得分:用来评估机器预测的结果和人工的结果之间的相似性。(应用在机器翻译、图像描述生成,这种可以有很多个正确结果输出的问题里)




7、注意力模型直观理解

机器翻译中RNN对于短句效果很好,但是对于长句效果不好,模型很难记住很长的句子,注意力机制会带一种和人类翻译类似的方式(一次只翻译句子的一部分),
注意力模型:根据句子的距离计算注意力权重,从第一个开始,然后第二个...,得到注意力权重。这表示当你翻译第一个词时应该花多少注意力在每个词上。对于第二个词要考虑它上下文的词注意力权重,以此类推。这种注意力权重说明当你要翻译生成第t个英文单词,你需要花多少注意力在第t个法语词上,当你生成一个特定的英文词时,这允许他在每个时间步上看需要花多少注意力在周围上下文词距内的法语词上。


8、注意力模型




9、语音辨识

有幸听到同学说过他们的语音识别项目,这个问题前期的数据准备是一个很麻烦的过程,需要人工提供大量的语音数据,同时还要对语音数据和文本数据进行匹配,对不上等于白弄,效果肯定不好。这是个庞大的工程



10、触发字检测






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值