Sequence2Sequence 学习

2023-05-16

转载至:https://blog.csdn.net/MebiuW/article/details/52832847

1 前言

这个深度学习,其实是来自每周Paper笔记的整理版,即文章的主要内容其实是我对一篇文章的整理,受限于个人水平,可能很多地方会出现理解偏差、或者理解不到位的地方,所以如果发现什么不对的地方欢迎交流。之前我一直不想发这个博文,因为觉得我水平实在有限,不过现在看来还是不论好坏,拖出来见见光好了。

所以这个系列的博文的主要内容是我每周Paper阅读的笔记整理,偶尔穿插着一些实验内容。文章的具体信息我会放置于末尾,有需要的同学请根据文章题目去寻找原始论文


2 Seq2Seq是什么

网上有很多关于Seq2Seq的解释,但是从我的角度来说,我愿意把Seq2Seq看做是:
从一个Sequence做某些工作映射到(to)另外一个Sequence的任务
具体结合实际应用来说,如下的连个任务都可以看做是Seq2Seq的任务“
1、SMT翻译任务(源语言的语句 -> 目标语言的语句)
2、对话任务(上下文语句->应答语句)
这里写图片描述
诸如上图,其实也就是一个示例(从ABC 这个Sequence 映射到 WXYZ)

3 RNN Encoder-Decoder 框架

通常来说,在深度学习中,应对这个类型的问题,有一个经典的框架被称为Encoder-Decoder:
所谓的Encoder,是将输入的Sequence编码成为一个固定长度的向量
所谓的Decoder,是根据背景Vector(即Encoder最后输出的向量)生成一个Token序列,作为输出的Sequence
这两部分Sequence的长度可以不一致。

这里写图片描述

最经典的Encoder-Decoder框架,用的就是RNN,即Encoder是一个RNN,而Decoder也是一个RNN。
这里面才有极大似然去估计,让输入的Seq经过Encoder得到中间向量v,再映射到Decoder的概率最大。

这个Encoder-Decoder的框架很经典,里面用的RNN(LSTM)也是很经典的,本来想详细讲讲的,但是我水平不够,所以大概也只能讲到这里了。

关于Encoder-Decoder的详细解释可以阅读这里:http://blog.csdn.net/malefactor/article/details/51124732

而本篇文章的Sequence2Sequence的模型就是这个RNN Encoder-Decoder了,关于他的公式,其实都是基本的RNN公式,文章里讲的也不多,有需要的可以直接去阅读原文。


实验

实验部分,其采用了WMT14提供的评测任务,任务要求是英语到法语的翻译任务
1. 训练的数据集有12M的句子,包含348M法语词,和304英语词
2. 作者选择了最常用的160000个英文词和80000个法语词构造词典,初次以外的词语,都表示为UNK
3. 训练目标如下,S是原语言序列,T是目标语言序列,使得如下式子的概率最大化。并且训练后的翻译过程也是如第二个式子所示
这里写图片描述

评测的标准是一个叫做BLEU的成绩,因为我不太关心翻译任务,所以我就知道越高越好的道理就好了。
而结论就是,这个模型能够十分接近WMT14的最高分(36.5 37)

讨论

这篇文章提出的Sequence2Sequnce模型很简单,但是借助于深度学习的魔力,其效果却十分的出众。

然而这个模型也正是因为太过简单,最开始使用的RNN在长句任务上表现不佳,主要表现在RNN在输入多次后使得最开始的信息出现了损失,而作为改进使用LSTM,则能够很好的解决这个问题。
同时,也有使用Attention机制的,去改善长句下的表现,关于这个机制,我会在随后的笔记中介绍的。

其实,还有一个比较好玩的是,他们发现这个Seq2Seq模型,如果我们把输入的Seq按照相反的顺序输入,其性能表现还更好(当然作者也不知道为什么)

总之,这是一个简单却很有魔力的模型,之后的工作也主要是基于这个框架,所以也作为笔记的第一篇出来。

--------------------- 本文来自 MebiuW 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/MebiuW/article/details/52832847?utm_source=copy

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sequence2Sequence 学习 的相关文章

