31.Encoder-Decoder(Seq2Seq)
常见网络结构
-
One2One
固定大小的输入,固定大小的输出。如:图像分类任务,输入固定大小图片,输出一个类别。
-
One2Many
固定大小的输入,不固定大小的输出。如:看图说话、用词造句。
-
Many2One
不固定的输入,固定的输出。如:语句情感分析、文章分类、视频分类
-
Many2Many同步
固定长度的序列,输出等长的序列。如:词性标注、字符级预测、视频帧级分类
-
Many2Many异步——Seq2Seq
不固定输入,不固定输出。如:机器翻译、命题作文、语音识别。
Encoder-Decoder
编码器-解码器架构:不固定输入,不固定输出。分为编码和解码两个部分:编码器处理输入序列,经过一个隐藏层输出向量。解码器把向量作为输入,输出新序列。
训练时
Decoder并不是把当前时刻的输出,作为下一时刻的输入。训练阶段的Decoder,输入时刻为目标序列(橙色)。
意为:如果在输出am的位置,输出的不是am,而是is。那么,下一时刻的输入(橙色am位置),依然为am。
其实好理解,这是训练阶段,他做错了,你需要纠正他。这个过程叫做Teacher Forcing。
预测时
decoder的当前输入,作为下一时刻输出。