machine learning - Matlab example code for deep belief network for classification -
i have dataset of 40 feature vectors divided 4 clases. give example code in matlab how apply deep belief network classification (and explaining parameters)? arbitrary library/tooblox can used, should in matlab.
there example shogun toolbox (http://www.shogun-toolbox.org/), deebnet toolbox (http://ceit.aut.ac.ir/~keyvanrad/deebnet%20toolbox.html) or deep learning toolbox (http://www.mathworks.com/matlabcentral/fileexchange/38310-deep-learning-toolbox) unfortunately of them not documented , because i'm totally new deep learning / neral nets hard me.
edit: should chose following parameters or on range should search?
nn.activation_function = 'tanh_opt'; % activation functions of hidden layers: 'sigm' (sigmoid) or 'tanh_opt' (optimal tanh). nn.learningrate = 2; % learning rate note: typically needs lower when using 'sigm' activation function , non-normalized inputs. nn.momentum = 0.5; % momentum nn.scaling_learningrate = 1; % scaling factor learning rate (each epoch) nn.weightpenaltyl2 = 0; % l2 regularization nn.nonsparsitypenalty = 0; % non sparsity penalty nn.sparsitytarget = 0.05; % sparsity target nn.inputzeromaskedfraction = 0; % used denoising autoencoders nn.dropoutfraction = 0; % dropout level (http://www.cs.toronto.edu/~hinton/absps/dropout.pdf) nn.testing = 0; % internal variable. nntest sets one. nn.output = 'sigm'; % output unit 'sigm' (=logistic), 'softmax' , 'linear' opts.numepochs = 1; opts.batchsize = 100; opts.momentum = 0; opts.alpha = 1;
so dbn's pretty complicated , took me few months wrap head around them. here's quick overview though-
a neural network works having kind of features , putting them through layer of "all or nothing activations". these activations have weights , nn attempting "learn". nns kind of died in 80-90's because systems couldn't find these weights properly. until awesome 2006 paper of geoff hinton - thoughy pretrain network restricted boltzman machine weights in right ball park.
it depends on goal, if goal learn how work, start hinton's original paper , rewrite have functions instead of static 3 layer network thats in paper. give intuition of whats going on in terms of weights being learned , activations.
now answer second question- there's bit of debate- in experience key factor coming architecture of system these variables follows:
- number of layers
- number of visible
- nodes number of hidden nodes per layer
other variables can control classify optimization variables. these are:
- the activation function- tanh, sigmoid, relu
- the learning rates variables learned
i'm going warn though, don't expect stellar results-- , prepared have system takes long time train.
a second route go try other systems out there caffe , might give more usable results.
anyways, luck :)
ps, such small data might consider using svms instead.
Comments
Post a Comment