李宏毅深度学习

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用于填充内容,具体公式如下,

级联起来就是这样,

转载于:https://www.cnblogs.com/fxjwind/p/9155789.html

Attention模型相关推荐

  1. Tensorflow 自动文摘: 基于Seq2Seq+Attention模型的Textsum模型

    Github下载完整代码 https://github.com/rockingdingo/deepnlp/tree/master/deepnlp/textsum 简介 这篇文章中我们将基于Tensor ...

  2. 基于多篇经典论文综述Attention模型方法(附源码)

    来源:PaperWeekly 本文约4163字,建议阅读8分钟. 本文基于几篇经典的论文,对 Attention 模型的不同结构进行分析.拆解. 先简单谈一谈 attention 模型的引入.以基于 ...

  3. 【知识星球】ElementAI提出超复杂多尺度细粒度图像分类Attention模型

    欢迎大家来到<知识星球>专栏,这里是网络结构1000变小专题. 作者&编辑 | 言有三 1 Attention模型 Attention机制已经被证明在很多的任务中都能提升其性能,我 ...

  4. 人工机器:NDC-谷歌机器翻译破世界纪录,仅用Attention模型,无需CNN和RNN

    终于找到ML日报的微信链接,抄之...................................... 请拜访原文链接:[谷歌机器翻译破世界纪录]仅用Attention模型,无需CNN和RNN. ...

  5. Encoder-Decoder模型和Attention模型

    Encoder-Decoder模型及RNN的实现 Encoder-Decoder(编码-解码)是深度学习中非常常见的一个模型框架,比如无监督算法的auto-encoding就是用编码-解码的结构设计并 ...

  6. Seq2Seq Attention模型

    首先强调一下图文来源,真正的完全图解Seq2Seq Attention模型.本人目前用到此模型,发现该知乎作者的文章写得通俗易懂,于是整理作为自己的笔记.如果小伙伴对模型中各种隐层状态感到不解,请看我 ...

  7. 【自然语言处理】1. 细讲:Attention模型的机制原理

    NLP系列讲解笔记 本专题是针对NLP的一些常用知识进行记录,主要由于本人接下来的实验需要用到NLP的一些知识点,但是本人非NLP方向学生,对此不是很熟悉,所以打算做个笔记记录一下自己的学习过程,也是 ...

  8. 摒弃encoder-decoder结构,Pervasive Attention模型与Keras实现

    1.引言 现有的主流机器翻译模型,基本都是基于encoder-decoder的结构,其思想就是对于输入句子序列,通过RNN先进行编码(encoder),转化为一个上下文向量context vector ...

  9. 【PyTorch】8 语言翻译Torchtext实战——英语和德语翻译、Attention模型、 Pytorch 1.8 安装

    torchtext 语言翻译 1. 数据处理 2. DataLoader 3. 定义nn.Module和Optimizer 4. 训练 4.1 Pytorch 1.8 安装 4.2 训练网络 5. 测 ...

最新文章

  1. Bootstrap select 多选并获取选中的值
  2. 2018年全球AI突破性技术TOP10
  3. Latex Smartdiagram
  4. Yii的 Yii::$app-end()
  5. Magical Sticks 棍子拼接
  6. mediumtext 长度_InnoDB表行长度超限问题的处理和思考
  7. 大数据平台容量评估_大数据平台
  8. 这篇被引用近4k次的论文教你如何正确的理解和使用相关系数!
  9. java secondtotime_Java中的LocalTime toSecondOfDay()方法
  10. STM32 - CubeMX 的使用实例详细(01)- STM32F103的配置 - GPIO设定
  11. linux mysql备份大量数据库,linux备份整个mysql数据库
  12. 007_控制器可扩展性
  13. 互联网公司端午节礼盒歧视指南
  14. OSChina 周一乱弹 —— 最无法理解的程序员行为
  15. cartographer探秘第一章之安装编译与参数配置
  16. CS224N笔记——RNN和语言模型
  17. 华泰证券 python 自动交易软件_量化自动交易软件开发,搬砖交易机器人系统开发...
  18. 软件工程知识点总结(含各类软件工程各类图的画法)
  19. 蓝桥杯 省赛 杨辉三角形 python组(转)
  20. 应广单片机 PMS150G、FPC161 基础例子【PWM设置】

热门文章

  1. 每天一道Java题[4]
  2. cmd切换为administrator用户
  3. UVA5876 Writings on the Wall 扩展KMP
  4. 采集练习(七) php 获得电视节目预告(一周节目)
  5. 关于MOSS列表库新建列表项前的!New标识
  6. stm32经典笔试题_嵌入式面试经典30问
  7. 学java的就业方向_学习Java的就业前景怎么样
  8. 从零开始做一个工业级别的实时换脸程序
  9. (49)Xilinx Subtracter IP核配置(十)(第10天)
  10. (9)verilog语言编写SPI接收