Attention模型
李宏毅深度学习
https://www.bilibili.com/video/av9770302/?p=8
Generation
生成模型基本结构是这样的,
这个生成模型有个问题是我不能干预数据生成,这里是随机的,
Conditional Generation
这里我们通过初始输入来增加条件,
比如要根据图片来深层文字,这里以image作为输入
当然首先要用cnn将图片生成embeding
为了防止RNN在进行的过程中forget这个输入,可以把图片作为每一步的输入传给网络
在NLP中,就是Sequence to Sequence模型,
seq2seq可以用作机器翻译或chatbot应用,
和上面的image case不同在于,
首先sentence的编码需要用rnn,而不是cnn,并且这里encoder和decoder是可以jointly train的,即同时train出encoder和decoder的参数
如果做的是chatbot,那么会有下面的问题,
会出现Hi,Hi,Hi........的对话
因为在没有上下文的情况下,对Hi的回答会一直是Hi
直觉的解法,要让网络知道上下文,就把历史encoder的结果级联起来,输出给decoder,让他知道之前说过什么
Attention
attention模型如其名,就是注意力模型
传统的情况,会把整个数据,比如整张图片,或者整段话,作为输入给网络
但这样也许是不合理的,比如下面的例子,在翻译machine的时候,我只需要看机器两个字就好,这样可以更加专注
那么怎么达到这个效果了
对于网络的设计而言,直觉上,我们可以通过一组参数来选择输入中的那一部分对网络可见
这组参数可称为attention,如何产生这些参数,
可以看到,我们可以用decode的输出z0和每个输入,用match function算一个attention
match function,这里给出多种选择
Attention模型的整个过程如下,
算出一组attention向量a,然后这里加上一个softmax是为了normalization,让向量的和为1
然后用attention和输入笛卡尔积,得到c0,把c0作为输入给到decoder
可以看到这里,c0是根据attention产生的,这里只包含‘机器’
然后这个过程可以这么一直做下去,
同样对于图片,我们也可以用attention模型,
用attention去选择每次激活哪些filter
最终得到效果如下,高亮部分表示下面划线的词,所attention的部分
Memory Network
个人理解,这个是attention network的一种,
比如下面的例子,是一个智能问答系统,
通过query和document来计算attention,从而选择相应的文档子集,传给深度网络,得到answer
这个模型是可以整个joinit训练的,包含document产生embedding的参数,query embedding的参数,Match的参数等
更复杂的模型,
这里产生attention和抽象文档内容,分别使用不同的embedding,这样就需要把document做两次encoding,参数会比较多
还加上Hopping过程,即得到Extracted Informatica后,不立刻传给DNN做为输入
而是循环做多次,attention生成和内容抽取的工作,过程如下,
Nenual Turing Machine
这种网络的区别在于,前面的attention网络都是在不断的变化attention,但是不会修改内容
这种网络每次会去改变memory本身的内容
这一部分和attention一样,先更加memory和attention生成抽样内容r0,将r0输入网络后,产生3个输出,k,e,a
这里k是用来更新attention的,和之前一样,
而e和a是用来改变内容的,e用于清空内容,a用于填充内容,具体公式如下,
级联起来就是这样,
Attention模型的更多相关文章
- 文本分类实战(五)—— Bi-LSTM + Attention模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 人工机器:NDC-谷歌机器翻译破世界纪录,仅用Attention模型,无需CNN和RNN
终于找到ML日报的微信链接,抄之...................................... 请拜访原文链接:[谷歌机器翻译破世界纪录]仅用Attention模型,无需CNN和RNN. ...
- 从Seq2seq到Attention模型到Self Attention
Seq2seq Seq2seq全名是Sequence-to-sequence,也就是从序列到序列的过程,是近年当红的模型之一.Seq2seq被广泛应用在机器翻译.聊天机器人甚至是图像生成文字等情境. ...
- seq2seq聊天模型(三)—— attention 模型
注意力seq2seq模型 大部分的seq2seq模型,对所有的输入,一视同仁,同等处理. 但实际上,输出是由输入的各个重点部分产生的. 比如: (举例使用,实际比重不是这样) 对于输出"晚上 ...
- 吴裕雄--天生自然 pythonTensorFlow自然语言处理:Attention模型--训练
import tensorflow as tf # 1.参数设置. # 假设输入数据已经转换成了单词编号的格式. SRC_TRAIN_DATA = "F:\\TensorFlowGoogle ...
- 吴裕雄--天生自然 pythonTensorFlow自然语言处理:Attention模型--测试
import sys import codecs import tensorflow as tf # 1.参数设置. # 读取checkpoint的路径.9000表示是训练程序在第9000步保存的ch ...
- 深度学习之seq2seq模型以及Attention机制
RNN,LSTM,seq2seq等模型广泛用于自然语言处理以及回归预测,本期详解seq2seq模型以及attention机制的原理以及在回归预测方向的运用. 1. seq2seq模型介绍 seq2se ...
- [转] 图解Seq2Seq模型、RNN结构、Encoder-Decoder模型 到 Attention
from : https://caicai.science/2018/10/06/attention%E6%80%BB%E8%A7%88/ 一.Seq2Seq 模型 1. 简介 Sequence-to ...
- 深度学习之Attention Model(注意力模型)
1.Attention Model 概述 深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但是在我们深入仔细地观 ...
随机推荐
- [转] 阿里研究员谷朴:API 设计最佳实践的思考
API是软件系统的核心,而软件系统的复杂度Complexity是大规模软件系统能否成功最重要的因素.但复杂度Complexity并非某一个单独的问题能完全败坏的,而是在系统设计尤其是API设计层面很多 ...
- MySQL 8 中新的复制功能
MySQL 8 中新的复制功能使得操作更加方便,并帮助用户更好地观察复制过程中内部发生的情况. 使用 MySQL 5.7.17 获取 MySQL 组复制插件是一项巨大的工作.组复制是一个新的插件,通过 ...
- 减少网站跳转时间,增强网站数据安全——HSTS 详解
近年来随着 Google.Apple.百度等公司不断推动 HTTPS 普及,全网 HTTPS 已是大势所趋.目前多数网站都已经支持 HTTPS 访问,但是在由 HTTP 转向 HTTPS 路程中,不少 ...
- Atitit 华为管理者内训书系 以奋斗者为本 华为公司人力资源管理纲要 attilax读后感
Atitit 华为管理者内训书系 以奋斗者为本 华为公司人力资源管理纲要 attilax读后感 序 言上篇:价值创造.评价与分配第一章 全力创造价值1.1 围绕价值创造展开人力资源管理1.1.1 什 ...
- svg中实现文字随曲线走向,HTML直接写和JavaScript创建对象两种方式
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...
- Go使用详解
1.什么是Go keep it simple stupid的编程语言 2.安装 以Ubuntu为例 # 下载安装包 wget https://storage.googleapis.com/golang ...
- IFRAME练习 各种调用
parent.html. <html> <head> <script type="text/javascript"> function say( ...
- Linux配置定时,使用 crontab -e 与 直接编辑 /etc/crontab 的区别
转自:http://blog.csdn.net/catoop/article/details/41821395 版权声明:本文为博主原创文章,未经博主允许不得转载. Linux配置定时任务,大家都知道 ...
- redis安装相关下载
redis-4.0.1.gem下载网址 https://rubygems.org/gems/redis/ rubyinstaller-2.3.3-x64.exe下载网址 http://dl.bintr ...
- Ubuntu 16.10 server 相关
1)安装图形化界面 sudo apt-get install xinit sudo apt-get install gnome 2)启用root账号 ① sudo passwd root ② 修改/e ...