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

 

暂时先这样,溜了。

 

posted @ 2021-10-09 16:29  ZERO-  阅读(309)  评论(0编辑  收藏  举报