Question 1
The objective function of an autoencoder is to reconstruct its input, i.e., it is trying to learn a function
f
, such that
f(x)=x
for all points
x
in the dataset. Clearly there is a trivial solution to this.
f
can just copy the input to the output, so that
f(x)=x
for all
x
. Why does the network not learn to do this ?
Question 2
The process of autoencoding a vector seems to lose some information since the autoencoder cannot reconstruct the input exactly (as seen by the blurring of reconstructed images reconstructed from 256-bit codes). In other words, the intermediate representation appears to have less information than the input representation. In that case, why is this intermediate representation more useful than the input representation ?
Question 3
What are some of the ways of regularizing deep autoencoders?
Question 4
In all the autoencoders discussed in the lecture, the decoder network has the same number of layers and hidden units as the encoder network, but arranged in reverse order. Brian feels that this is not a strict requirement for building an autoencoder. He insists that we can build an autoencoder which has a very different decoder network than the encoder network. Which of the following statements is correct?
Question 5
Another way of extracting short codes for images is to hash them using standard
hash functions. These functions are very fast to compute, require no training and transform inputs into fixed length representations. Why is it more useful to learn an autoencoder to do this ?
Question 6
RBMs and single-hidden layer autoencoders can both be seen as different ways of extracting one layer of hidden variables from the inputs. In what sense are they different ?
Question 7
Autoencoders seem like a very powerful and flexible way of learning hidden representations. You just need to get lots of data and ask the neural network to reconstruct it. Gradients and objective functions can be exactly computed. Any kind of data can be plugged in. What might be a limitation of these models ?