MATLAB Answers

0

How do I impose a sparcity constraint when training a simple neural network?

Asked by Rory Bufacchi on 26 Nov 2019 at 11:37
Latest activity Edited by Rory Bufacchi on 27 Nov 2019 at 10:49
I am training a feedforward network, and would like to know how response properties change when I add an additional constraint on the error function. Specifically, I want to give a cost to neural activation to enforce sparcity.
To be clear: I know what the maths is, but I don't know how to get it working in the Matlab implementation.
I have tried editing nncalc.perform, as described here (https://uk.mathworks.com/matlabcentral/answers/64319-neural-network-how-to-use-a-custom-performance-function) by changing the
e=gsubtract(t,y);
line, but it doesn't seem to work.
The neural net setup is very basic:
% example net settings
net=feedforwardnet([10 10 5]);
net.performFcn= 'mse';
net=init(net);
net.trainFcn = 'trainlm';
net.trainParam.epochs=100;
net.trainParam.showWindow = 0;
net.trainParam.max_fail=5;
% some sample training data:
x=[ 13 2 5 0 13 3 4 0;
6 15 12 0 6 16 13 0;
2 14 14 0 14 15 14 0;
5 4 11 0 5 5 11 0;
12 9 9 0 11 10 10 0];
R=[NaN NaN -0.0010;
NaN 0 NaN;
NaN 2.0000 NaN;
NaN NaN -0.0010;
-0.0010 NaN NaN];
net=train(net,x', R' );
Any help with this would be very much appreciated!

  0 Comments

Sign in to comment.

0 Answers