3

我正在使用 Theano 的 DBN(深度信念网络)和 SDA(堆叠去噪自动编码器)示例进行文本分类实验。我已经生成了一个特征/标签数据集,就像生成 Theano 的 MINST 数据集一样,并更改了这些示例的特征长度和输出值以采用我的数据集(2 个输出而不是 10 个输出,并且我的数据集采用了特征数量) . 每次我运行实验(DBN 和 SDA)时,我都会得到准确的 50% 验证错误和测试错误。你有什么想法我做错了吗?因为我刚刚从电影评论数据集中生成了一个数据集作为 MINST 数据集格式并将其腌制。

我的代码与您可以在http://www.deeplearning.net/tutorial/DBN.html中找到的 代码相同,我的 SDA 代码与您可以在 http://www.deeplearning.net/tutorial/SdA中找到的代码相同.html

唯一的区别是我制作了自己的数据集,而不是 MINST 数字识别数据集。我的数据集是来自电影评论数据集的词袋特征,它当然具有不同数量的特征和输出类,所以我只是对输入和输出类的函数参数数量进行了微小的修改。代码运行得很漂亮,但结果总是 50%。这是一个示例输出:

Pre-training layer 2, epoch 77, cost  -11.8415031463
Pre-training layer 2, epoch 78, cost  -11.8225591118
Pre-training layer 2, epoch 79, cost  -11.8309999005
Pre-training layer 2, epoch 80, cost  -11.8362189546
Pre-training layer 2, epoch 81, cost  -11.8251214285
Pre-training layer 2, epoch 82, cost  -11.8333494168
Pre-training layer 2, epoch 83, cost  -11.8564580976
Pre-training layer 2, epoch 84, cost  -11.8243052414
Pre-training layer 2, epoch 85, cost  -11.8373403275
Pre-training layer 2, epoch 86, cost  -11.8341470443
Pre-training layer 2, epoch 87, cost  -11.8272021013
Pre-training layer 2, epoch 88, cost  -11.8403720434
Pre-training layer 2, epoch 89, cost  -11.8393612003
Pre-training layer 2, epoch 90, cost  -11.828745041
Pre-training layer 2, epoch 91, cost  -11.8300890796
Pre-training layer 2, epoch 92, cost  -11.8209189065
Pre-training layer 2, epoch 93, cost  -11.8263340225
Pre-training layer 2, epoch 94, cost  -11.8348454378
Pre-training layer 2, epoch 95, cost  -11.8288419285
Pre-training layer 2, epoch 96, cost  -11.8366522357
Pre-training layer 2, epoch 97, cost  -11.840142131
Pre-training layer 2, epoch 98, cost  -11.8334445128
Pre-training layer 2, epoch 99, cost  -11.8523094141

文件 DBN_MovieReview.py 的预训练代码运行了 430.33m

... getting the finetuning functions
... finetuning the model
epoch 1, minibatch 140/140, validation error 50.000000 %
     epoch 1, minibatch 140/140, test error of best model 50.000000 %
epoch 2, minibatch 140/140, validation error 50.000000 %
epoch 3, minibatch 140/140, validation error 50.000000 %
epoch 4, minibatch 140/140, validation error 50.000000 %
Optimization complete with best validation score of 50.000000 %,with test performance 50.000000 %

文件 DBN_MovieReview.py 的微调代码运行了 5.48m

我使用两个不同的功能集同时运行 SDA 和 DBN。所以我在所有这 4 个实验中都得到了 50% 的准确率。

4

2 回答 2

4

我在 Theano 的用户组中问了同样的问题,他们回答说特征值应该在 0 到 1 之间。

所以我使用了一个归一化器来归一化特征值,它解决了这个问题。

于 2014-03-27T08:46:24.453 回答
0

我有同样的问题。我认为这个问题是因为过冲。所以我将学习率从 0.1 降低到 0.013 并增加 epoch。然后它工作。但我不确定你的问题是否相同。

于 2015-10-16T09:13:11.607 回答