第八课 RNN条件生成与Attention机制

文章目录

  • 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,选取了不同的原始区域作为特征提取。在上一个模型中使用的是一样大小的特征区域,这会影响效果。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十四题: 以下代码的输出结果是?

第十四题: 以下代码的输出结果是? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class B { public static B t1 new B(); public static B t2 new B(); { System.out.println("构造块"); } static { Syst…

第一百二十三期:免费在线制图神器!不上水印支持中文版,GitHub标星已破1万2

又一免费制图神器来袭!打开网页就能使用,支持中文版,也不会给你上水印。 作者:乾明 又一免费制图神器来袭! 名为draw.io,打开网页就能使用,支持中文版,也不会给你上水印。 不只是…

常用javascript脚本

BS开发中常用的Javascript技术 一、验证类 1、数字验证内 1.1 整数 1.2 大于0的整数 (用于传来的ID的验证) 1.3 负整数的验证 1.4 整数不能大于iMax 1.5 整数不能小于iMin 2、时间类 2.1 短时间,形如 (13:04:06) 2.2 短日期,形…

第一百二十四期:2019年臭名昭著的勒索软件,网络钓鱼和僵尸网络

Webroot发布了年度恶意软件列表,展示了2019年最臭名昭著的网络安全威胁。从攻击次数最多的勒索软件和加密挖矿,到破坏最大的网络钓鱼攻击,显然,全球网络威胁正在变得更为先进且难以预测。 作者:kirazhou 勒索软件 在…

好久没发胡说八道的贴了,今天发一贴

看了老翅寒暑 [真实案例:给所有想要创业的朋友的一个管理方面的测试题]一贴http://www.cnblogs.com/BigTall/archive/2006/12/20/597896.html这是一个真实的事件,我把它转化为了一个测试题目,问过很多朋友,到目前为止我认为答满分…

N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑

转载自时空霹雳 在统计语言模型章节中,我们谈到了N元语法模型不可避免的一个问题,就是数据稀疏,其原因是大规模语料统计与有限语料的矛盾。根据齐普夫(Zipf)法则,我们能够推测知零概率问题不可避免。数据稀…

错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.ap

最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.application.Application 看到这样的问题让我一头雾水,因为…

第十章 条件随机场CRF

文章目录1 条件随机场定义1.1 马尔科夫随机场1.1.1 用图模型表示概率1.1.3 三个马尔科夫性1.1.3 重点再看局部马尔科夫性1.2 马尔科夫随机场的因子分解1.3 条件随机场1.4 线性链条件随机场2线性链条件随机场的表示形式2.1 参数化形式2.2 简化形式2.3 矩阵形式3 条件随机场的概率…

第一百二十五期:程序员的自我救赎,使用Python开发性格分析工具

如此不均衡的贫富差距,各行业的领导者如何能管理好公司,让员工们既努力产出,又能安于现状呢?每个领导者必学的一门课程就是职场心理学。只有你充分了解员工心理与对应的行为表现,才能从容的掌控各类型的人员,从而达到…

笛卡尔乘积算法的体现

一个商品有多项属性,多项属性的组合就产生不同的商品型号如:衣服:颜色:红、绿尺寸:大、中、小产生的系列就有:红|大、红|中、红|小、绿|大、绿|中、绿|小如果商品的属性不至两个,则产生的系列会…

知识图谱基础

本系列是学习七月算法知识图谱课程的笔记。感觉自己完全就是一个托儿。前面七月算法机器学习,七月算法深度学习的笔记。现在又来了知识图谱课程的笔记。 文章目录1 why知识图谱2 知识图谱前世今生3 知识图谱相关技术4 知识图谱应用案例1 why知识图谱 没有知识图谱&…

第一百二十六期:代码以外的生存之道,献给每位入了坑的码农

本篇内容主要是对这本书的一个总结概括,也希望能用作抛砖引玉,让读者在看完之后,对这本书有所兴趣,或者希望能让读者对代码以外的需要做的事情更加积极明朗一点。 作者:码农三哥 前言 最近刚刚读完了一本书&#xf…

【UOJ 51】最接近神的人

【题目描述】: 破解了符文之语,小FF开启了通往地下的道路。当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案。而石门上方用古代文写着“神的殿堂”。小FF猜想里面应该就有王室的遗产了。但现在的…

第一百二十七期:程序员41岁创业逆袭成全美最受欢迎CEO,公司市值近200亿美金

袁征(Eric Yuan)在国内鲜为人知,却在硅谷的商业世界,创造了华人新的可能性——带领公司成功上市,成为全美国上市公司当中、美国面向全球的企业里估值最高的华人CEO。 作者:新芽NewSeed 导语:袁…

词汇挖掘与实体识别(未完)

文章目录1 概述2 词汇挖掘2.1 关键词提取2.1.1 基于特征统计2.1.2 基于主题模型2.1.3 Text-Rank算法提取2.2 同义词挖掘2.2.1 同义词类型2.2.2 挖掘2.3 缩略词挖掘2.4 新词挖掘3 实体识别(NER)3.1 基于概率图模型3.2 基于深度学习1 概述 实体:是文本中的一些词汇或…

第一百二十八期:推荐几个IDEA插件,Java开发者撸码利器,你get到了吗

一款热部署插件,只要不是修改了项目的配置文件,用它都可以实现热部署。收费的,破解比较麻烦。不过功能确实很强大。 作者:编程届java员 JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件&#xff…

spring mvc学习(35):restful的put

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

一、词向量模型

因为计算机不能理解词语&#xff0c;所以我们需要用词向量表示一个词。 词向量有一个发展历程&#xff1a;从one-hot到word embedding。 1 one-hot 设词典的大小为n&#xff08;词典中有n个词&#xff09;&#xff0c;假如某个词在词典中的位置为k&#xff0c;则设立一个n维向…

【广告】我妹妹导演的毕设——数字传媒摄影作品

我妹妹涂华思宇导演的作品&#xff0c;也是她的本科毕业设计&#xff5e; https://www.xinpianchang.com/a10452218 欢迎各位点击&#xff01; 涂华思宇,initiated四川文化艺术学院 2019/6/30 tz,postedcroplab,HZAU 2019/7/16转载于:https://www.cnblogs.com/acm-icpcer/p/111…

spring mvc学习(36):jstl的jar包的下载

1. 我们在使用spring框架的时候导入jstl标签库需要使用到jstl的jar包&#xff0c;假如没有加入到eclipse的lib目录下&#xff0c;使用alt /的时候不会有提示&#xff0c;所以我们需要把这个jar包加进来 首先登陆网址&#xff1a;http://tomcat.apache.org/taglibs/ 找到下面的…