Autoencoders
Tags: deeplearning, machinelearning, python
Published: 2021-08-05 06:09:41



<br>

<p>

If you are new to Deep learning, and would love to understand Neural Network Architecture or would like to tinker with CNN’s / ANN’s then autoencoder is the best point to start with. In this post, we will go through a quick Introduction to Autoencoders.

</p>

<strong>
Visit — [machine.learns](https://machine-learns.herokuapp.com/) — Here you can Visualize the working of Autoencoders in different configurations and more.
</strong>


<p>

So before directly jumping into the technical details, let’s first see some of its applications.



<ol>

<li>

Noise Reduction: Autoencoders can be used for Reducing Noise. Noise could be in an Image or in Sound. 

<p>
</p>

</li>
<li>
Image Compression: So using autoencoders if you have an image of size 784 pixels, you can convert this image into 64 pixels and then again get the original image from that low dimensional image.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xtnghtj3bp89vg02qpor.jpeg)



</li>

<li>

Converting a Black and White Image to a Colored Image.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/49bpjlm1987wxzihz805.png)
</li>

<li>
Removing Watermarks from an image.
</li>
<li>
 Fraud Detection eg. credit card fraud detection.
</li>
</ol>

</p>

<br><br>

<p>

<h2>What is an Autoencoders?</h2>
<p>
Autoencoder is an Artificial Neural Network learning technique. It is an Unsupervised Learning Approach. It mainly helps in achieving representation learning i.e. we come up with an architecture that forces the model to learn a compressed representation of the input data.
</p>

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xa5sdtj5b1n4jf120pwm.png)

<p>
This compressed representation is also known as a bottleneck or latent representation. The bottleneck basically learns the features of the data, i.e. it learns to represent a particular data point based on a certain number of features. For example — if the input is a digit dataset then it may learn features like no of horizontal and vertical edges and based on these features it identifies each data point.

</p>


</p>

<br><br>

<h2>Latent Representation (Bottleneck)</h2>

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gnovwcl5wn55z9b2vn4e.png)

The above figure is a plot of Latent space or Bottleneck

<br><br>

<p>
We can see clusters of similar colors. Each cluster above is representing similar types of objects example the blue dots are representing asphalt etc.

<br><br>

<strong>
It is important to know that each dot is representing a unique type of object.
</strong>

<br><br>

So in total, we can divide an Autoencoder into three parts

<ol>
<li>
Encoder: Part of the Architecture which compresses or forces the model to capture the important information from the data.
</li>
<li>
Bottleneck(latent representation): This is the compressed representation of the original data.
</li>
<li>
Decoder: This Part tries to reconstruct the original image from latent representation.
</li>
</ol>

<br><br>

This concept of Autoencoders can be applied using architectures like CNNs and LSTMs.



</p>

<br><br>

<h2>Conclusion
</h2>

<p>
Despite being a very basic architecture it helps a lot in understanding the various concepts of Neural networks and their architectures. So I will highly encourage you two to learn the implementation of Autoencoders too.

<br><br>

Hope you would have learned something valuable.

</p>

<br>

<strong>
Visit: [machine.learns](https://machine-learns.herokuapp.com/) 😄
</strong>