模型用途:该模型的用途在于通过序列生成序列,实际用途以句子翻译为主,可处理任意长度的句子。

模型结构:

seq2seq模型结构

  1. 模型由Encoder与Decoder组成:

Encoder是由RNN组成的,用于获取整个句子的隐藏状态,可以为双向,也可为单向;

Decoder也是由RNN组成的,但仅能为单向;

在执行seq2seq的过程中,Encoder种的RNN将整合后的隐藏状态(包含相对位置信息)发送给Decoder进行解码,从而实现翻译;

  1. 编码器及信息传递细节:

需要注意的点在于,编码器是一个“没有输出的”RNN,所谓没有输出在于其最后没有添加一个常规的全连接层用于产生结果,而是将“最后一层”的RNN输出的隐藏状态作为输出,然后将其与句子的Embedding结合,再输入到Decoder中;

  1. 训练与推理的区别

训练过程

在训练时,解码器的输入以原句子的真实翻译作为输入,可以看到,第一块的输入为<bos>,第二块的输入内容原本应为第一块的输出(预测内容),但是为防止第一块的预测错误,那么仅以训练来讲,其输入仍然为真实的翻译bonjour。

推理过程

在实际推理时,可以看到,前一块的预测输出作为了后一块RNN的输入。

  1. 如何衡量生成句子的好坏(类损失函数)——BLEU

使用n-gram衡量预测精度

首先需要指出n-gram的定义,比如p1,对于预测序列中的A, B, B, C, D,第二个B相对于标签序列多余,也即是错误的,那么p1=4/5;再比如p2,指的是预测序列与标签序列中相邻两个词出现次数正确的概率。如预测序列中A-B, B-B, B-C, C-D,四个中只有三个是正确的,那么p2=3/4。

BLEU的定义

上图为BLEU的定义,len label为标签序列长度,len pred为预测序列长度,长度越短,惩罚越高。对于句内的n-gram,匹配越长,权重越高(pn是一个小于1的数,那么n越大(句内匹配越长,权重越高),1/2^n越小,达到权重更高的目的)。

  1. 代码:

【62 序列到序列学习(seq2seq)【动手学深度学习v2】】 https://www.bilibili.com/video/BV16g411L7FG/?p=2&share_source=copy_web&vd_source=54a003f2fe57290ef9f347426cdb53c9

[模型学习]seq2seq相关推荐

  1. Seq2Seq模型学习(pytorch)

    在看pytorch的官方英文例子,做些笔记,如有纰漏请指正,原文:https://pytorch.org/tutorials/beginner/chatbot_tutorial.html 数据准备 首 ...

  2. 带你玩转序列模型之seq2seq模型定向(集束)搜索

    目录 一.基础模型 二.选择最可能的句子 三.定向搜索 四.改进定向搜索 五.定向搜索的误差分析 一.基础模型 在这一周,你将会学习seq2seq(sequence to sequence)模型,从机 ...

  3. DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别

    DL之RBM:(sklearn自带数据集为1797个样本*64个特征+5倍数据集)深度学习之BRBM模型学习+LR进行分类实现手写数字图识别 目录 输出结果 实现代码 输出结果 实现代码 from _ ...

  4. [Django]模型学习记录篇--基础

    模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...

  5. 【深度学习系列】基础知识、模型学习

    基础知识 原创 [深度学习]--训练过程 原创 [深度学习]--BN层(batch normalization) 原创 [深度学习]--激活函数(sigmoid.tanh.relu.softmax) ...

  6. 模拟模型学习 几何布朗运动_Java的几何布朗运动

    模拟模型学习 几何布朗运动 维纳过程是一个连续时间的随机过程,以纪念诺伯特·维纳. 通常用于用随机成分表示噪音或财务状况. 可以计算几何布朗运动以可视化某些界限(以分位数表示)以暗示绝对范围. 为了进 ...

  7. 呆萌的图模型学习——使用networkx计算node2vec,得到节点与边的embedding(三)

    networkx基本操作请参考:[呆萌的图模型学习--图基本信息 & Networkx基本操作(二)](呆萌的图模型学习--图基本信息 & Networkx基本操作(二)) node2 ...

  8. DMU-单性状重复力模型-学习笔记3

    单性状重复力模型 本次主要是演示如何使用DMU分析单性状重复力模型. 重复力模型和动物模型的区别: 不是所有的性状都可以分析重复力模型, 首先重复力模型是动物模型的拓展, 它适合一个个体多个观测值的情 ...

  9. 利用草地湿润模型学习机器学习之参数估计

    利用草地湿润模型学习机器学习之参数估计 1 草地湿模型 一个草地湿润模型,Cloudy表示天气是否多云,C=1(F)表示False,C=2(T)表示True,一下表示均相同,Sprinklet表示洒水 ...

最新文章

  1. python路由编程_Python Django基础二之URL路由系统
  2. CH 5102 Mobile Service(线性DP)
  3. 如何评价分类模型性能?(足球荔枝)
  4. 做深度学习需要知道哪些linux指令?
  5. Fedora17安装SSH
  6. Python 进阶——重访 set
  7. 模仿京东分类页面的布局
  8. 总结测试工程师面试题(含答案)
  9. 电信天翼网关路由器的超级密码
  10. Linux下php导出excel失败且浏览器报错500
  11. informatica joiner组件学习
  12. ubuntu 通过ssh链接ARM板 及 IMX6使用调试串口通信
  13. n9009+android+4.4.2,三星N9009 (Galaxy Note 3 电信版 Android 4.4)ROOT教程,一键获取ROOT权限...
  14. FSA-Net环境配置
  15. STM8S自学笔记-001 STM8简介
  16. html文件无法通过复制粘贴传输,电脑不能复制粘贴的三种解决办法
  17. react-native-webrtc之采坑之旅
  18. 2022年智能手机市场概括
  19. 一些STM32核心板选择的稳压芯片
  20. 探索云原生技术之容器编排引擎-Kubernetes/K8S详解(3)

热门文章

  1. 云计算有个毛用,下一场大战在这儿
  2. DBC文件解析——基于DBCView工具
  3. win2003x64+Oraclex64+PL/SQL安装
  4. 比亚迪新能源汽车战略布局研究
  5. mediawiki 页面的导出和离线浏览
  6. 什么样的代码才是好代码
  7. 学计算机的考注会,cpa机考计算器
  8. 精美FLASH欣赏----
  9. flash 编程总结
  10. 【微服务】之Nacos和SpringCloud无缝衔接【超详细】