吴恩达《深度学习-序列模型》3 -- 序列模型和注意力机制

本文详细探讨了吴恩达的《深度学习》中关于序列模型的内容,包括基础模型、集束搜索(Beam Search)及其改进,以及注意力机制在翻译和语音识别中的应用。通过 Beam Search 的长度归一化和选择集束宽B的讨论,阐述了如何在序列模型中寻找最优序列。同时,介绍了评估翻译质量的Bleu Score,并分析了定向搜索的误差。最后,深入讲解了注意力机制如何帮助RNN处理长序列,以及在语音识别和触发词检测中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Basic model基础模型

例如将法语翻译成英语:
这里写图片描述
首先将法语单词逐个输入到CNN,这部分称为encoder network,然后一次输出一个英语单词,这部分称为decoder network。
这里写图片描述
CNN结合RNN解读图片内容,如上图输入一副图像,生成一句描述图像的句子。

2.Picking the most likely sentence最优句子

这里写图片描述
如图,是语言模型和机器翻译的流程对比,可以发现语言模型和机器翻译的decoder network部分非常相似,区别是语言模型的输入为0向量,所以输出为随机的一句话的概率。而机器翻译decoder network输入是非零向量,如果将机器翻译的encoder结果输入语言模型,语言模型的输出就是有输入决定的几句话的概率,称之为条件语言模型。

那么在输出的几句话中,如何选择最佳的一句呢?
这里写图片描述
也就是找到能使条件概率最大的的序列,通常做法为Beam search集束搜索,下一节会讲。

为什么不用greedy search贪婪搜索呢?
贪婪搜索就是逐词的找到其概率最大的那个词,也就是先确定第一个词,找到其概率最大的词,然后确定第二个、第三个直到最后一个,这样产生的结果也不错,但我们需要的是最优序列,事实证明这样搜索通常很难找到我们所要的最佳序列

3. 序列模型—-定向搜索

Beam search集束搜索:
集束搜索也是逐词确定,但是与贪心搜索不同的是,它设置参数B(集束宽),对每个位置的词选择多个可能性较大的词,如B=3,那么对于第一个词来说,选择3个可能性最大的词,存到内存。
具体做法是:
1)将法语句子输入encoder network,然后输入softmax,输出第一个词 y<1> y < 1 > 的10000(词典长度)概率值 P(y<1>|x) P ( y < 1 > | x ) ,取前三个存起来。比如in,jane,september;
这里写图片描述
2)第二步是要选择第一个词和第二个词组合的可能性最大的前三个,第一个词有3种可能,对于每种可能,作为输入代入decoder的下一个单元,产生10000个概率值,也就是一共3*10000=30000个概率值 P(y<2>|x,y<1>) P ( y < 2 > | x , y < 1 > ) ,然后计算组合概率,公式如下:

P(y<1>,y<2>|x)=P(y<1>|x)P(y<2>|x,y<1>) P ( y < 1 > , y < 2 > | x ) = P ( y < 1 > | x ) ∗ P ( y < 2 > | x , y < 1 > )

选择概率最大的前3个,存入内存。
这里写图片描述
这里写图片描述

4. 序列模型—-改进定向搜索

长度归一化(length normalization)

定向搜索的目标是要最大化条件概率:

argmaxyt=1TyP(y<t>|x,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值