Theano分类任务总是提供50%的验证错误和测试错误?

时间:2014-03-24 15:15:03

标签: sentiment-analysis text-classification theano deep-learning

我正在使用Theano的DBN(Deep Belief Network)和SDA(Stacked Denoising Autoencoder)示例进行文本分类实验。 我已经生成了一个特征/标签数据集,就像Theano的MINST数据集一样,并改变了这些例子的特征长度和输出值以采用我的数据集(2个输出而不是10个输出,并且我的数据集采用了特征数量) 。 每次我运行实验(DBN和SDA)时,我都会得到确切的50%验证错误和测试错误。 你有什么想法我做错了吗?因为我刚刚将Movie Review Dataset中的数据集生成为MINST数据集格式并对其进行了腌制。

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

唯一的区别是我制作了自己的数据集而不是MINST数字识别数据集。我的数据集是来自Movie Review Dataset的Bag of Words功能,当然它具有不同数量的功能和输出类,所以我只对输入和输出类的功能参数进行了微小的修改。 代码运行得很漂亮但结果总是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
... finetunning 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。所以这四次实验都得到了50%的准确度。

2 个答案:

答案 0 :(得分:4)

我在Theano的用户组中问了同样的问题,他们回答说功能值应介于0和1之间。

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

答案 1 :(得分:0)

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