zoukankan      html  css  js  c++  java
  • Encoder-Decoder、Seq2Seq、Attention

    Encoder-Decoder、Seq2Seq、Attention

    传送门1:Encoder-Decoder 和 Seq2Seq

    因为注意力不集中,所以这篇随笔就是看别人的文章,随手参考写写的。

    1.Encoder-Decoder

    Encoder-Decoder模型并不特指某种具体算法,而是一种通用的框架,这个框架下可以使用不同的算法来解决不同的任务。

    Encoder-Decoder框架诠释了机器学习的核心思路:将现实问题转化为数学问题,通过求解数学问题,从而解决现实问题。

    Encoder又称为编码器,作用就是:将现实问题转化为数学问题。

    将文字/图片/音频等作为输入,通过Encoder编码器,输出向量。

    Decoder又称为解码器,作用就是:求解数学问题,并转化为现实世界的解决方案。

    将向量作为输入,通过Decoder解码器,输出文字等。

    结合起来就是:Encoder将现实世界的问题转化成向量C,然后传给Decoder,Decoder通过向量,求解数学问题,然后转化为现实世界的解决方案。

    其中2点注意:

    1.无论输入和输出的长度是什么,中间的向量C都是固定长度的。

    2.根据不同的任务可以选择不同的编码器和解码器。

    以上,符合的都统称为Encoder-Decoder模型。

    个人理解:只要有现实的输入,通过转化为向量,然后解决这个向量的数学问题,然后再转化为现实的,就是Encoder-Decoder模型。

    因为电脑无法直接处理现实问题,所以要转化成数学问题,解决完之后再转化为现实的解决方案。

    因为Encoder-Decoder之间的向量C是定长的,所以存在缺陷,因为不管信息是多还是少,只能表示定长的信息,所以当输入信息太长的时候,会丢失掉一些信息。

    举例:图片压缩,800*800像素压缩成100KB和3000*3000像素压缩成100KB,3000*3000像素的压缩之后,图片就比800*800像素压缩的模糊。

    2.Seq2Seq

    Seq2Seq:Sequence-to-Sequence,序列到序列。

    输入序列和输出序列的长度是可变的。

    比如翻译:

    I am a dog.

    我是一只小狗。

    输入的是4个英文单词,输出的是6个汉字。

    Seq2Seq的产生是因为,机器翻译,语音识别图像描述生成等,长度事先不知道,无法固定长度,所以产生了这个框架。

    Seq2Seq(强调目的),不特指方法,满足输入序列,输出序列的,都统称为Seq2Seq模型,具体方法都基本属于Encoder-Decoder模型(强调方法)的范围。

    3.Attention

    前面的Encoder-Decoder因为存在信息过长,信息丢失的问题,所以Attention机制的出现,来解决这个问题。

    Attention的特点是Encoder不再将整个输入序列编码为固定长度的中间向量C,而是编码为一个向量的序列。

    具体的前面写过一篇博客,但是那篇也是水的,所以,具体的涉及到公式代码的,还需要些时日。

    传送门2:深度学习/NLP中的Attention注意力机制

    暂时先这样,溜了。

  • 相关阅读:
    linux C gcc -lm
    ubuntu 工作区中拖动一个窗体到另一个工作区就卡住回不到桌面了
    ArrayList调用remove方法需要注意的地方
    关于Java中File的renameTo函数
    Java管道流
    NPOI Excel 单元格背景颜色对照表
    Java 简单图片截取
    maven pom.xml 配置 cxf-codegen-plugin 生成web服务客户类型
    ZeroClipboard 简单应用
    PromiseJs
  • 原文地址:https://www.cnblogs.com/ZERO-/p/15386424.html
Copyright © 2011-2022 走看看