clc clear all close all % ************************************************************************* % This script reproduces Figure 3E of the manuscript. % Florian Raudies, 01/30/2014, Boston University. % This script will run for about 500 minutes or 8 hours. % ************************************************************************* LABEL_SIZE = 16; NHidden = 10:10:80; nNHidden = length(NHidden); nLayer = 3; nRun = 50; nBlock = 200; Err = zeros(nRun,nNHidden); LetterLabel = {'A','B','C','D'}; NumberLabel = {'1','2','3','4'}; tic for iRun = 1:nRun, % Set seed for random number generator to be able to replicate data. rng(1+iRun); fprintf('Working on run %d of %d.\n',iRun,nRun); for iHidden = 1:nNHidden, fprintf('Working on hidden number %d of %d.\n',iHidden,nNHidden); nHidden = NHidden(iHidden); dcl = DoubleContextLearnerMLP(LetterLabel,NumberLabel,NHidden(iHidden)); dcl.learn(nBlock,{'A1','B1'}); Err(iRun,iHidden) = dcl.testError; end end toc nSample = size(Err,1); sErr = 1/sqrt(nSample); id = dcl.getIdentifier(); figure('Position',[50 50 600 500],'PaperPosition',[2 2 5 4],'Name','E'); bar(NHidden,mean(Err,1),'FaceColor',[0.7 0.7 0.7]); hold on; errorbar(NHidden,mean(Err,1),sErr*std(Err,0,1),'k.',... 'LineWidth',1.5); hold off; xlabel('Number of hidden neurons','FontSize',LABEL_SIZE); ylabel('Error probability','FontSize',LABEL_SIZE); title(id,'FontSize',LABEL_SIZE); set(gca,'FontSize',LABEL_SIZE); axis([0 90 0 0.5]); axis square;