learncon
(To be removed) Conscience bias learning function
learncon will be removed in a future release. For more information,
see Transition Legacy Neural Network Code to dlnetwork Workflows.
For advice on updating your code, see Version History.
Syntax
[dB,LS] = learncon(B,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learncon('code')
Description
learncon is the conscience bias learning function used to increase
the net input to neurons that have the lowest average output until each neuron responds
approximately an equal percentage of the time.
[dB,LS] = learncon(B,P,Z,N,A,T,E,gW,gA,D,LP,LS) takes several
inputs,
B |
|
P |
|
Z |
|
N |
|
A |
|
T |
|
E |
|
gW |
|
gA |
|
D |
|
LP | Learning parameters, none, |
LS | Learning state, initially should be =
|
and returns
dB |
|
LS | New learning state |
Learning occurs according to learncon’s learning parameter, shown
here with its default value.
LP.lr - 0.001 | Learning rate |
info = learncon(' returns useful
information for each supported code')code character vector:
'pnames' | Names of learning parameters |
'pdefaults' | Default learning parameters |
'needg' | Returns 1 if this function uses |
Deep Learning Toolbox™ 2.0 compatibility: The LP.lr described above equals 1
minus the bias time constant used by trainc in the Deep Learning Toolbox 2.0 software.
Examples
Here you define a random output A and bias vector
W for a layer with three neurons. You also define the learning
rate LR.
a = rand(3,1); b = rand(3,1); lp.lr = 0.5;
Because learncon only needs these values to calculate a bias change
(see “Algorithm” below), use them to do so.
dW = learncon(b,[],[],[],a,[],[],[],[],[],lp,[])
Network Use
To prepare the bias of layer i of a custom network to learn with
learncon,
Set
net.trainFcnto'trainr'. (net.trainParamautomatically becomestrainr’s default parameters.)Set
net.adaptFcnto'trains'. (net.adaptParamautomatically becomestrains’s default parameters.)Set
net.inputWeights{i}.learnFcnto'learncon'Set each
net.layerWeights{i,j}.learnFcnto'learncon'. Each weight learning parameter property is automatically set tolearncon’s default parameters.
To train the network (or enable it to adapt),
Set
net.trainParam(ornet.adaptParam) properties as desired.Call
train(oradapt).
Algorithms
learncon calculates the bias change db for a
given neuron by first updating each neuron’s conscience, i.e., the
running average of its output:
c = (1-lr)*c + lr*a
The conscience is then used to compute a bias for the neuron that is greatest for smaller conscience values.
b = exp(1-log(c)) - b
(learncon recovers C from the bias values each
time it is called.)
Version History
Introduced before R2006aSee Also
Time Series
Modeler | fitrnet (Statistics and Machine Learning Toolbox) | fitcnet (Statistics and Machine Learning Toolbox) | trainnet | trainingOptions | dlnetwork