If I input myself into an autoencoder...
it could create a pretty good,
although not perfect, reconstruction of me.
Why don't I...
well, I mean you, explain?
Sure.
So, look, autoencoders are an unsupervised neural network,
and they consist of two parts.
Let's take a look.
There is, first of all, an encoder.
That's the first layer.
And that takes in some input.
And learns how to efficiently compress and encode that data
into something that we call the "code".
Then we have a decoder that learns how to reconstruct that encoded data representation.
So, decoder..
and that creates output.
And that output is as similar to the original input data as possible.
Effectively, an autoencoder learns to recognize which aspects of observable data are relevant,
and limit noise in data that can be discarded.
Separate the signal from the noise.
OK, great.
So is this all about creating smaller file sizes like the way I'll zip up some documents or compress a video?
No, not at all.
So let's talk about some examples.
Convolutional autoencoders have a variety of use cases related to images.
So, for example, I can draw an image like this number three.
And then through a process called feature extraction,
I can derive the required features of the image by removing noise;
something that looks a bit more like this.
And then I'm able to generate an output that approximates the original.
It's not exactly the same.
But it's pretty close.
Now I can use this part, called the code,
to do other things like create a higher resolution version of the output image,
or I can colorized an image, so black and white input -- full color output.
Now, in this case, the input and the output, they look much the same,
which, well, that's what autoencoders are all about, but they don't have to be.
We can provide input to an autoencoder in a corrupted form, like the noisy image of a three.
And then train a de-noising autoencoder to reconstruct our original image from the noisy version of it.
Once we've trained our autoencoder to remove noise from a representation of a number,
or a picture, or park bench,
we can apply that to all sorts of objects within an object element that displayed the same noise pattern.
So let's take a closer look inside an autoencoder.
The encoder itself compresses the input into a latent space representation.
So, we have multiple layers here that represent the encoder.
Each one a little smaller than the other, so this part here, that's the encoder.
The most compressed version, that's called the code,
that's also known as the bottleneck,
because, I suppose, much like the neck of a bottle, that's the most compressed part.
Then we have the decoder, which is reconstructed from that bottleneck.
That's the decoder.
And it's reconstructed from the latent space representation to generate the output.
By learning what makes up the signal and what makes up the noise,
we also have the ability to detect when something is not part of the status quo,
and that's anomaly detection.
Anomalies are a significant deviation from the general behavior of the data,
and autoencoders are a very good at telling us when something doesn't fit.
As a result, autoencoders are a widely used in anomaly detection in things such as
fault, fraud, and intrusion detection.
So autoencoders are a great way of extracting noise, recognizing relevant features, and detecting anomalies.
A pretty handy toolbox for dealing with all sorts of data...
and eerily similar clones.
If you have any questions, please drop us a line below,
and if you want to see more videos like this in the future,
please like and subscribe.
Thanks for watching.