我还是机器学习的新手,刚刚遇到了强大的深度学习库 Keras。
我已经阅读了 Keras 文档并在 Github 上尝试了一些 Keras 示例。我还从多个来源研究了一些深度学习的基本知识和概念,但对看起来非常强大的网络的 CNN 和 RNN 仍然没有真正的理解。
因此,为了证明我的假设,我从 Keras Github 下载了 reuters_mlp.py 示例,该示例最初使用简单的 MLP 网络作为模型。我将imdb_cnn.py示例中得到的CNN思想结合到reuters_mlp.py示例中,然后观察结果。
令人惊讶的是,结果并没有像我预期的那样出来。CNN 的表现比简单的 MLP 网络最差。有人可以解释为什么 CNN 的准确性低于简单的 MLP 网络吗?
这是输出(Tensorflow 作为后端)
8982 个训练序列,2246 个测试序列,46 个类,num_words=1000
MLP(sequences_to_matrix,mode=bianry):
纪元 1/5 8982/8982 [===============================] - 3s - loss: 1.3236 - acc: 0.6984
Epoch 2/5 8982/8982 [===============================] - 2s - loss: 0.7182 - acc: 0.8250
Epoch 3 /5 8982/8982 [===============================] - 2s - loss: 0.4544 - acc: 0.8864
Epoch 4/ 5 8982/8982 [===============================] - 2s - 损失:0.3197 - acc:0.9192
Epoch 5/5 8982/8982 [===============================] - 2s - 损失:0.2511 - acc:0.9356
1920/2246 [= =======================>.....] - ETA: 0s
测试损耗:1.05213204963 测试精度:0.785396260071
CNN(pad_sequences):
纪元 1/5 8982/8982 [===============================] - 81s - 损失:1.9794 - acc: 0.5181
纪元2/5 8982/8982 [==============================] - 78s - 损失:1.4289 - acc:0.6591
Epoch 3 /5 8982/8982 [===============================] - 79s - loss: 1.1546 - acc: 0.7175
Epoch 4/ 5 8982/8982 [===============================] - 78s - 损失:0.9639 - acc:0.7663
Epoch 5/5 8982/8982 [===============================] - 77s - 损失:0.8378 - acc:0.7935
2240/2246 [= ============================>.] - ETA: 0s
测试损耗:0.960687935512,测试精度:0.764470169243