function [net, acc, time] = trainnns(DATA, LABELS, NHID, NIT, ALPHA) % [net, acc, time] = traingmms(DATA, LABELS, NHID) % Train two Gaussian mixture models and evaluate their accuracy % on the training data. DATA is rows of training feature vectors, % with corresponding 0/1 labels in LABELS. Train a pair of GMMs % with NGAUSS components, return in M1 (for label 0) and M2 (for % label 1). Report the % correct on the training data and return % it in acc. Return total elapsed time in time. % 2003-06-30 dpwe@ee.columbia.edu muscontent practical % Start execution timer tic; if nargin < 3 NHID = 5; end if nargin < 4 NIT = 10; end if nargin < 5 ALPHA = 0.2; end ndim = size(DATA, 2); options = zeros(1,18); options(9) = 1; % Check the gradient calculations options(14) = NIT; nout = 1; net = mlp(ndim, NHID, nout, 'logistic', ALPHA); net = netopt(net, options, DATA, LABELS, 'quasinew'); % Evaluate net output over all training frames out = mlpfwd(net, DATA); % Overall classification accuracy on training data acc = mean( (out>0.5) == LABELS); disp(['Accuracy on training data = ',num2str(round(1000*acc)/10), '%']); % How long did it take? time = toc; disp(['Elapsed time = ', num2str(time),' secs']);