Module rusty_machine::learning::nnet [] [src]

Neural Network module

Contains implementation of simple feed forward neural network.

Usage

use rusty_machine::learning::nnet::{NeuralNet, BCECriterion};
use rusty_machine::learning::toolkit::regularization::Regularization;
use rusty_machine::learning::optim::grad_desc::StochasticGD;
use rusty_machine::linalg::Matrix;
use rusty_machine::learning::SupModel;

let inputs = Matrix::new(5,3, vec![1.,1.,1.,2.,2.,2.,3.,3.,3.,
                                4.,4.,4.,5.,5.,5.,]);
let targets = Matrix::new(5,3, vec![1.,0.,0.,0.,1.,0.,0.,0.,1.,
                                    0.,0.,1.,0.,0.,1.]);

// Set the layer sizes - from input to output
let layers = &[3,5,11,7,3];

// Choose the BCE criterion with L2 regularization (`lambda=0.1`).
let criterion = BCECriterion::new(Regularization::L2(0.1));

// We will just use the default stochastic gradient descent.
let mut model = NeuralNet::new(layers, criterion, StochasticGD::default());

// Train the model!
model.train(&inputs, &targets).unwrap();

let test_inputs = Matrix::new(2,3, vec![1.5,1.5,1.5,5.1,5.1,5.1]);

// And predict new output from the test inputs
let outputs = model.predict(&test_inputs).unwrap();

The neural networks are specified via a criterion - similar to Torch. The criterions combine an activation function and a cost function.

You can define your own criterion by implementing the Criterion trait with a concrete ActivationFunc and CostFunc.

Structs

BCECriterion

The binary cross entropy criterion.

BaseNeuralNet

Base Neural Network struct

MSECriterion

The mean squared error criterion.

NeuralNet

Neural Network Model

Traits

Criterion

Criterion for Neural Networks