热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

seq2seq和attention:编码译码器与注意力机制

seq2seq简介Seq2seq将输入序列转换为输出序列。它通过利用循环神经网络(递归神经网络)或更常用的LSTM、GRU网络来避免梯度消失问题。当前项

seq2seq简介

Seq2seq将输入序列转换为输出序列。它通过利用循环神经网络(递归神经网络)或更常用的LSTM、GRU 网络来避免梯度消失问题。当前项的内容总来源于前一步的输出。Seq2seq主要由一个编码器和一个解码器。 编码器将输入转换为一个隐藏状态向量,其中包含输入项的内容。 解码器进行相反的过程,将向量转换成输出序列,并使用前一步的输出作为下一步的输入。

维基百科:https://zh.wikipedia.org/zh-hans/Seq2seq

通过最简单的seq2seq图看以看出,seq2seq的基本原理在于将模型分为encode和decode两部分,encode用来输入生成语义编码,传入语义编码到decoder中,输出预测值,encoder和Dcoder通常用lstm或者gru来构建。往往在进行神将网络翻译(NMT)和对答系统中常常用到,而这只是最简单的seq2seq模型。

seq2seq基本模型

基本流程:


如图所示为seq2seq的训练过程,首先将输入的句子放入encoder中,通过一些列lstm和线性变化可以得出一个内容context。然后将context放入decoder进行训练,decoder的训练过程是逐步进行的,前一个词的输出作为后一个词的输入,最后得出一个完整的句子。

缺点即改进:

  • 由于后一个预测值受前一个的影响,所以很容易发生蝴蝶效应,从而导致一长串的预测值全部失效,所以很难训练下去。(这就好比学生在学完部分单词后直接去蒙其他生词,这样学习的效率极低)

改进方法:scheduled sampling(计划采样)

计划采样的主要过程就是在decoder训练过程中并不是完全的将输入等于前一个输出,而是适当的将真实值放入输入当中。即随机使用模型真实label来作为下一个时刻的输入,而不像原先那样只会使用预测输出。(这就好比学生在蒙其他单词的过程中老师会时不时的给他几个提示,让他不至于往一个方向一直错下去)

  • 输入与输出长度不等,在翻译过程中这样情况经常发生,无法预测翻译的长度到底是多少。

改进方法:存入桶:通过填补0,这可以控制的输入和输出的长度。 而且如果的序列长度为100和输入只有3的长度时、昂贵的空间被浪费。 桶可以不同规模和指定的输入和输出的长度。

  • 在原seq2seq中decoder之根据encoder中最后得出的一个context进行译码,这样肯定是不好的,比如在机器翻译的过程中汉语的某个词和英语的某个单词是对应的,而普通的seq2seq模型并没有考虑这一点。

改进方法:Attention机制

Attention机制

基本简介:


在Attention机制中decoder不在只被encoder最后输出的一个context影响,而是encoder中每个单词共同赋予权重来生成一个context,而在decoder的过程中,每次输入的计算都会与encoder所有单词进行权重计算,导致每一个decoder的输入所获得的context都是不同的。

Attention计算方法(Soft Attention):


通过当前decoder输入与encoder个输入进行相识度计算得出权重,将权重进行softmax(概率化,所有概率加起来等于1);然后进行与encode输入进行乘法运算得出一个attention。

Attention分类:

  • Spatial Attention:空间注意力(图像处理)
  • Temporal Attention:时间注意力 (自然语言)
  • Hard Attention:会在生成注意力权重后筛选掉一部分不符合条件的注意力
  • Soft Attention:所有的数据都会注意,都会计算出相应的注意力权值,不会设置筛选条件。

总结:

上面所说的Attention的计算方法只是一个常规的方法,其实还有很多不同的方法,如transfrom中的self-attention等等,之后后慢慢详解。


推荐阅读
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • 引号快捷键_首选项和设置——自定义快捷键
    3.3自定义快捷键(CustomizingHotkeys)ChemDraw快捷键由一个XML文件定义,我们可以根据自己的需要, ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
author-avatar
贤慧201077
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有