 Now, just like before, if we would use a fully connected neural networks for encoding and for decoding, they would have crazily large numbers of parameters. As such, we might hope that in this context of autoencoders, we can equally get a lot of mileage out of convolution. Now mind you, when we do convolution, we have a setting like this, where we have the convolution applied at multiple places, producing, say, the two by two outputs out of a four by four input. But if we want to see how good we are at decoding, then we will somehow need to invert this convolution operation. Like we just changed our dimensions. Now we need to go into the other direction. And for that, we can use the idea of deconvolution. So what we do in the case of deconvolution is we rather have something move over space here, potentially with stride, that sees these two by two outputs, potentially with padding, as you can see here, and then goes back in dimensionality to this higher dimensional space. And that should allow us to have fewer parameters and better generalization. And let's see if we can get there. So now do a non-linear and convolutional autoencoder. We want a mapping from the mapping for meaningful features, which is how we want to interpret C to images to be nonlinear. The encoder will be a conf net followed by linear projection. And the decoder will use deconvolution. And both can be nonlinear and therefore have re-lucid net. So now, why don't you train a convolutional autoencoder?