首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >深度学习工具箱中DBN的不良结果

深度学习工具箱中DBN的不良结果
EN

Stack Overflow用户
提问于 2015-04-16 03:14:19
回答 1查看 542关注 0票数 0

我想运行这个例子。当我使用mnist_uint8数据时,我可以很好地运行这段代码。但是,如果我使用自己的数据运行一个模型(如DBN.m),下面的代码如下:

代码语言:javascript
复制
[er, bad] = nntest(nn, test_x, test_y); 

将不运行,er为零。为什么会发生这种事?我的训练数据的输入大小为320*200,输出为320*1。

编辑:添加代码和数据文件

代码语言:javascript
复制
load dataX 
load dataY 
load pdataX 
load pdataY
train_x=dataX/100
test_x=pdataX/100
pdataY(find(pdataY(:,:)<=20))=0;
pdataY(find(pdataY(:,:)>20))=1;
dataY(find(dataY(:,:)<=20))=0;
dataY(find(dataY(:,:)>20))=1;
train_y=dataY
test_y=pdataY
rand('state',0); 
dbn.sizes = [100 40];

%train a 100-40 hidden unit DBN 
opts.numepochs = 1;
opts.batchsize = 40;
opts.momentum = 0;
opts.alpha = 1;
dbn = dbnsetup(dbn, train_x, opts);
dbn = dbntrain(dbn, train_x, opts);

%unfold dbn to nn nn = dbnunfoldtonn(dbn, 1);
nn.activation_function = 'sigm';
%train nn opts.numepochs = 1;
opts.batchsize = 40;
nn = nntrain(nn, train_x, train_y, opts);
[er, bad] = nntest(nn, test_x, test_y);

这是数据

Q3Ae-DDNAGDnV57b6Pzq6gtf01w0lD8

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 03:26:34

编辑:

经过大量讨论(见评论),问题是目标(Y)需要使用单N编码格式进行培训和测试。例如,1类为1 0,2类为0 1,修改后的代码产生的基本错误率为0.2125。进一步的调优和架构更改应该会产生更好的结果。

代码语言:javascript
复制
clear all

load dataX 
load dataY 
load pdataX 
load pdataY
train_x=dataX/100;
test_x=pdataX/100;
pdataY(find(pdataY(:,:)<=20))=0;
pdataY(find(pdataY(:,:)>20))=1;
dataY(find(dataY(:,:)<=20))=0;
dataY(find(dataY(:,:)>20))=1;
train_y=dataY
test_y=pdataY

% Add dimension for one-of-N encoding
train_y(:,2) = 1-train_y(:,1);
test_y(:,2) = 1-test_y(:,1);

rand('state',0)
dbn.sizes = [100 40];

%train a 100-40 hidden unit DBN
opts.numepochs = 2;
opts.batchsize = 40;
opts.momentum = 0;
opts.alpha = 1;
dbn = dbnsetup(dbn, train_x, opts);
dbn = dbntrain(dbn, train_x, opts);

%unfold dbn to nn
nn = dbnunfoldtonn(dbn, 2);
nn.activation_function = 'sigm';

%train nn
opts.numepochs = 100;
opts.batchsize = 40;
nn = nntrain(nn, train_x, train_y, opts);
[er, bad] = nntest(nn, test_x, test_y);

原来的答案:

我假设您的培训数据是200个特性和320个培训示例。假设您对其进行了适当的培训,那么您可能需要执行功能约简。我知道在MNIST数据集上运行的ML算法使用主成分分析(参见Matlab函数主成分分析())对其进行预处理以截断某些特性是很流行的。请张贴更多的代码,让我们真正看到问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29664711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档