PURNENDU MISHRA
PURNENDU MISHRA

Reputation: 443

Differene between Autoencoder Network and Fully Convolution Network

what is the main difference between autoencoder networks and fully convolutional network? Please help me understand the difference between architecture of these two networks?

Upvotes: 0

Views: 2024

Answers (2)

sukkub
sukkub

Reputation: 11

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.

Upvotes: 1

Jai
Jai

Reputation: 3310

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

    enter image description here

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 networkenter image description here

  • 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

enter image description here

Upvotes: 0

Related Questions