本节主要介绍一个深度学习的matlab版工具箱,
DeepLearnToolbox
该工具箱中的代码很简单,感觉比较适合用来学习算法。里面有常见的网络结构,包括深度网络(NN),稀疏自编码网络(SAE),CAE,深度信念网络(DBN)(基于玻尔兹曼RBM实现),卷积神经网络(CNN)等等。感谢该toolbox的作者。发现这个工具箱是在优快云上另外一位博主的博客下发现的,该博主也很详细的介绍了该工具箱里面的大多数函数,
点击该博主博客
也感谢该博主。在此博主的基础上,我添加一些自己的见解,更主要的是后期介绍一些基于该工具箱的深度学习应用。
这里再Mark一下其他好的深度学习工具箱:
18个最热深度学习Github项目逐一介绍
好了,对于前面那个工具箱,可以先去看看上面那个博主的系列文章,如果看不懂,没关系,看完了再看看应用,慢慢就懂了,下面的部分内容我将参考上述博主,同时加入更加详细的解释以期达到更明了的目的。
依据目前已经介绍的内容,对于DBN,CNN等没有介绍到的内容我将在后期讨论介绍,这里我先主要介绍下基于该工具箱的网络建立,以及稀释自编码网络。
首先介绍下一般网络的建立模型,找到在工具箱
DeepLearnToolbox\tests\test_example_NN.m文件,这个测试函数是测试一般的网络模型,取前一段代码:
load mnist_uint8;
train_x = double(train_x) / 255;
test_x = double(test_x) / 255;
train_y = double(train_y);
test_y = double(test_y);
% normalize
[train_x, mu, sigma] = zscore(train_x);
test_x = normalize(test_x, mu, sigma);
%% ex1 vanilla neural net
rand('state',0)
nn = nnsetup([784 100 10]);
opts.numepochs = 1; % Number of full sweeps through data
opts.batchsize = 100; % Take a mean gradient step over this many samples
[nn, L] = nntrain(nn, train_x, train_y, opts);
[er, bad] = nntest(nn, test_x, test_y);
assert(er < 0.08, 'Too bi