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

Popular posts from this blog

facebook - android ACTION_SEND to share with specific application only -

python - Creating a new virtualenv gives a permissions error -

javascript - cocos2d-js draw circle not instantly -