MATLAB Answers

One-Class Classification using Neural Network

76 views (last 30 days)
Charlie Brown
Charlie Brown on 27 Jan 2021
Edited: Aditya Patil on 3 Feb 2021
Hello everyone,
I am using the function patternnet for MULTI-class classification and it's working fine. Now, I want to use neural networks for a ONE-class classification to detect a defect in a running machine. I am searching for a function or a small example, how to use ANN for a ONE-class problem. I don't know how to tell the model to distinguish between the "class" (training data) and the "rest" (no training data). Everytime I try, I only get one class with 100% accuracy as result. I do NOT want to create a second training data set. With Support Vector Machines it is easy to create a boundary around the training data set.
I am sure there must be a useful function in Matlab. Thank you!

Answers (1)

Aditya Patil
Aditya Patil on 2 Feb 2021
Edited: Aditya Patil on 3 Feb 2021
As per my understanding, you want to create a one class classifier using neural networks.
As neural network classifiers work based on distinguishing two or more classes, it is not possible to train a neural network classifier using data of only one class. However, it’s possible to use neural networks for anomaly detection using only one class data. For example, you can check the Anomaly detection using VAE example.
Alternately, you can also use LSTMs or other sequence networks. The high-level idea is to predict the next state of the system, and then verify if the next state is similar to prediction or not. If the prediction differs from actual state, we label it as anomaly.
You can also use SVM, or create a dataset of non-target samples, and use it to train any of the classification models available in MATLAB.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!