DeepLearnToolbox
================
A Matlab toolbox for Deep Learning.
Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.
It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.
A good overview of the theory of Deep Learning theory is
[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)
For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.
* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)
* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)
* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)
If you use this toolbox in your research please cite:
[Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284) (Palm, 2012)
Directories included in the toolbox
-----------------------------------
`NN/` - A library for Feedforward Backpropagation Neural Networks
`CNN/` - A library for Convolutional Neural Networks
`DBN/` - A library for Deep Belief Networks
`SAE/` - A library for Stacked Auto-Encoders
`CAE/` - A library for Convolutional Auto-Encoders
`util/` - Utility functions used by the libraries
`data/` - Data used by the examples
`tests/` - unit tests to verify toolbox is working
For references on each library check REFS.md
Example: Deep Belief Network
---------------------
```matlab
%% train a 100-100-100 DBN and use its weights to initialize a FFNN
dbn.sizes = [100 100 100]; % Number of neurons in each layer
opts.numepochs = 5; % Number of full sweeps through data
opts.batchsize = 100; % Mini-batch size
opts.momentum = 0; % Momentum (0 = none)
opts.alpha = 1; % Learning rate
dbn = dbnsetup(dbn, train_x, opts); % Init network
dbn = dbntrain(dbn, train_x, opts); % Train network
% Use the parameters learned from pre-training to initialize a FFNN to be used for classification
nn.size = [100 100 100];
nn = nnsetup(nn, train_x, train_y);
for i = 1 : 3
nn.W{i} = dbn.rbm{i}.W;
nn.b{i} = dbn.rbm{i}.c;
end
nn.alpha = 1;
nn.lambda = 1e-4;
opts.numepochs = 10;
opts.batchsize = 100;
nn = nntrain(nn, train_x, train_y, opts);
[er, bad] = nntest(nn, test_x, test_y);
printf('%5.2f% error', 100 * er)
figure; visualize(nn.W{1}', 1); %Visualize the weights in the lowest layer
```
Example: Stacked Denoising Auto Encoder
---------------------
```matlab
%% ex1 train a 100-100 hidden unit SDAE and use it to initialize a FFNN
% Setup and train a stacked denoising autoencoder (SDAE)
sae.size = [100 100];
sae = saesetup(sae, train_x);
sae.ae{1}.alpha = 1; % Learning rate
sae.ae{1}.inl = 0.5; % fraction of zero-masked inputs (the noise)
sae.ae{2}.alpha = 1; % Learning rate
sae.ae{2}.inl = 0.5; % fraction of zero-masked inputs (the noise)
opts.numepochs = 5; % Number of full sweeps through data
opts.batchsize = 100; % Mini-batch size
sae = saetrain(sae, train_x, opts); % Do the pre-training
% use the SDAE to initialize a FFNN
nn.size = [100 100];
nn = nnsetup(nn, train_x, train_y);
nn.W{1} = sae.ae{1}.W{1};
nn.b{1} = sae.ae{1}.b{1};
nn.W{2} = sae.ae{2}.W{1};
nn.b{2} = sae.ae{2}.b{1};
nn.lambda = 1e-5; % L2 weight decay
nn.alpha = 1e-0; % Learning rate
opts.numepochs = 5;
opts.batchsize = 100;
nn = nntrain(nn, train_x, train_y, opts);
[er, bad] = nntest(nn, test_x, test_y);
printf('%5.2f% error', 100 * er); % Display error rate
figure; visualize(nn.W{1}', 1) % Visualize the weights
```
Setup
-----
1. Download.
2. addpath(genpath('DeepLearnToolbox'));
Everything is work in progress
------------------------------
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
rasmusbergpalm_DeepLearnToolbox_45ef96c.zip (98个子文件)
license.txt 1KB
rasmusbergpalm-DeepLearnToolbox-45ef96c
NN
nnsetup.m 905B
nnexamples.m 2KB
nnbp.m 487B
nntrain.m 1KB
nnapplygrads.m 269B
nnff.m 475B
nnchecknumgrad.m 1KB
nntest.m 323B
DBN
dbntrain.m 232B
dbnunfoldtonn.m 349B
rbmtrain.m 1KB
rbmup.m 89B
dbnexamples.m 1KB
rbmdown.m 90B
dbnsetup.m 557B
data
mnist_uint8.mat 14.05MB
CNN
cnnnumgradcheck.m 4KB
cnnsetup.m 1KB
cnnff.m 2KB
cnntrain.m 961B
cnnexamples.m 943B
cnnapplygrads.m 571B
cnnbp.m 2KB
cnntest.m 193B
tests
test_nn_gradients_are_numerically_correct.m 203B
runalltests.m 60B
CAE
caeapplygrads.m 1KB
caebp.m 1011B
scaesetup.m 2KB
caebbp.m 917B
caeup.m 489B
caenumgradcheck.m 4KB
caesdlm.m 845B
scaetrain.m 270B
max3d.m 173B
caetrain.m 1KB
caedown.m 259B
caeexamples.m 764B
SAE
saesetup.m 175B
saeexamples.m 1KB
saetrain.m 335B
REFS.md 950B
README.md 4KB
util
softmax.m 256B
im2patches.m 198B
patches2im.m 242B
makeLMfilters.m 2KB
expand.m 2KB
flicker.m 208B
whiten.m 164B
visualize.m 1KB
randp.m 2KB
fliplrf.m 543B
allcomb.m 3KB
xunit
TestCase.m 3KB
TestComponent.m 2KB
info.xml 712B
assertEqual.m 1KB
assertFalse.m 810B
FunctionHandleTestCase.m 6KB
TestCaseWithAddPath.m 2KB
TestRunDisplay.m 10KB
+xunit
+utils
arrayToString.m 3KB
isTearDownString.m 540B
isSetUpString.m 519B
parseFloatAssertInputs.m 2KB
compareFloats.m 4KB
isAlmostEqual.m 1KB
stringToCellArray.m 408B
isTestCaseSubclass.m 894B
Contents.m 1KB
isTestString.m 589B
comparisonMessage.m 1005B
containsRegexp.m 600B
generateDoc.m 337B
TestRunLogger.m 4KB
CommandWindowTestRunDisplay.m 1KB
TestCaseInDir.m 1KB
assertTrue.m 933B
VerboseTestRunDisplay.m 4KB
TestSuiteInDir.m 2KB
Contents.m 2KB
assertFilesEqual.m 2KB
assertExceptionThrown.m 2KB
runtests.m 5KB
assertElementsAlmostEqual.m 2KB
TestSuite.m 13KB
TestComponentInDir.m 2KB
initTestSuite.m 2KB
TestRunMonitor.m 1KB
assertVectorsAlmostEqual.m 2KB
randcorr.m 283B
sigm.m 48B
rnd.m 49B
flipall.m 80B
flipudf.m 576B
sigmrnd.m 126B
共 98 条
- 1
相望_相忘
- 粉丝: 6
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
- 音乐展示网页、基于Stenography的图像数字水印添加与提取,以及基于颜色矩和Tamura算法的图像相似度评估算法py源码
- 基于EmguCV(OpenCV .net封装),图像数字水印加解密算法的实现,其中包含最低有效位算法,离散傅里叶变换算法+文档书
- 基于matlab+DWT的图像水印项目,数字水印+源代码+文档说明+图片+报告pdf
- (优秀毕业设计)基于python实现的数字图像可视化水印系统的设计与实现,多种数字算法实现+源代码+文档说明+理论演示pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页