Deep Learning Tutorials
Welcome to our Tutorials page. If you are just getting started with Deep Learning, and DeepLearning4J these tutorials will help clarify some of the concepts. Image recognition, Text processing and Classification examples are provided here. Some of the examples provide a written introduction along with code, while others over a screencast with voice of the code being written. Enjoy !
Basic Neural Networks
MNIST for Beginners
MNIST is the “Hello World” of machine learning. With this tutorial, you can train on MNIST with a single-layer neural network.
MNIST for Experts
By applying a more complex algorithm, Lenet, to MNIST, you can achieve 99 percent accuracy. Lenet is a deep convolutional network.
Word2vec is a popular natural-language processing algorithm capable of creating neural word embeddings, which in turn can be fed into deeper neural networks.
Linear Classifier Tutorial
This tutorial shows you how a multilayer perceptron can be used as a linear classifier.
Video lecture by instructor Tom Hanlon on Machine Learning. Tom provides an overview of how to build a simple neural net in this introductory tutorial. This screencast shows how to build a Linear Classifier using Deeplearning4j.
XOR is a digital logic gate that implements an exclusive or. XOR means that a true output, or an output of 1, results if one, and only one, of the inputs to the gate is true.
DataVec + Spark Tutorial
This tutorial shows how to use Skymind’s DataVec to ingest Comma Separated Values from a text file, convert the fields to numeric using a DataVec Transform Process in Spark, and save the modified data. Transforming non-numeric data to numeric data is a key preliminary step to using a Neural Network to analyze the data.
Image Pipeline Tutorial
Image Ingestion and Labelling
This tutorial is a series of videos and code examples that show a complete data pipeline.
The first example demonstrates using some of DataVec’s tools to read a directory of images and generate a label for the image using ParentPathLabelGenerator. Once the data is read and labelled the image data is scaled so that the pixel values fall between 0 and 1, instead of 0 and 255.
Adding in a Neural Network
This tutorial builds on the Image Ingestion and Labelling tutorial by taking the DataVec image pipeline and adding a Neural Network to train on the images. Topics covered include MultiLayerNetwork, DataSetIterator, Training the network, monitoring scores as the model trains.
Saving and Loading a Trained Network
Once you have a trained your network you may want to save the trained network for use in building an application. This tutorial demonstrates what is needed to save the trained model, and to load the trained model.
Testing the Trained Network against user selected images
Once your network is trained and tested it is time to deploy the network in an application. This tutorial demonstrates Loading a training model, and adding a simple interface of a filechooser to allow the user to get the models opinion on what digit the image passed in might be. In the video I test a simple Feed Forward Neural Network that has been trained on the MNist dataset of handwritten digits, against an image of the digit 3 found in a google search.
Beginners Guide to Recurrent Networks and LSTM’s
Recurrent nets are a type of artificial neural network designed to recognize patterns in sequences of data, such as text, genomes, handwriting, the spoken word, or numerical times series data emanating from sensors, stock markets and government agencies.
Long Short-Term Memory Units provide a mechanism to allow a nueral net to learn from experience to classify, process and predict time series events.
Using Recurrent Networks in DL4J
A more in depth discussion of RNN’s including configuring your code to use RNN’s in DL4J
Building a Web Application using VGG-16 for image classification
An overview of loading VGG-16, testing and deploying as a web application