VahidooX / DeepLDA

An implementation of Deep Linear Discriminant Analysis (DeepLDA) in Keras
MIT License
41 stars 10 forks source link

Deep LDA: Deep Linear Discriminant Analysis

This is an implementation of Deep Linear Discriminant Analysis (Deep LDA) in Python. It needs Theano and Keras libraries to be installed.

Deep LDA is a non-linear version of LDA which uses neural networks as the mapping functions instead of linear transformers. Deep LDA is originally proposed in the following paper:

Matthias Dorfer, Rainer Kelz, Gerhard Widmer, "Deep Linear Discriminant Analysis", ICLR, 2016.

It uses the Keras library with the Theano backend, and does not work on the Tensorflow backend. Because the loss function of the network is written with Theano.

The model used is an MLP and it is different from the ones used in the original paper. The base modeling network can easily get substituted with a more efficient and powerful network like CNN.

Dataset

The model is trained on MNIST dataset.

Differences with the original paper

Other Implementation

The following is the link to the original implementation given by the authors of the DeepLDA paper. I adopted the loss function from here: