[DeeplearningAI笔记]序列模型3.7-3.8注意力模型
5.3序列模型与注意力机制
觉得有用的话,欢迎一起讨论相互学习~Follow Me
3.7注意力模型直观理解Attention model intuition
长序列问题 The problem of long sequences
- 对于给定的长序列的法语句子,在下图中的网络中,绿色的编码器读取整个句子,然后记忆整个句子,再在感知机中传递,紫色的解码神经网络将生成英文翻译。
- 人工的方法不会通过读取在记忆整个句子中的内容,然后从零开始翻译成一个英语句子,人工翻译做的是先翻译出句子的部分,再看下一部分,并翻译这一部分,再看下一部分,然后翻译这一部分,一直进行下去。会一部分一部分的进行翻译,因为一次性看完并记忆所有句子是十分困难的。
- 对于机器翻译的 编码解码 结构,对于短句子,其会有很高的Bleu得分,但是对于长句子 比如说大于30-40词 的句子而言,它的表现就会变差,而对于很短的句子由于很难从中学到有用的知识,翻译的性能也不太好。而对于长句子,注意力模型 会和人类翻译一样,每次翻译句子中的一部分,从而提高句子翻译长句子的能力。
注意力模型 Attention model intuition
Bahdanau D, Cho K, Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate[J]. Computer Science, 2014.
- 这个模型一般使用在长句子上,此处使用短句子进行举例。 示例 Jane visite I'Afrique en Septembre ,假定使用一个双向的RNN网络:
- 与普通的RNN不同的是,注意力模型不会看每一个输入的单词,而是对输入的每个单词选择一定的 注意力权重 用于 表示这个单词对于正在翻译的单词具有多大的影响 下图中的 \(\alpha^{<1,1>},\alpha^{<1,2>},\alpha^{<1,3>}\) 分别表示前三个单词对第一个词语的翻译具有的影响力。
- 对于第二个要翻译的单词,有 \(\alpha^{<2,1>},\alpha^{<2,2>},\alpha^{<2,3>}\) 用以表示在翻译第二个单词时,要分别放多少注意力在前三个单词上。并且前一步翻译的输出也会作为下一步的输入。
3.8注意力模型细节Attention model
- 特征提取模型 使用的双向循环神经网络,这样其对于 前向传播 和 后向传播 分别有激活值\(\overrightarrow{a^{<t'>}}和\overleftarrow{a^{<t'>}}\) , 对于一个时间步,使用\(a^{<t'>}表示一组前向传播和后向传播的激活值 即 \overrightarrow{a^{<t'>}}和\overleftarrow{a^{<t'>}}\) ,即有 \(a^{<t'>}=(\overrightarrow{a^{<t'>}},\overleftarrow{a^{<t'>}})\)
- 翻译 使用的是一个单向循环神经网络,用状态S表示时间步序列,第一个时间步输出为\(y^{<1>}\),使用参数\(\alpha^{<1,t>}表示上下文的特征对状态S^{<t>}的翻译的影响\),使用\(C^{<t>}\)表示状态\(S^{<t>}\)时的输入。其中其满足以下公式:
\[<1> 注意力权重之和为1\]
\[\sum_{t'}\alpha^{<1,t'>}=1\]
\[<2> 特征步的激活值和注意力权重的乘积之和成为翻译RNN的输入\]
\[C^{<1>}=\sum_{t'}\alpha^{<1,t'>}a^{<t'>}\]
- 即当你在t处生成输出词时,你应该花多少注意力在第t'个输入词上
注意力计算方法 Computing attention \(\alpha^{<t,t'>}\)
[1] Bahdanau D, Cho K, Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate[J]. Computer Science, 2014.
[2] Xu K, Ba J, Kiros R, et al. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention[J]. Computer Science, 2015:2048-2057.
- \(a^{<t,t’>}\) 是你应该在\(a^{<t'>}\)上的注意力数量,但你需要翻译第t个输出的翻译词。
- \(a^{<t,t'>}\)=amount of attention \(y^{<t>}\) should pay to \(a^{<t'>}\)
- 公式
- 要计算以上公式,重点是需要计算出\(e^{<t,t'>}\),而\(e^{<t,t'>}\)的计算需要通过上一个翻译状态的值\(s^{<t-1>}\)和上一个单项循环模块的输出值\(s^{<t-1>}\)
- 即如果你想要决定要花多少注意力在t'的激活值上,它会很大程度的取决于上一个时间步的隐藏状态的激活值,你没有当前状态的激活值,因为上下文会输入到这里,所以当前状态的激活值还没有被计算出来。
- 虽然我们能够知道\(a^{<t,t'>}\)的关键项和上一个状态的隐藏项\(s^{<t-1>}\)与特征提取模型中本状态的激活值\(a^{<t'>}\)有关,但并不知道明确的函数对应关系,这可以通过一个小型的神经网络进行学习这个函数。
缺点 这个算法的缺点是其算法的复杂度是\(O(n^{3})\),如果有\(T_x\)个输入单词和\(T_y\)个输出单词,于是注意力参数的总数就是\(T_x乘以T_y\)
应用
- 这个算法不仅可以用于机器翻译,也可以被用于 图片加标题
- 日期标准化问题
- July 20th 1969-->1969-07-20;
- 23 April,1564-->1564-04-23
- 可视化不同输入输出的注意力权重 :
[DeeplearningAI笔记]序列模型3.7-3.8注意力模型的更多相关文章
- [DeeplearningAI笔记]序列模型3.9-3.10语音辨识/CTC损失函数/触发字检测
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.9语音辨识 Speech recognition 问题描述 对于音频片段(audio clip)x ,y生成文本 ...
- [DeeplearningAI笔记]序列模型1.7-1.9RNN对新序列采样/GRU门控循环神经网络
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.7对新序列采样 基于词汇进行采样模型 在训练完一个模型之后你想要知道模型学到了什么,一种非正式的方法就是进行一次新序列采 ...
- [DeeplearningAI笔记]序列模型3.6Bleu得分/机器翻译得分指标
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.6Bleu得分 在机器翻译中往往对应有多种翻译,而且同样好,此时怎样评估一个机器翻译系统是一个难题. 常见的解决 ...
- [DeeplearningAI笔记]序列模型3.3集束搜索
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.3 集束搜索Beam Search 对于机器翻译来说,给定输入的句子,会返回一个随机的英语翻译结果,但是你想要一 ...
- [DeeplearningAI笔记]序列模型3.2有条件的语言模型与贪心搜索的不可行性
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.2选择最可能的句子 Picking the most likely sentence condition lan ...
- [DeeplearningAI笔记]序列模型3.1基本的 Seq2Seq /image to Seq
5.3序列模型与注意力机制 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1基础模型 [1] Sutskever I, Vinyals O, Le Q V. Sequence to Se ...
- [DeeplearningAI笔记]序列模型1.10-1.12LSTM/BRNN/DeepRNN
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.10长短期记忆网络(Long short term memory)LSTM Hochreiter S, Schmidhu ...
- [DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和 ...
- [DeeplearningAI笔记]序列模型1.3-1.4循环神经网络原理与反向传播公式
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.3循环神经网络模型 为什么不使用标准的神经网络 假如将九个单词组成的序列作为输入,通过普通的神经网网络输出输出序列, 在 ...
随机推荐
- Linux 深入理解inode/block/superblock
基础命令学习目录首页 原文链接:https://blog.csdn.net/Ohmyberry/article/details/80427492 档案系统特性 传统的磁盘与档案系统之应用中,一个分割槽 ...
- 曾经我是一个只会excel的数据分析师,直到我遇到了……
我是一个数据分析师. 准确来说我是一个当年只会excel数据透视表,就天不怕地不怕地来当数据分析师的人.当年的某一天,我的老板Q我: 小刘啊,我小姨子给了我一个全国市委书记的名单,你帮我看看,有什么规 ...
- Oracle 11g用exp无法导出空表的处理方法
Oracle 11G在用EXPORT导出时,空表不能导出. 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment ...
- mysql基础知识大全
前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里作简单概括性的介绍,具体的细节还是需要自行搜索.当然本文还有很多遗漏的地方,后续会慢慢补充完善. 数据库和数据库软件 数据库是 ...
- 5月5号周二课堂练习:简评cnblogs.com的用户体验
一.用户类型 在博客园上写博客,提问题,浏览感兴趣的博客帖子的活跃用户. 二.对cnblogs的期望 在博客园上写博客更流畅,制作手机版的APP可以随时随地在线浏览大牛们写的博客,提出的问题能更好的更 ...
- Traffic Steering for Service Function Chaining
Introduction 目前通过vlan标签来把流量引向对应的sfc 以前的sfc静态(SFs相邻组成SFC),有了sdn之后具有动态性.(SFs不需要彼此相邻.将流量动态地导向所需的SFs.) 流 ...
- TCP系列49—拥塞控制—12、DSACK下的拥塞撤销
一.概述 DSACK下的虚假重传的检测我们之前重传部分的文章已经介绍过了,这里简单说一下拥塞控制部分的实现. linux内部会维护一个undo_retrans状态变量,其值为已经重传的次数减掉被DSA ...
- (转)ActiveMQ的重连机制
花了一天的时间,终于搞明白了我的疑问. failover://(tcp://localhost:6168)?randomize=false&initialReconnectDelay=100& ...
- websocket服务器+客户端
<?php $demo = new ws('192.168.90.47',12345); $demo->run(); class ws { //当前服务端主连接 private $curr ...
- i18n实现前端国际化(实例)
在今日的需求中需要利用 i18n 这个框架来实现前端的国家化操作,下图是实现效果: 点击选择框实现网页上语言的切换: 下面开始实现过程: 所需工具: - jquery-3.3.1.js 下载地址 ...