首页 > 其他分享 >Encoder-Decoder框架 2

Encoder-Decoder框架 2

时间:2023-02-18 22:56:22浏览次数:52  
标签:框架 解码 语义 Encoder 输入 Decoder 向量


    相对于传统的规整的网络布局,Encoder Decoder 模型显得比较随性,不受约束,可能也正式这种自由,使得该模型在实际中发回来巨大的作用。模型结构突破了传统的固定大小输入问题的框架,将经典深度神经网络模型运用于在翻译、文本自动摘要、智能问答等情景中,并且在实际应用中有着不俗的表现。

那么我们简单总结下 Encoder Decoder 模型的特点,看看它到底有什么不同之处。

    Encoder 将可变长度的输入序列编码成一个固定长度的向量;
    Decoder 将固定长度的向量解码成一个可变长度的输出序列;
    Encoder-Decoder 阶段的编码与解码的方式可以是 CNN、RNN、LSTM、GRU 等;

三 Encoder-Decoder结构

    下面我们来剖析下Encoder-Decoder的网络结构,由于本文重点是讲解Encoder-Decoder框架,所以编解码都使用RNN为例。

那么一种可能的网络结构如下,下面我们结合视图对于Encoder-Decoder的网路结构进行分析:

    Encoder阶段使用的编码为RNN(LSTM);
    向量C是Encoder编码阶段的最终隐藏层的状态 c t ,或是多个隐藏层状态 c t 的加权总和,作为Decoder解码阶段的初始状态;
    W是Encoder的最终输出(最后一个隐藏层的输出 h t,作为Decoder的解码阶段初始输入。
    Decoder阶段使用的解码为LSTM

    Encoder部分
    Encoder负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,这个过程称为编码。

如下图,获取语义向量最简单的方式就是直接将最后一个输出的隐状态作为语义向量c。也可以对最后一个隐含状态做一个变换得到语义向量,还可以将输入序列的所有隐含状态做一个变换得到语义变量。

 

 


下图c代表生成的语义向量,q函数代表相应的变换(线性变换等)
四 Encoder与Decoder流程
1 Encoder

得到各个隐藏层的输出然后汇总,生成固定长度语义向量

 

 


2 Decoder

Decoder部分就是根据Encoder部分输出的语义向量c来做解码工作。以翻译为例,就是生成相应的译文。

注意生成的序列是不定长的。而且上一时刻的输出通常要作为下一时刻的输入,如下图所示,预测y2时y1要作为输入。

 

 


还有一种做法是将c当做每一步的输入:

 

 



————————————————

原文链接:https://blog.csdn.net/qq_22054285/article/details/124516228

 

标签:框架,解码,语义,Encoder,输入,Decoder,向量
From: https://www.cnblogs.com/emanlee/p/17133544.html

相关文章

  • Encoder-Decoder框架 1
    Encoder-Decoder框架 概述   Encoder-Decoder并不是一个具体的模型,而是一个通用的框架。   Encoder和Decoder部分可以是任意文字,语音,图像,视频数据。   ......
  • pytest封装接口测试框架
    pytest封装接口自动化测试pytest是一个Python的单元测试框架,它可以很好地支持接口自动化测试。要使用pytest进行接口测试,需要进行如下步骤:安装pytest使用pip安装pyt......
  • Android 初代 K-V 存储框架 SharedPreferences,旧时代的余晖?
    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。前言大家好,我是小彭。SharedPreferences是Android平台上轻量级的K-V存储框架,亦是初代......
  • 嵌入式Linux入门级板卡的神经网络框架ncnn移植与测试-米尔i.MX6UL开发板
    本篇测评由电子发烧友的优秀测评者“ALSET”提供。 米尔MYD-Y6ULX-V2开发板,基于NXPi.MX6UL/i.MX6ULL处理器,该开发板被米尔称之为经典王牌产品。本次测试目标是在此......
  • SpringCloud Alibaba框架都有啥啊
    前言springcloud是一个基于springboot实现的微服务架构开发工具,使用springcloud框架进行微服务业务开发是java后端开发必备技能,目前主流的SpringCloud分为SpringCloudNet......
  • 项目整体框架 + thread cache设计及实现
    你好,我是安然无虞。文章目录​​整体框架设计​​​​threadcache设计​​整体框架设计我们知道,现代的很多开发环境都是多核多线程的,所以在申请内存的时候,必然存在......
  • Java集合框架
    Java集合框架Java的集合框架大致分为两个部分:Collection:主要有List、Set、Queue组成。Map:主要是HashMap,代表是键值对的集合。ListList的特点是存取有序,可以存放重......
  • 接口自动化测试思路和实战(5):【推荐】混合测试自动化框架(关键字+数据驱动)
    混合测试自动化框架(关键字+数据驱动)关键字驱动或表驱动的测试框架这个框架需要开发数据表和关键字。这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来......
  • 接口自动化测试思路和实战(4):数据驱动测试框架
    数据驱动测试框架在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚......
  • 接口自动化测试思路和实战(3):测试库框架
    测试库框架与模块化测试脚本框架很类似,并且具有同样的优点。不同的是测试库框架把待测应用程序分解为过程和函数而不是脚本(而测试脚本中只是包含调用函数的用例即可)。......