You are on page 1of 132

Neural network

Robotic & Vision Lab RoVis


Researches
• Visual servo
• Image Processing
• Impedance control
• Intelligent control
Le Duc Hanh, Phd • Robotics
Lecturer at Ho Chi Minh city University
of Technology

Email: ldhanh@hcmut.edu.vn

Robotic & Vision Lab RoVis


Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Feed-forward nets

Information flow is unidirectional


Data is presented to Input layer
Passed on to Hidden Layer
Passed on to Output layer

Information is distributed

Information processing is parallel

Internal representation (interpretation) of data

Robotic & Vision Lab RoVis


Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
• Feeding data through the net:

(1  0.25) + (0.5  (-1.5)) = 0.25 + (-0.75) = - 0.5

1
Squashing:  0.3775
1 e 0.5

Robotic & Vision Lab RoVis


• Data is presented to the network in the form of activations in the input
layer

• Examples
• Pixel intensity (for pictures)
• Molecule concentrations (for artificial nose)
• Share prices (for stock market prediction)

• Data usually requires preprocessing


• Analogous to senses in biology

• How to represent more abstract data, e.g. a name?


• Choose a pattern, e.g.
• 0-0-1 for “Chris”
• 0-1-0 for “Becky”

Robotic & Vision Lab RoVis


Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Movie

Robotic & Vision Lab RoVis


Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
while sse > 0.01
function Backprop sse = 0;
for pat = 1 : num_pat
% Backpropagation a = patterns(pat, :) * v; % Pass patterns through weights
y = 1 ./ (1 + exp(-a)); % Sigmoid of weighted input
patterns = [0 0; 0 1; 1 0; 1 1]; % Input patterns - one row per y(:, num_hid) = 1; % Add bias node
input pattern z = y * w; % Pass hidden acts through weights
desired_out = [ 0; 1; 1; 0]; % Desired outputs - one row per o = 1 ./ (1 + exp(-z)); % Sigmoid of input to output
output pattern output_error = desired_out(pat, :) - o; % Error matrix
sse_rec = []; % Will hold a record of all sum-squared-errors sse = sse + output_error * output_error'; % Sum sqr
sse = inf; % A dummy initial sse error, matrix style
eta = 1; % Learning rate. eta = 1 is very large. For XOR, this delta = -output_error .* (1 - o) .* o; % delta=dE/do *
converges fast, but can get stuck in loc. mins. do/dnet
alpha = 0.8; % Momentum term dw = -eta * y' * delta + alpha * dw_last;
patterns = [patterns ones(size(patterns,1),1) ]; % Add a epsilon = y .* (1 - y) .* (delta * w');
column of 1's to input patterns to make a bias node epsilon = epsilon(:, 1:end-1); % Take out error signals for
num_pat = size(patterns, 2); % No. of input patterns bias node
num_inp = size(patterns,2); % No. of input nodes (including dv = -eta * patterns(pat, :)' * epsilon + alpha * dv_last;
bias) w = w + dw; v = v + dv; % Weight update
num_hid = 3; % No. of hidden nodes (including bias node) dw_last = dw; dv_last = dv; % Update momentum
num_out = size(desired_out, 2); % No. of output nodes records
v = 0.5 * (2 * rand(num_inp, num_hid-1) - 1); % Small initial end
weights for input to hidden layer - no weights to bias hidden sse_rec = [sse_rec sse];
node epoch = epoch + 1;
w = 0.5 * (2 * rand(num_hid, num_out) - 1); % Small initial if rem(epoch,50)==0
weights for hidden to output layer disp([' Epoch ' num2str(epoch) ' SSE ' num2str(sse)]);
dv_last = zeros(size(v)); % Last v change, set to a zero matrix end
dw_last = zeros(size(w)); % Last w change, set to a zero matrix end
epoch = 0; % Initialize count of training epochs close all; figure

Robotic & Vision Lab RoVis


plot(sse_rec); xlabel('Epoch'); ylabel('Sum squared error
(SSE)');
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
.
 x  cosΦ 0 
.   v
 y    sinΦ 0  ω 
.  0   
Φ   
1
 

Robotic & Vision Lab RoVis


Robotic & Vision Lab RoVis
+
X
+ Rotating angle
Neural Control Mobile robot
Y +
+

Robotic & Vision Lab RoVis


Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis
Robotic & Vision Lab RoVis

You might also like