seq2seq

seq2seq的用途有很多,比如机器翻译,写诗,作曲,看图写文字等等用途很广泛!该模型最早在2014年被Cho和Sutskever先后提出,前者将该模型命名为“Encoder-Decoder Model”也就是编码-解码模型,后者将其命名为“Sequence to Sequence Model”也就是序列到序列模型,两者有一些细节上的差异,但总体大致思想基本相同。

seq2seq根据字面意思来看就是序列到序列,再具体点就是输入一个序列(可以是一句话,一个图片等)输出另一个序列。这里以RNN为基础的机器翻译为例,介绍seq2seq和attention注意力机制。(seq2seq实现的方法有很多,比如MLP,CNN,RNN等)

这是机器翻译的部分数据 (法语->英语):

我们先了解下机器翻译的大致流程:

大致意思就是根据输入的文本,神经网络开始学习和记忆,这个就是所谓的Encoder编码过程;然后根据自己的记忆,把文本一一翻译出来,这个就是所谓的Decoder解码过程。

现在再让我们更进一步了解seq2seq的具体流程:

我来一一讲解这张图的每一个细节:

这个是某个时刻t的RNN隐层单元,R,O代表里面的两个gate,下表E/D代表这个是Encoder/Decoder过程。

这个在Encoder是某个时刻输入词,在Decoder是上一个预测的词。

这个是Encoder的最后一个单元,里面的隐层存着记忆单元呢,Decoder需要根据Encoder的这个记忆单元隐层把帮助自己一个一个的预测词。

所以需要传到个个Decoder中。

下面这个是Decoder的核心过程,拿一次预测举例子:

是上一个预测词,这里是fox。是上次预测完的记忆单元,是Encoder的隐藏单元。的计算方式为,g为一种方法(神经网络中一般为每个参数*W,最后求和输出。下面公式都类似):

是本次,这里是s4,的计算方式为:

这是简单的理论部分,看看这个实践图吧:

Encoder

Decoder

虽然这个model是GRU,但不光是GRU,LSTM等都可以。

seq2seq就这样讲完了。下面该到注意力机制登上历史舞台!

Attention Mechanism 注意力机制

从字面意思我们能联想到自己的注意力吧。对,就是这样的。每当我们专注学习时,我们的目光会聚焦在正在学的东西上,但是我们眼前不能专注的也不是啥也看不见,仅仅是模糊而已。转移到数学分析下,就是我们专注的占得我们经历的大部分,比如给个数值0.8(满分为1),其他的模糊情景为0.01,0.03,0.07。。。总和为0.2。这个注意力机制就是这样的!在机器翻译中,我们需要一个词一个词的翻译,当我们翻译某个词的时候,我们主要是需要这个词,而其他的词信息用的就是很少了,所以就是说网络把精力大部分放到了将要翻译的这个词了,但是其他也得照顾到,因为翻译一个词需要上下文的意思,比如单复数的写法就需要上下文吧。你看,这个是不是和人的注意力差不多啊。这个也可以从我们生活经常做的例子来说就是你看着手机走路,你的注意力在手机上,但是你也能走路,而且还能避开各种人群(当然,撞树啥的只能怪你给手机分配的注意力太大了QAQ)。

看一下基本的流程图:

这些黄色的深浅代表当翻译每个词的注意力的分配。

具体网络分布图为:

再具体下,以这个例子为例:

Encoder用的是是双向RNN,当RNN单元循环回来的时候都会有一个输出给了你将要翻译的词对应的attend,而此时肯定是它的最下方的词应该是注意力最集中的,所以它对应的权重肯定是最大的。

这里的权重分配公式为:

从最上面下来的是是第j个Encoder隐层出来的记忆单元。

所有的分打出来后,要做下归一化:

这个跟Softmax差不多。

然后对他们进行求和传送给

这个注意力机制大大提高了机器翻译的能力当然也包括其他的领域。

这次讲完了,你可以休息下消化消化,有问题的随时提问,我们一起进步!


感谢实验室宋阳师姐的讲解以及上面的图来自哈工大社会检索讨论班。

更多精彩内容,请关注 深度学习自然语言处理 公众号,就是下方啦!跟随小博主,每天进步一丢丢!哈哈!

