I am trying to use patternnet to classify the MNIST handwritten digit dataset.
I expected patternnet(10) to do worse than patternnet([10,10]), but it seems that the accuracy decreases as I add more layers.
Can someone explain why?
Here is my code:
images = loadMNISTImages('train-images.idx3-ubyte'); % initialize figure
labels = loadMNISTLabels('train-labels.idx1-ubyte'); % initialize figure
labels = labels'; % transpose
labels(labels==0)=10; % dummyvar function doesn´t take zeroes
labels=dummyvar(labels)'; net = patternnet([10,10]); %or patternnet(10)
net.divideParam.trainRatio = 70/100;net.divideParam.valRatio = 15/100;net.divideParam.testRatio = 15/100;net.performFcn = 'crossentropy';net = configure(net,images,labels);net = train(net,images,labels);y=net(images);perf = perform(net,labels,y)correctcount=0;for i = 1:60000[M, I]= max(y(:,i));if t(I,i)== 1correctcount=correctcount+1;endenderrorrate = 1- (correctcount/60000)
Best Answer