我正在使用 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% 的准确率。