4.1 Single-layer perceptron (from-scratch)
% XOR cannot be solved by single-layer perceptron; use this for simple binary linearly separable data X = [0 0 1 1; 0 1 0 1]; % 2x4 T = [0 1 1 0]; % 1x4 w = randn(1,2); b = randn; eta = 0.1; for epoch=1:1000 for i=1:size(X,2) x = X(:,i)'; y = double(w*x' + b > 0); e = T(i) - y; w = w + eta*e*x; b = b + eta*e; end end 4.2 Feedforward MLP using MATLAB Neural Network Toolbox (patternnet) 0 1 0 1]
% Example using a simple feedforward net with fullyConnectedLayer layers = [ featureInputLayer(2) fullyConnectedLayer(10) reluLayer fullyConnectedLayer(2) softmaxLayer classificationLayer]; % 1x4 w = randn(1
X = rand(2,500); % features T = double(sum(X)>1); % synthetic target hiddenSizes = [10 5]; net = patternnet(hiddenSizes); net.divideParam.trainRatio = 0.7; net.divideParam.valRatio = 0.15; net.divideParam.testRatio = 0.15; [net, tr] = train(net, X, T); Y = net(X); perf = perform(net, T, Y); 4.3 Using Deep Learning Toolbox (layer-based) for classification b = randn
% Prepare data X = rand(1000,2); Y = categorical(double(sum(X,2)>1)); ds = arrayDatastore(X,'IterationDimension',1); cds = combine(ds, arrayDatastore(Y)); trainedNet = trainNetwork(cds, layers, options); 4.4 Implementing backprop from scratch (single hidden layer)