再梳理一下seqtoseq,encoder-decoder,attention,transformer的概念

1.encoder-decoder模型

        不是具体的某一种算法,而是一类算法的统称,经常用于NLP领域(比如 中文翻英文)

再梳理一下seqtoseq,encoder-decoder,attention,transformer的概念_第1张图片

在这里,encoder和decoder都可以选择cnn,rnn,lstm,birnn,gru等(可以自由组合)

2.seqtoseq

        seqtoseq是根据rnn引申出来的变种,但后续又跳出rnn的概念,加入了cnn,lstm网络以进行应用

        我理解的seqtoseq就是把两个rnn结合在一起(有三种结合方法)以实现输入N输出M,很好地发挥输入的全部信息

        上段提到了三种结合方法,但是他们的encoder部分都是一样的:把所有的输入整合到仅仅一个输出 向量c上。但后边的decoder有三种方式了。

        由于最开始的seqtoseq概念是用rnn引申出来的,后续facebook又提出了用cnn代替rnn(注意:已经加入了attention),又有人提出了用lstm代替rnn等。

如:

        rnn+seqtoseq

        cnn+seqtoseq+attention

3.attention

        而单纯的结合在一起又不能很好的满足性能,因为输入的全部信息太多导致网络只对离它最近的输入记忆性强而对远处的记忆性弱

        所以在decoder处加入attention。保证了我想要哪方面的输入就把极大部分的注意力放在哪方面的输入。这样的话,输出会准确。

如:

                lstm+seqtoseq+attention

4.transformer

        这是针对于cnn+seqtoseq以及rnn+seqtoseq的改进,完全抛弃cnn和rnn,只采用attention来构造encoder和decoder。

        有一句话:transformer is Seq2seq model with many "self-Attention"

你可能感兴趣的:(机器学习,深度学习,神经网络)