Anomaly Detection in TensorFlow and Keras Using the Autoencoder Method

-

Photo by Leiada Krozjhen on Unsplash

A cutting-edge unsupervised method for noise removal, dimensionality reduction, anomaly detection, and more

All of the tutorials about TensorFlow and neural networks I actually have shared until now have been about supervised learning. This one can be concerning the Autoenocder which is an unsupervised learning technique. If I need to precise it simply, autoencoders reduce the noises from the info by compressing the input data, and encoding and reconstructing the info. That way autoencoders can reduce the dimensionality or the noise of the info and deal with the actual point of interest of the input data.

As you possibly can see from the introduction to the autoencoders here there may be multiple process required.

  1. First, a model to compress the input data which is the encoder model.
  2. Then one other model to reconstruct the compressed data that needs to be as close because the input data which is a decoder model.

On this process, it might remove the noise, reduce the dimensionality, and clear up the input data.

On this tutorial, I’ll explain intimately how an autoencoder works with a working example.

For this instance, I selected to make use of a public dataset (Apache License 2.0) named deep_weeds.

import tensorflow as tf
import tensorflow_datasets as tfds
ds = tfds.load('deep_weeds', split='train', shuffle_files=True)

Data Preparation

We’d like to organize a dataset for this unsupervised anomaly detection example. Just one class can be taken as our foremost class that can be regarded as the valid class. And I’ll put a couple of data from one other class as an anomaly. Then we’ll develop the model to see if we will find that few anomaly data.

I selected class 5 because the valid class and sophistication 1 because the anomaly. Within the code block below, I’m taking all the info of classes 5 and 1 first and creating lists of the pictures and their corresponding labels.

import numpy as np
images_main = []
images_anomaly = []
labels_main= []
labels_anomaly = []
ds = ds.prefetch(tf.data.AUTOTUNE)
for instance in ds…

ASK DUKE

What are your thoughts on this topic?
Let us know in the comments below.

6 COMMENTS

0 0 votes
Article Rating
guest
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Share this article

Recent posts

6
0
Would love your thoughts, please comment.x
()
x