李宏毅深度学习

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模型的更多相关文章

  1. 文本分类实战(五)—— Bi-LSTM + Attention模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

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

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

  3. 从Seq2seq到Attention模型到Self Attention

    Seq2seq Seq2seq全名是Sequence-to-sequence,也就是从序列到序列的过程,是近年当红的模型之一.Seq2seq被广泛应用在机器翻译.聊天机器人甚至是图像生成文字等情境. ...

  4. seq2seq聊天模型(三)—— attention 模型

    注意力seq2seq模型 大部分的seq2seq模型,对所有的输入,一视同仁,同等处理. 但实际上,输出是由输入的各个重点部分产生的. 比如: (举例使用,实际比重不是这样) 对于输出"晚上 ...

  5. 吴裕雄--天生自然 pythonTensorFlow自然语言处理:Attention模型--训练

    import tensorflow as tf # 1.参数设置. # 假设输入数据已经转换成了单词编号的格式. SRC_TRAIN_DATA = "F:\\TensorFlowGoogle ...

  6. 吴裕雄--天生自然 pythonTensorFlow自然语言处理:Attention模型--测试

    import sys import codecs import tensorflow as tf # 1.参数设置. # 读取checkpoint的路径.9000表示是训练程序在第9000步保存的ch ...

  7. 深度学习之seq2seq模型以及Attention机制

    RNN,LSTM,seq2seq等模型广泛用于自然语言处理以及回归预测,本期详解seq2seq模型以及attention机制的原理以及在回归预测方向的运用. 1. seq2seq模型介绍 seq2se ...

  8. [转] 图解Seq2Seq模型、RNN结构、Encoder-Decoder模型 到 Attention

    from : https://caicai.science/2018/10/06/attention%E6%80%BB%E8%A7%88/ 一.Seq2Seq 模型 1. 简介 Sequence-to ...

  9. 深度学习之Attention Model(注意力模型)

    1.Attention Model 概述 深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但是在我们深入仔细地观 ...

随机推荐

  1. RobotFrameWork系列免费课程-开课了~

    1. 背景介绍 有一段时间没有发表过文章了,一方面除了自己确实变得懒惰外,另一方面也确实有其它事情,无法抽出闲余时间来坚持写下去. 之前在博客园中,发表了关于<公开课一:Robot FrameW ...

  2. Linux下终端录制工具-asciinema

    1. 官网 https://asciinema.org/ 2. 功能 录音 录制终端命令 上传到多种位置 3. 使用方法 sudo yum install asciinema # 安装 asciine ...

  3. SNF软件开发机器人平台2018-发展升级履历-零编程时代

    一.SNF软件开发机器人产品白皮书 二.SNF开发机器人教程:链接:https://pan.baidu.com/s/1Qpomg11c_1b1NKY5P7e4Bw 密码:jwc3 三.SNF软件开发机 ...

  4. Spark 精品文章转载(目录)

    学习 Spark 中,别人整理不错的文章,转载至本博客,方便自己学习,并按照不同的模块归档整理.每个文章作者能力不同,写文章所处的时间点不同,可能会略有差异,在阅读的同时,注意当时的文章的内容是否已经 ...

  5. 关于go语言的测试相关内容笔记

    其实之前对于测试自己一直比较弱,不管是python的还是go的,关于测试这块并没有非常注重,这次就好好整理一下关于go的测试 单元测试 Go程序主要包含三类测试: 功能测试(test).基准测试(be ...

  6. 物联网架构成长之路(26)-Docker构建项目用到的镜像2

    0. 前言 前面介绍的都是一些标准的第三方中间件,基本都是有现成的Dockerfile或者Image,不需要我过多的关心,这一篇要介绍一些自己构建的Docker Image了.刚开始学,Dockerf ...

  7. TypeScript和JavaScript的一些小技巧记录

    项目里使用到的技巧,记录一下,会持续更新. JS的技巧完全可以使用到TS上哦. JS 向下取整 Math.floor(4.5); 简写: var num = 4.5; ~~num; num <& ...

  8. 【原创 Hadoop&Spark 动手实践 3】Hadoop2.7.3 MapReduce理论与动手实践

    开始聊MapReduce,MapReduce是Hadoop的计算框架,我学Hadoop是从Hive开始入手,再到hdfs,当我学习hdfs时候,就感觉到hdfs和mapreduce关系的紧密.这个可能 ...

  9. 基于jQuery 3D旋转明星人物展示特效

    分享一款基于jQuery 3D旋转明星人物展示特效.这是一款来自百度换肤活动的明星旋转展示效果.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class=&quo ...

  10. 【nodejs】初识 NodeJS(二)

    上一节我们构建了一个基础的 http 服务器,我们可以接收 http 请求,但是我们得做点什么吧 – 不同的 http 请求,服务器应该有不同的响应. 路由模块 处理不同的 http 请求在我们的代码 ...