This repository contains three projects:
- NeuralNetworks4J, which implements several famous neural networks only depend on pure Java (without any third party dependencies).
- NeuralNetworksND4J, re-implement the NeuralNetworks4J using ND4J library (a scientific library for Java).
- NeuralNetworksDL4J, interesting codes to solve some practical tasks using Deeplearning4j library (a powerful library for Java to tackle deep learning tasks).
Among this three projects, which generally contains several following neural networks algorithms:
- (Multi-Layer) Perceptrons
- Logistic Regression
- Restricted Boltzmann Machines
- Deep Belief Nets
- Denoising Autoencoder
- Stacked Denoising Autoencoder
- Convolutional Neural Networks
- Recurrent Neural Networks (LSTM)
<dependency>
<groupId>org.nd4j</groupId>
<artifactId>nd4j-native</artifactId>
<version>${nd4j.version}</version>
</dependency>
- DeepLearning4J Library. For Maven, import following dependency:
<dependency>
<groupId>org.deeplearning4j</groupId>
<artifactId>deeplearning4j-core</artifactId>
<version>${dl4j.version}</version>
</dependency>
Perceptrons
- Wiki-Link: Perceptron.
- Author: Frank Rosenblatt.
- Paper: The Perceptron: A Perceiving and Recognizing Automaton.
Logistic Regression
- Wiki-Link: Logistic Regression.
Multi-Layer Perceptrons
- Wiki-Link: Multilayer Perceptron.
- Author: Frank Rosenblatt.
- Paper: Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms.
Restricted Boltzmann Machines
- Wiki-Link: Restricted Boltzmann Machine.
- Author: Paul Smolensky.
- Paper: Information processing in Dynamical Systems: Foundations of Harmony Theory.
Deep Belief Nets
- Wiki-Link: Deep Belief Network.
- Author: Geoffrey E. Hinton et al.
- Paper: A fast learning algorithm for deep belief nets.
Denoising Autoencoder
- Wiki-Link: Autoencoder.
- Author: Pascal Vincent.
- Paper: Extracting and Composing Robust Features with Denoising Autoencoders, Deep Learning with Denoising Autoencoders.
Stacked Denoising Autoencoder
- Wiki-Link: Autoencoder
- Author: Pascal Vincent
- Paper: Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion.
Convolutional Neural Networks
- Wiki-Link: Convolutional Neural Network.
- Paper: Dropout: A Simple Way to Prevent Neural Networks from Overfitting, Deep Sparse Rectifier Neural Networks, ImageNet Classification with Deep Convolutional Neural Networks, Maxout Networks, Yann LeCun's page.
Recurrent Neural Networks
- Wiki-Link: Recurrent Neural Network, Long Short-Term Memory.
- Usage: dl4j-rnns.
- Paper: Bidirectional Recurrent Neural Networks, Long Short-Term Memory, Jürgen Schmidhuber's page.
Reference: Java Deep Learning Essentials