随机推荐

  • 微信闪退Bug罪魁祸首竟是二维码引擎,附源代码分析

    建议别尝试 xff1a 转发这个二维码到群里 xff0c 3秒后你会回来骂我 xff08 抖m求骂 xff09 近日 xff0c 网传微信识别上方二维码就会出现闪退BUG xff0c 小编也忍不住尝试了一下 xff0c 果然 xff0c 一
  • java多线程之线程安全(重点,难点)

    由于操作系统中 线程的调度是抢占式执行的 或者说是随机的 这就造成线程调度执行时 线程的执行顺序是不确定的 虽然有一些代码在这种执行顺序不同的情况下也不会运行出错 但是还有一部分代码会因为执行顺序发生改变而受到影响 这就会造成程序出现Bug
  • React-Native: DatePickerIOS设置选择24小时

    原帖 xff1a https github com mmazzarolo react native modal datetime picker DatePickerIOS选择24小时的方法 xff1a How to set 24 hours
  • 使用chatgpt实现微信聊天小程序(秒回复),github开源(附带链接)

    前言 我在前一段时间突发奇想 xff0c 就使用java来调用chatgpt的接口 xff0c 然后写了一个简单小程序 xff0c 也上了热榜第一 xff0c java调用chatgpt接口 xff0c 实现专属于自己的人工智能助手 xff
  • HttpPost 携带参数的请求方式

    一 HTTP请求 Http的几种请求方式对应程序包中的HttpGet HttpHead HttpPost HttpPut HttpDelete HttpTrace and HttpOptions xff0c 这些类均实现了HttpUriRe
  • mysql 根据时间范围查询

    时间格式为 第一种写法 xff1a select from test where create time between 39 2019 03 05 13 04 07 39 and 39 2019 03 08 13 04 07 39 第二种
  • java 根据条件从List中筛选出符合条件的集合

    1 list 你要在里面筛选的对象集合 存放格式例如 list add user1 list add user2 list add user3 2 xff1a tableColumnName xff1a user 里面的属性字段 xff1a
  • Es QueryBuilder 简单查询

    1 matchQuery String name Object text matchQuery 34 filedname 34 34 value 34 匹配单个字段 xff0c 匹配字段名为filedname 值为value的文档 单个匹配
  • Mysql 查询区分大小写的两种方法

    oracle中查询默认是区分大小写的 xff0c 但是在mysql中默认不区分大小写 解决办法 xff1a mysql可以在SQL语句中加入 binary来区分大小写 BINARY不是函数 xff0c 是类型转换运算符 xff0c 它用来强
  • 微信小程序实现登录页面

    wxml文件 xff1a lt view class 61 34 container 34 gt lt view class 61 34 login icon 34 gt lt image class 61 34 login img 34
  • 锂电池充电IC-TP4056电路设计详解

    首先 xff0c 先介绍下TP4056 TP4056是一款完整的单节锂离子电池采用恒定电流 恒定电压线性充电器 其底部带有散热片的SOP8封装与较少的外部元件数目使得TP4056成为便携式应用的理想选择 TP4056可以适合USB电源和适配
  • mysql无法插入中文的解决办法:修改数据库编码为utf-8

    mysql无法插入中文的解决办法 1 无法插入中文原因 mysql数据库的默认编码是latin1 xff0c 可以使用下面代码查看数据库编码 show variables like 34 character 34 发现有两处的编码是lati
  • 为Debian 10.2 安装图形化桌面环境

    首先先下载x window的内核 xff1a apt get u install x window system core 下载登录管理界面gdm或kdm xff1a apt get u install gdm gdm themes 下载G
  • C# System.BadImageFormatException 解决方法

    出现System BadImageFormatException 异常有两种情况 xff1a 程序目标平台不一致 amp 引用dll文件的系统平台不一致 异常参考 xff1a BadImageFormatException 程序目标平台不一
  • leetcode452

    题目 xff1a 在二维空间中有许多球形的气球 对于每个气球 xff0c 提供的输入是水平方向上 xff0c 气球直径的开始和结束坐标 由于它是水平的 xff0c 所以y坐标并不重要 xff0c 因此只要知道开始和结束的x坐标就足够了 开始
  • UVA-11300

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • UVA-11520 Fill the Square

    思路 xff1a 因为要求是字典序 xff0c 这道题的第一反应就是从A Z选取字母 xff0c 在正方形中从上到下 xff0c 从左到右这样的顺序去填字母 xff0c 一旦判断这个字母旁边没有和它一样的 xff0c 那么就证明这个字母就是
  • UVA10881 Piotr‘s Ants

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • -bash: conda: command not found

    其实是因为你没有加路径 执行一条 export PATH 61 PATH usr local miniconda2 bin 就OK啦 额 其实还不行 你要给conda加一个软链接 转换python2和3要创建虚拟环境
  • Sequence2Sequence 学习

    转载至 https blog csdn net MebiuW article details 52832847 1 前言 这个深度学习 xff0c 其实是来自每周Paper笔记的整理版 xff0c 即文章的主要内容其实是我对一篇文章的整理