MATLAB: Ho to add activation function neuron

backpropagationneural networkneural networks

I am developing backpropagation Neural Network for classification, but I am confused how to determine the number of neurons in layer and the activation functions for each neuron? The input parameters are 9 and the output is 8
Scripts for training are as follows :
%clear; clc; close all; %%%
%This code to choose the .csv file as 'training input data' %clear; clc; [FileName,PathName] = uigetfile('.*','Select data as Training Input'); PD=csvread([PathName,FileName],1,11); % csv file from sensor PD=abs(PD);%% Absolute all Parameters of (.csv)
%%% This code to normalize all input parameters % Normalization of 9 Parameters(.csv) A=PD(:,1); %peak value normA = A – min(A(:)); %norm of peak value normA = normA ./ max(normA(:));
B=PD(:,6); %phase normB = B – min(B(:)); %norm of phase normB = normB ./ max(normB(:));
C=PD(:,11); %risetime normC = C – min(C(:)); %norm of risetime normC = normC ./ max(normC(:));
D=PD(:,12); %falltime normD = D – min(D(:)); %norm of falltime normD = normD ./ max(normD(:));
E=PD(:,13); %pulsewidth normE = E – min(E(:)); %pulsewidth normE = normE ./ max(normE(:));
F=PD(:,15); %pulsearea normF = F – min(F(:)); %pulsearea normF = normF ./ max(normF(:));
G=PD(:,16); %eventwidth normG = G – min(G(:)); %eventwidth normG = normG ./ max(normG(:));
H=PD(:,17); %freqofmaxampltd normH = H – min(H(:)); %freqofmaxampltd normH = normH ./ max(normH(:));
I=PD(:,19); %freqof1stmom normI = I – min(I(:)); %freqof1stmom normI = normI ./ max(normI(:));
normPD = table([normA],[normB],[normC],[normD],[normE],[normF],[normG],[normH],[normI]);
% this code to assign 'x' as a variable for training input normPD=table2array(normPD); x=normPD; x=x'; %transpose the training input %L=length(x); %count the number of rows 'x' %%%
%This code to choose the .csv file as 'target output data' [FileName,PathName] = uigetfile('.*','Select file as Target Output'); target_output_TEV=csvread([PathName,FileName],0,0); target_output_TEV=target_output_TEV'; %transpose the target output t=target_output_TEV; %%%
% Choose a Training Function trainFcn = 'trainbr'; % Bayesian Regularization
% Choose a Performance Function performFcn = 'mse'; % Mean-square error
% Create a Pattern Recognition Network hiddenLayerSize = 13; net9_tev2d = patternnet(hiddenLayerSize,trainFcn, performFcn);
% Setup Division of Data for Training, Validation, Testing % For a list of all data division functions type: help nndivide RandStream.setGlobalStream(RandStream('mt19937ar','seed',1)); % to get constant result net9_tev2d.divideFcn = 'dividerand'; % Divide data randomly net9_tev2d.divideMode = 'sample'; % Divide up every sample net9_tev2d.divideParam.trainRatio = 70/100; net9_tev2d.divideParam.valRatio = 15/100; net9_tev2d.divideParam.testRatio = 15/100;
%Training Parameters net9_tev2d.trainParam.show=50; %# of ephocs in display net9_tev2d.trainParam.lr=0.05; %learning rate net9_tev2d.trainParam.epochs=1000; %max epochs net9_tev2d.trainParam.goal=0.01^2; %training goal net9_tev2d.efficiency.memoryReduction=100; net9_tev2d.trainParam.max_fail=1000;%maximum validation fail net9_tev2d.trainParam.min_grad=1e-5;
% Choose a Performance Function % For a list of all performance functions type: help nnperformance net9_tev2d.performFcn = 'mse'; % Mean-square error
% Choose Plot Functions % For a list of all plot functions type: help nnplot net9_tev2d.plotFcns = {'plotperform','plottrainstate','ploterrhist', … 'plotconfusion', 'plotroc'};
% Train the Network [net9_tev2d,tr] = train(net9_tev2d,x,t);
% Test the Network y = net9_tev2d(x); e = gsubtract(t,y); performance = perform(net9_tev2d,t,y) tind = vec2ind(t); yind = vec2ind(y); percentErrors = sum(tind ~= yind)/numel(tind);
% Recalculate Training, Validation and Test Performance trainTargets = t .* tr.trainMask{1}; valTargets = t .* tr.valMask{1}; testTargets = t .* tr.testMask{1}; trainPerformance = perform(net9_tev2d,trainTargets,y) valPerformance = perform(net9_tev2d,valTargets,y) testPerformance = perform(net9_tev2d,testTargets,y)
% Plots figure, plotconfusion(t,y)
Than you so much for the help.

Best Answer

Search the NEWSGROUP AND ANSWERS using
greg patternnet
Hope this helps.
Thank you for formally accepting my answer
Greg