You are on page 1of 22

Introduction to Neural Network

toolbox in Matlab

Matlab stands for MATrix LABoratory.

Programming Language : Matlab

High-level script language with interpreter.


Huge library of function and scripts.
Act as an computing environment that combines

numeric computation, advanced graphics and


visualization.

Entrance of matlab

Type matlab in unix command prompt


e.g. sparc76.cs.cuhk.hk:/uac/gds/username> matlab
If you will find an command prompt >> and you have successfully entered matlab.

>>

Ask more information about


software

>> info
contacting the company
eg. Technique support, bugs.

>> ver
version of matlab and its toolboxes
licence number

>> whatsnew
whats new of the version

Function for programmer

help : Detail of function provided.


>> help nnet, help sumsqr

lookfor : Find out a function by giving some keyword.


>> lookfor sum
TRACE Sum of diagonal elements.
CUMSUM Cumulative sum of elements.
SUM Sum of elements.
SUMMER Shades of green and yellow colormap.
UIRESUME Resume execution of blocked M-file.
UIWAIT Block execution and wait for resume.

...

Function for programmer (contd)

which : the location of function in the system


(similar to whereis in unix shell)
>> which sum
sum is a built-in function.

>> which sumsqr

So that you can save it


in your own directory and
modify it.

/opt1/matlab-5.3.1/toolbox/nnet/nnet/sumsqr.m

Function for programmer (contd)

! : calling unix command in matlab system


>> !ls
>> !netscape

Plotting graph
Visualisation of the data and result.
Most important when handing in the report.
plot : plot the vector in 2D or 3D

>> y = [1 2 3 4]; figure(1); plot(power(y,2));


Index of the vector (you
can make another vector
for the x-axis)

x = [2 4 6 8];
plot(x,power(y,2));

Add vector x as the


x-axis index

Implementation of Neural
Network using NN Toolbox
Version 3.0.1

1. Loading data source.


2. Selecting attributes required.
3. Decide training, validation, and testing data.
4. Data manipulations and Target generation.

(for supervised learning)


5. Neural Network creation (selection of network architecture) and initialisation.
6. Network Training and Testing.
7. Performance evaluation.

Loading data

load: retrieve data from disk.Save variables in matlab


In ascii or .mat format.

environment and load back

>> data = load(wtest.txt);


>> whos data;
Name
Size
Bytes Class
data 826x7
46256 double array

Matrix manipulation
for all

Start for 1

stockname = data(:,1);

1
2

training = data([1:100],:)
a=[1;2]; a*a => [1,2;2,4];
1
4

4
16

a=[1,2;2,4]; a.*a => [1,4;4,16];

2
4

Neural Network Creation and


Initialisation
net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) S2: number of
ouput neuron
Description
NEWFF(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
PR - Rx2 matrix of min and max values for R input elements.
S1: number
Si - Size of ith layer, for Nl layers.
hidden neurons
TFi - Transfer function of ith layer, default = 'tansig'.
BTF - Backprop network training function, default = 'trainlm'.
BLF - Backprop weight/bias learning function, default = 'learngdm'.
PF - Performance function, default = 'mse and returns an
N layer feed-forward backprop network.

>> PR = [-1 1; -1 1; -1 1; -1 1];


Min

-1
-1
-1
-1

neuron 1
1
1
Number of inputs
1 Max
decided by PR
1

Neural Network Creation

newff : create a feed-forward network.


Description
NEWFF(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
PR - Rx2 matrix of min and max values for R input elements.
Si - Size of ith layer, for Nl layers.
TFi - Transfer function of ith layer, default = 'tansig'.
BTF - Backprop network training function, default = 'trainlm'.
BLF - Backprop weight/bias learning function, default = 'learngdm'.
PF - Performance function, default = 'mse and returns an
N layer feed-forward backprop network.

TF2: logsig

TF1: logsig

>> net = newff([-1 1; -1 1; -1 1; -1 1], [4,1], {logsig logsig}); Number of inputs


decided by PR

Network Initialisation

Initialise the nets weighting and biases


>> net = init(net);

% init is called after newff

re-initialise with other function:

net.layers{1}.initFcn = 'initwb';
net.inputWeights{1,1}.initFcn = 'rands';
net.biases{1,1}.initFcn = 'rands';
net.biases{2,1}.initFcn = 'rands';

Network Training

The overall architecture of your neural network is store in the

variable net;
We can reset the variable inside.
net.trainParam.epochs =1000;

(Max no. of epochs to train) [100]

net.trainParam.goal =0.01;

(stop training if the error goal hit) [0]

net.trainParam.lr =0.001;

(learning rate, not default trainlm) [0.01]

net.trainParam.show =1;

(no. epochs between showing error) [25]

net.trainParam.time =1000;

(Max time to train in sec) [inf]

Network Training(contd)

train : train the network with its architecture.


Description

-0.5
-1
0.5
-0.5

TRAIN(NET,P,T,Pi,Ai) takes,

NET - Network.
Training

P - Network inputs.
pattern 1

T - Network targets, default = zeros.

Pi - Initial input delay conditions, default = zeros.

Ai - Initial layer delay conditions, default = zeros.

1
0.5
1
-1

-0.5 1
-1
0.5
0.5 1
-0.5 -1

>> p = [-0.5 1 -0.5 1; -1 0.5 -1 0.5; 0.5 1 0.5 1; -0.5 -1 -0.5 -1];

For
neuron 1

Network Training(contd)

train : train the network with its architecture.


Description
TRAIN(NET,P,T,Pi,Ai) takes,

NET - Network.

P - Network inputs.

T - Network targets, default = zeros.

Pi - Initial input delay conditions, default = zeros.

Ai - Initial layer delay conditions, default = zeros.

-1

-1

Training
pattern 1

>> p = [-0.5 1 -0.5 1; -1 0.5 -1 0.5; 0.5 1 0.5 1; -0.5 -1 -0.5 -1];
>> t = [-1 1 -1 1];
>> net = train(net, p, t);

Simulation of the network

[Y] = SIM(model, UT)


Y
model
UT

: Returned output in matrix or structure format.


: Name of a block diagram model.
: For table inputs, the input to the model is interpolated.

Training
pattern 1

-0.5
-0.25
-1.00
-1.00

>> UT = [-0.5 1 ; -0.25 1; -1 0.25 ; -1 0.5];


>> Y = sim(net,UT);

1.00
1.00
0.25
0.50

For
neuron 1

Performance Evaluation

Comparison between target and networks output in testing set.(generalisation ability)


Comparison between target and networks output in training set. (memorisation

ability)
Design a function to measure the distance/similarity of the target and output, or simply

use mse for example.

Write them in a file


(Adding a new function)
Create a file as fname.m (extension as .m)
>> fname
function [Y , Z] = othername(str)
Y = load(str);
Z = length(Y);

>> [A,B] = loading('wtest.txt');

loading.m

Reference

Neural Networks Toolbox User's Guide


http://www.cse.cuhk.edu.hk/corner/tech/doc/manual/matlab-5.3.1/help/pdf_doc/nnet/nnet.pdf

Matlab Help Desk


http://www.cse.cuhk.edu.hk/corner/tech/doc/manual/matlab-5.3.1/help/helpdesk.html

Mathworks ower of Matlab


http://www.mathworks.com/