内容简介:最近在学习Adaptive Style Transfer并进行工程化实践,顺便总结一下深度学习中的Encoder-Decoder Architecture。Encoder-Decoder(编码-解码)是深度学习中非常常见的一个模型框架,一个encoder是一个接收输入,输出特征向量的编码实际上就是对内容的另一种表示
最近在学习Adaptive Style Transfer并进行工程化实践,顺便总结一下深度学习中的Encoder-Decoder Architecture。
正文
Encoder-Decoder(编码-解码)是深度学习中非常常见的一个模型框架,一个encoder是一个接收输入,输出特征向量的 网络 (FC, CNN, RNN, etc)。这些特征向量其实就是输入的特征和信息的另一种表示。
编码实际上就是对内容的另一种表示
decoder同样也是一个 网络 (通常与编码器相同的网络结构,但方向相反),它从编码器获取特征向量,并输出与实际输入或预期输出最近似的结果,比如下图
准确的说,Encoder-Decoder并不是一个具体的模型,而是一类框架。Encoder和Decoder部分可以是任意的文字,语音,图像,视频数据,模型可以采用CNN,RNN,BiRNN、LSTM、GRU等等。所以基于Encoder-Decoder,我们可以设计出各种各样的应用算法。
encoder使用decoder进行训练,并且没有label(无监督)。损失函数中包含 实际输入 (actual input)和 重构输入 (reconstructed input)之间的差异(delta)。
一旦经过训练,encoder将给出输入的特征向量,解码器可以使用该特征重构输入。
这种技术被用于非常多不同的应用中,比如翻译、生成模型(generative models)等。
不过通常应用都不会重新构建原有的输入,而是 map/translate/associate 输入至特定的输出。比如把法语翻译成英语等。
具体例子
Autoencoder
自动编码器神经网络是一种无监督机器学习算法、有三层的神经网络:输入层、隐藏层(编码层)和解码层。该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征。其应用了反向传播,可将目标值设置成与输入值相等。自动编码器属于无监督预训练网络(Unsupervised Pretained Networks)的一种。其结构如下图所示:
比如2018年比较火的 Wasserstein自编码器。
CNN
In a CNN, an encoder-decoder network typically looks like this (a CNN encoder and a CNN decoder):
This is a network to perform semantic segmentation of an image. The left half of the network maps raw image pixels to a rich representation of a collection of feature vectors. The right half of the network takes these features, produces an output and maps the output back into the “raw” format (in this case, image pixels).
RNN
In an RNN, an encoder-decoder network typically looks like this (an RNN encoder and an RNN decoder):
This is a network to predict responses for incoming emails. The left half of the network encodes the email into a feature vector, and the right half of the network decodes the feature vector to produce word predictions.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。