【干货】基于注意力机制的seq2seq网络相关推荐

  1. 基于注意力机制的seq2seq网络

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共1680个字,26张图,预计阅读时间10分钟. seq2seq的用途有很多,比如 ...

  2. 可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)

    可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)   序列到序列模型是深度学习模型,在机器翻译.文本摘要和图像字幕等任务中取得了很大的成功.谷歌翻译在2016年底开始在生产中使用这样的模型 ...

  3. PyTorch中文教程 | (14) 基于注意力机制的seq2seq神经网络翻译

    Github地址 在这个项目中,我们将编写一个把法语翻译成英语的神经网络. [KEY: > input, = target, < output]> il est en train d ...

  4. 自然语言处理(十四):从零开始构建使用注意力机制的Seq2Seq网络实现翻译任务

    自然语言处理笔记总目录 本案例取自PyTorch官网的NLP FROM SCRATCH: TRANSLATION WITH A SEQUENCE TO SEQUENCE NETWORK AND ATT ...

  5. 基于注意力机制的seq2seq模型

    目录 一.前言 二.模型搭建 2.1 编码器 2.2 注意力机制 2.3 解码器 2.4 Seq2Seq模型 三.模型的训练与评估 附录一.翻译效果比较 附录二.完整代码 一.前言 在此之前,我们实现 ...

  6. PyTorch 1.0 中文官方教程:基于注意力机制的 seq2seq 神经网络翻译

    译者:mengfu188 作者: Sean Robertson 在这个项目中,我们将教一个把把法语翻译成英语的神经网络. [KEY: > input, = target, < output ...

  7. 基于Attention机制的轻量级网络架构以及代码实现

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 导读 之前详细介绍了轻量级网络架构的开源项目,详情请看深度学习中的轻量级网络架构总结与代码实现 ...

  8. 基于注意力机制的图卷积网络预测药物-疾病关联

    BIB | 基于注意力机制的图卷积网络预测药物-疾病关联 智能生信 人工智能×生物医药 ​关注 科学求真 赢 10 万奖金 · 院士面对面 9 人赞同了该文章 今天给大家介绍华中农业大学章文教授团队在 ...

  9. seq2seq模型_具有注意力机制的seq2seq模型

    在本文中,你将了解: 为什么我们需要seq2seq模型的注意力机制? Bahdanua的注意力机制是如何运作的? Luong的注意力机制是如何运作的? 什么是局部和全局注意力? Bahdanua和Lu ...

  10. 循环神经网络、注意力机制、Seq2Seq、Transformer与卷积神经网络(打卡2)

    一.过拟合和欠拟合 接下来,我们将探究模型训练中经常出现的两类典型问题: 一类是模型无法得到较低的训练误差,我们将这一现象称作欠拟合(underfitting): 另一类是模型的训练误差远小于它在测试 ...

最新文章

  1. 1.MySQL与MongoDB的操作对比,以及区别
  2. html不换行溢出省略号代替,css控制不溢出,不换行,溢出部分省略号显示
  3. C函数实现返回多个值的方法
  4. Windows Server 2016系统高级管理系列-DFS分布式文件系统
  5. k8s创建pod加入容器_K8S容器编排之POD健康检测(2)
  6. 输出大写字母矩阵c语言,寻找C语言大神!!从键盘输入任意一个字母,如果其为大写字母,则输出“capital letter”;如果其为小写...
  7. spring源码解析(一)---占位符解析替换
  8. 【8】电压比较器的阈值,窗口电压
  9. 实用分享-MAC修改器(摆脱网络封锁的困扰)
  10. SHoj 420 购买装备
  11. 团体程序设计天梯赛-练习集 L1-015 跟奥巴马一起画方块
  12. jgit git pull_使用JGit API探索Git内部
  13. win10 无法删除 注册表 蓝牙_编辑设置Win10删除蓝牙设备后无法重新添加的修复办法...
  14. 最新 跟我学spring3 电子书下载
  15. html链接文件不可用,使用PPT 图表显示链接文件不可用 怎么解决啊?(excel放进ppt)...
  16. fruit machine
  17. 论坛报名 | 智能信息检索与挖掘
  18. 日常工作生活中的做人做事道理[持续更新ing]
  19. 2013年EMR软件实施年终总结
  20. 用ArcMap画一个彩虹风格的蜂窝

热门文章

  1. BZOJ 2821: 作诗(Poetize) [分块]
  2. 去掉字符串不需要的HTML标记(正则表达式)
  3. asp.net使用httpModule来实现一个反向代理
  4. 简单的Android文件浏览器(附源代码)
  5. SNS网站获取导入MSN联系人的方法
  6. [Windows]win10时间同步错误的解决方法
  7. 内置模块之configparser
  8. python_爬虫_模块
  9. keystone环境搭建(源码方式+yum方式)(ocata版本)
  10. 简要分析武汉一起好P2P平台的核心功能