文章目录

  • 1 RNN条件生成
  • 2 机器翻译
    • 2.1 V1:Encoder-Decoder
    • 2.2 V2:Attention-based Encoder-decoder
    • 2.3 V3:bi-directional encode layer
    • 2.4 V4:Residual Encode layer
  • 3 Attention
    • 3.1 self attention
    • 3.2 hierarchical attention
  • 4 图像生成文本
    • 4.1 问题引入
    • 4.2 模型变迁
      • 4.2.1 M—RNN
      • 4.2.2 Neural Image Caption
      • 4.2.3 attention based

1 RNN条件生成

RNN可以解决的问题有多种,根据输入输出个数不同分为:
1 一对多:图像描述
2 多对一:文本分类
3 多对多:
实时多对多:输入法、视频解说
输入完成再多对多:机器翻译

条件生成问题:P(y|x)

2 机器翻译

2.1 V1:Encoder-Decoder

encoder-decoder由2个RNN组成。RNN一般具体指LSTM。在手机上的时候一般使用GRU模型。
第一个RNN做编码的事情。把输入编码为S,最后一个单元的输出作为编码S。
第二个RNN做解码的事情。把S输入,得出第一个词,第一个作为输入得到第二次输出…
decoder一个向量,之后做一个全连接softmax预测下一个词。
缺点:向量S一般是固定长度,例如1024,2048,能够存储的信息有限。
RNN中有忘记门,长度越长,前面输入RNN的信息就越被稀释。

2.2 V2:Attention-based Encoder-decoder

这个网络是在前一个的基础上添加了Attention机制。
首先每一步的输出都以加权的方式参与到计算中得到attention。
第二:输出的attention参与到decoder的第二步计算中。在计算decoder第二步输出的时候参与的对象有3个:第一步的输出结果、第一步到第二步的隐状态hi,以及attention。
第三,第二步计算得到的hi,会再次参与attention的计算。计算之后attention参与到decoder的第三步中。

具体Attention层
Attention的计算:LSTM每一步的输出向量a=[a1,a2,...an]a=[a_1,a_2,...a_n]a=[a1,a2,...an]
decoder每一步的中间状态hi
alpha=[tanh(w1∗aj+w2∗hi)alpha = [tanh(w1*aj+w2*hi)alpha=[tanh(w1aj+w2hi) for j in range(n)]range(n)]range(n)]
attention加权:alpha*a

global attention 计算量大,提出local attention。

2.3 V3:bi-directional encode layer

使用双向RNN做encode。

2.4 V4:Residual Encode layer

最后得到谷歌的机器翻译网络:

3 Attention

除了global attention,local attention,还有self attention、hierarchical attention。

3.1 self attention

可以理解为source=target的情况下,捕捉词与词之间的关系。这可以用于知识图谱抽取关系,实体词等。

3.2 hierarchical attention

一种是在文本分类中。第一层词取得embedding,第二层是双向LSTM。对第二层的输出做合并,可以使用拼接、average或者max,拼接过程中加入attention。将输出作为第三层的输入,送入MLP中,得到正确的分类。

在对文章分类过程中,一种策略是先看句子是什么情况,再看句子中的词是什么情况。

对每个句子中的词都会做一个RRN。例如图中是对第二句话S2做RNN。
输入层是词。第二层是双向LSTM,对词做encode。输出结果以及上一个句子的encoder输出,加入attention,得到输出是句子编码。一个层级完成。

上一个层级是句子。不同的句子之间算一个RNN。得到所有句子的编码。
之后做decoder,做分类。

attention 就是一个加权,看哪个对象权重高。

embedding就是把用one-hot形式表示的词向量,通过table projection的方式表示为一个固定维度的稠密向量。例如词库中有40万词,那就是把一个40万维的词向量映射为一个300维的词向量。

4 图像生成文本

4.1 问题引入

1 图像检索
2 盲人导航:引导盲人自拍
3 少儿教育-看图说话

数据集:AI Challenger: 图像中文描述数据
评测:BLEU score

4.2 模型变迁

4.2.1 M—RNN

1 输入词生成embedding
2 对embedding做全连接生成256维度的词表达
3 Embedding输入到RNN生成更加抽象的embedding
4 256维度的embedding、RNN的embedding以及图像特征同时输入给multimodal。此处的图像特征是AlexNet的第七层输出。
5 最后:输出交给分类层做softmax,预测出下一个词。

4.2.2 Neural Image Caption

模型show and tell,是斯坦福大学李飞飞实验室提出的。

1 图像特征使用更强大的CNN提取,例如googlenet、residual等
2 图像特征只提取一次
3 用LSTM生成文本

4.2.3 attention based

  1. show attend and tell

1 输入图片,不获取CNN的全连接层,而是使用某个卷积层的feature。
卷积层有位置信息, 每个位置的值都对应原图中的一个区域。每个channel对应位置相同。例如在一个MxMxC的特征中,对(i,j)这个位置对应原图中的某一块区域,不同channel的(i,j)的值都对应原图中的同一块区域。
我们把不同channel,同一个位置的值抠出来,当做一个向量,代表这个区域的特征表达,最后会得到MxM个位置信息。

2 将这MxM个特征送入RNN网络中,会为不同位置的特征赋予不同的注意力。不同位置的图可能会输出不同的词:bird、water、over。


