• 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注意力机制

    暂时先这样,溜了。

  • 相关阅读:
    js MD5加密后的字符串
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    归并排序
    C#分解质因数
    C#找出第n到m个素数之间所有之和
    C#打印0到100的素数
    for循环练习
    express总结(一)
    Nodejs总结(一)
    Webpack配置及使用
  • 原文地址:https://www.cnblogs.com/ZERO-/p/15386424.html
Copyright © 2020-2023  润新知