-
Notifications
You must be signed in to change notification settings - Fork 22
/
leaky_esn.m
23 lines (21 loc) · 1.09 KB
/
leaky_esn.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function internalState = leaky_esn(totalstate , esn , varargin )
% Update internal state using the leaky integrator neuron model.
%
% input arguments:
% totalstate: the previous totalstate, vector of size
% (esn.nInternalUnits + esn.nInputUnits + esn.nOutputUnits) x 1
% esn: the ESN structure
%
% output:
% internalState: the updated internal state, size esn.nInternalUnits x 1
%
% Created June 7, 2006, H.Jaeger
% Revision 1, June 23, 2007, H.Jaeger (include esn.feedbackScaling)
% Revision 2, July 1, 2007, H.Jaeger (change from uniform timeConstant to
% neuron-specific timeConstants
previousInternalState = totalstate(1:esn.nInternalUnits, 1);
internalState = (1 - esn.leakage * esn.timeConstants) .* previousInternalState + esn.timeConstants .* ...
feval(esn.reservoirActivationFunction ,...
[ esn.internalWeights, esn.inputWeights, esn.feedbackWeights * diag(esn.feedbackScaling )] * totalstate) ;
%%%% add noise to the Esn
internalState = internalState + esn.noiseLevel * (rand(esn.nInternalUnits,1) - 0.5) ;