文章目录
- 1. 基础模型
- 2. 选择最可能的句子
- 3. 集束搜索(Beam Search)
- 4. 改进集束搜索
- 5. 集束搜索的误差分析
- 6. Bleu 得分
- 7. 注意力模型直观理解
- 8. 注意力模型
- 9. 语音识别(Speech recognition)
- 10. 触发字检测(Trigger Word Detection)
- 作业
参考:
吴恩达视频课
深度学习笔记
序列模型和注意力机制(Sequence models & Attention mechanism)
1. 基础模型
- seq2seq : 语言翻译
- image to sequence:图片描述
2. 选择最可能的句子
条件语言模型 和之前的 语言模型 一个主要的区别:
- 语言模型 随机地生成句子
- 条件语言模型,你要找到最有可能的英语句子,但是句子组合数量过于巨大,需要一种合适的搜索算法,集束搜索(Beam Search)
3. 集束搜索(Beam Search)
在 集束宽为3时,集束搜索一次只考虑3个可能结果
如果集束宽等于1,就变成了贪心搜索算法
同时考虑多个可能的结果比如3个,10个或者其他的个数,集束搜索通常比贪婪搜索更好
4. 改进集束搜索
上节讲到 集束搜索 要选出条件概率最高的前 B 个,公式如下:
argmaxy∏t=1TyP(y<t>∣x,y<1>,…,y<t−1>)\arg \max _{y} \prod_{t=1}^{T_{y}} P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymaxt=1∏TyP(y<t>∣x,y<1>,…,y<t−1>)
展开就是下面的式子:
P(y<2>∣X,y<1>)P(y<3>∣X,y<1>,y<2>)…P(y<Ty>∣X,y<1>,y<2>…y<Ty−1>)P\left(y^{<2>} \mid X, y^{<1>}\right) P\left(y^{<3>} \mid X, y^{<1>}, y^{<2>}\right) \ldots P\left(y^{<T_{y}>} \mid X, y^{<1>}, y^{<2>} \ldots y^{<T_{y}-1>}\right)P(y<2>∣X,y<1>)P(y<3>∣X,y<1>,y<2>)…P(y<Ty>∣X,y<1>,y<2>…y<Ty−1>)
上式缺点:
- 概率越乘越小,向下溢出
- 式子倾向于给出更短的句子(概率相乘,没有那么小)
采用取 log 的式子:
argmaxy∑y=1TylogP(y<t>∣x,y<1>,…,y<t−1>)\arg \max _{y} \sum_{y=1}^{T_{y}} \log P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymaxy=1∑TylogP(y<t>∣x,y<1>,…,y<t−1>)
再对长度进行归一化:乘以系数
argmaxy1Tyα∑y=1TylogP(y<t>∣x,y<1>,…,y<t−1>)\arg \max _{y} \frac{1}{T_y^{\alpha}}\sum_{y=1}^{T_{y}} \log P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymaxTyα1y=1∑TylogP(y<t>∣x,y<1>,…,y<t−1>)
超参数 α=0.7\alpha = 0.7α=0.7 常用,0 没有归一化,1 完全由长度来归一化
注意:集束搜索 不一定搜到的是最优解,是一种启发式搜索算法,达到较好的效果
如何选择束宽 B:
- B 越大,输出句子越好,计算代价也大,内存占用大
- B 较小,输出效果没那么好,计算快些,内存占用小,产品中常见 B = 10,科研看情况可以取大些,效果好,好发文章
5. 集束搜索的误差分析
怎样才能发现是 Beam搜索 算法出现了问题,还是你的 RNN模型 出了问题?
分析哪种错误更多:
- Beam搜索 算法造成了大部分错误时,才值得花费努力增大集束宽度
- RNN模型 出了更多错,可以进行更深层次的分析,来决定是需要增加正则化还是获取更多的训练数据,抑或是尝试一个不同的网络结构,或是其他方案。(见第三门课)
6. Bleu 得分
机器翻译(machine translation)的一大难题是一个法语句子可以有多种英文翻译而且都同样好,所以当有多个同样好的答案时,怎样评估一个机器翻译系统呢?
BLEU得分背后的理念:观察机器生成的翻译,然后看生成的词是否出现在 至少一个人工翻译参考之中
短的语句更容易有 更高的Bleu 得分(较大的概率:语句中的词语都在 参考语句中),为了平衡这种情况,使用 “简短惩罚”( brevity penalty)
BLEU得分 是一个有用的单一实数评估指标,用于评估生成文本的算法,判断输出的结果是否与人工写出的参考文本的含义相似。
常用于 机器翻译,图像描述, Bleu 有很多开源实现,可以直接下载来用
7. 注意力模型直观理解
注意力权重,a<t,t>a^{<t,t>}a<t,t> 告诉你,当你尝试生成第 ttt 个英文词,它应该花多少注意力在第 ttt 个法语词上面。
当生成一个特定的英文词时,这允许它在每个时间步去看周围词距内的法语词要花多少注意力。
8. 注意力模型
注意力模型如何让一个神经网络只注意到一部分的输入句子。当它在生成句子的时候,更像人类翻译
9. 语音识别(Speech recognition)
10. 触发字检测(Trigger Word Detection)
设备唤醒:手机助理,汽车中控唤醒等
作业
作业:机器翻译+触发词检测
本文地址:https://michael.blog.csdn.net/article/details/108908470
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!