a对应图片中每个位置的权重
etie_{ti}eti是通过对第i个位置的信息和上一步记忆做函数变换
αti\alpha _{ti}αti表示t时刻位置i的权重(注意力)

14x14x256(怎么会有256个通道?)

问题:一个LSTM同时做了两件事情:attention和分类。这会导致同样大小的区块存了更多的内容。

  1. top down attention

第一层top-down attention LSTM负责学习attention。输入是上一时刻第二层LSTM的记忆ht−12h_{t-1}^2ht12、图像的全局信息(所有feature map的平均)vvv,输入词语的embedding。
这一层的输出与图像特征做加权学习到attention。

第二层language LSTM 是用于分类预测的。输入是attention以及第一层的输出。

此外这个模型的特点是对原始图片使用selective detection,选取了不同的原始区域作为特征提取。在上一个模型中使用的是一样大小的特征区域,这会影响效果。

第八课 RNN条件生成与Attention机制相关推荐

  1. 机器学习-28-Conditional Generation by RNNAttention(条件生成和注意力机制)

    文章目录 Generation Conditional Generation Attention Dynamic Conditional Generation Machine Translation ...

  2. 第八课:条件判断语句

    条件判断语句 条件判段语句 注意事项 条件判断语句只能用于控制make实际执行的语句:但是,不能控制规则中命令的执行过程 条件判断语句的语法说明 常见形式 ifxxx (arg1, arg2) 其它合 ...

  3. 理解LSTM/RNN中的Attention机制

    转自:http://www.jeyzhang.com/understand-attention-in-rnn.html,感谢分享! 导读 目前采用编码器-解码器 (Encode-Decode) 结构的 ...

  4. Linux 探索之旅 | 第五部分第八课:用 Shell 做统计练习

    -- 作者 谢恩铭 转载请注明出处 <Linux探索之旅>全系列 内容简介 前言 成果展示 解题步骤和答案 可能的优化 第五部分第九课预告 1. 前言 上一课 Linux探索之旅 | 第五 ...

  5. 无需训练RNN或生成模型,我写了一个AI来讲故事

    作者 | Andre Ye 译者 | 弯月 出品 | AI科技大本营(ID:rgznai100) 这段日子里,我们都被隔离了,就特别想听故事.然而,我们并非对所有故事都感兴趣,有些人喜欢浪漫的故事,他 ...

  6. NeHe OpenGL第二十八课:贝塞尔曲面

    NeHe OpenGL第二十八课:贝塞尔曲面 贝塞尔曲面: 这是一课关于数学运算的,没有别的内容了.来,有信心就看看它吧. 贝塞尔曲面 作者: David Nikdel ( ogapo@ithink. ...

  7. 《幸福就在你身边》第八课、幸福比成功更重要【哈佛大学幸福课精华】

    一.财富与幸福 "财富不是幸福之源".什么会让你感到幸福,一所大房子,一辆好车,还是一位更性感或者更善解人意的伴侣?积极心理学权威米哈伊·西卡森特米哈伊曾问过一个问题:" ...

  8. python画五角星-Python第八课 绘制五角星1.0

    第八课 绘制五角星1.0 学习目标: 1. 了解并学会使用turtle库. 2. 复习while循环. 教学重难点: turtle库的使用. 学习内容: 案例2: 使用turtle 库在Python中 ...

  9. 完全图解RNN、RNN变体、Seq2Seq、Attention机制

    完全图解RNN.RNN变体.Seq2Seq.Attention机制 本文作者:思颖 2017-09-01 18:16 导语:帮助初学者开启全新视角 雷锋网(公众号:雷锋网) AI科技评论按:本文作者何 ...

最新文章

  1. Quartz.Net 调度框架配置介绍
  2. 全概公式和贝叶斯公式的理解
  3. Android之android8.1打开热点提示UID 10140 does not have Location permission和Location mode is enabled.
  4. php delete和truncate,TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。...
  5. 小鹏汽车上市首日股价大涨41.47% 市值150亿美元
  6. 计算机科学与python编程导论_【基于Python】MIT OCW 计算机科学与编程导论
  7. 子网划分与IP地址的概念
  8. Layer表格列根据配置动态显示
  9. 学计算机好还是学西点,女生学西点师有后悔的吗 西点师有前途吗
  10. 红米note7html5测试,红米Note 7 Pro评测:千元王者名副其实
  11. git学习笔记(1-集中式与分布式版本控制工具对比)
  12. Supporting hyperplane
  13. 结构化程序设计(structured programming)
  14. eaxyexcel获取指定行,获取总行数
  15. 智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数
  16. 计算机中的right函数,right函数用法实例
  17. 数据结构---基础知识必备
  18. Angular2属性绑定
  19. uva 10285 - Longest Run on a Snowboard(dp+记忆化搜索)
  20. VMDNAMD命令规则(转载)

热门文章

  1. 使用WebService与Oracle EBS进行集成(上)
  2. 中反应器体积_缠绕管式反应器大幅提高能效,移热能力较列管式反应器提升逾50%...
  3. oracle11gasm,oracle11gASM管理
  4. 9、Flutter 实现 生成二维码
  5. StudentManager-java+mysql学生管理系统
  6. Highchart series一次只显示一条
  7. cesium事件简单全面描述
  8. hapi常用插件(持续更新)
  9. mongoose 多条件 模糊查询
  10. 糖豆人服务器要维护多久,糖豆人刚上四天,紧急维护9小时后又延长,玩家:从中午到现在了...