问题
what is the main difference between autoencoder networks and fully convolutional network? Please help me understand the difference between architecture of these two networks?
回答1:
1] AutoEncoder :
- Autoencodder is a dimensionality reduction technique
- It has two parts an encoder and decoder
- Enocder maps the raw data to a hidden representation (Latent Space Representation)
- Decoder maps the hidden representation back to raw data
- The network automatically learns this hidden representation and it turns out that this hidden representation are the most important feature of your data
- So The raw data goes as input to the encoder and it outputs the Latent Space Representation
- Now the output of the encoder is the input to the decoder which will try to regenerate the raw data
- Autoencoder is type of unsupervised learning
Below is a diagram of Autoencoder that uses convolution layer in encoder network and deconvolution layer in decoder network
2] Convolution Network:
- Convolution Network are used for images
- in convolution network set of filters are used to convolve
- The filters are shared across the data
- Which means that you data shares weights
- Each pixel value of your filter is a weight
- To know the convolution operation check out this link https://www.youtube.com/watch?v=C_zFhWdM4ic
- Every convolution layer does this convolution operation
- Convolutional networks are type of supervised learning
- Convolutional networks use Pooling operations for down sampling
Below is diagram of convolution network
In the above diagram usually the classifier is a fully connected layer
- But it is not necessary to have fully connected layer as a classifier .. you can use other classifiers
- You can refer this for understanding difference between convolutional networks and MLP network: http://cs231n.github.io/convolutional-networks/
3] Fully Connected Layers:
- These are simple layers with neurons
- Each neuron has a set of weights based on the input
- Below is the diagram of Fully connected layer
回答2:
Autoencoders have at least one hidden fully connected layer which "is usually referred to as code, latent variables, or latent representation" Wikipedia. Actually, autoencoders do not have to be convolutional networks at all - Wikipedia only states that they are feed-forward non-recurrent networks.
On the other hand, Fully Convolutional Networks do not have any fully connected layers. See Wikipedia and this paper by Cicek et al. for more details (the paper has a nice visualization of the network).
So even when both an encoder and a decoder in an autoencoder network are CNNs, there is at least one fully-connected hidden layer in between them. Thus, autoencoder networks are not FCNs.
来源:https://stackoverflow.com/questions/47632208/differene-between-autoencoder-network-and-fully-convolution-network