WEKA和Scikit-Learn多层感知器给出了不同的结果

问题描述 投票:1回答:1

大家

我目前正在使用Multilayer perceptron进行研究。我之前使用WEKA运行它,但我已经因为各种原因迁移到了python中的scikit-learn。

我试图在WEKA中重现我的预测结果以进行scikit-learn所以我使用完全相同的学习率,动量,隐藏层等制作了精确的感知器。然而,预测结果对于这两个平台都有所不同。有人可以就此事给我一些解释吗?

我注意到的唯一一点是scikit learn使用lbfgs,adam和sgd来优化其连接权重,而WEKA使用反向传播。但这可能是唯一的原因吗?或者还有其他原因吗?

最好的祝福

python scikit-learn weka
1个回答
1
投票

如果您使用不同的优化器训练神经网络,它肯定会给出不同的结果。这种差异可能很小或很大。所有NN优化算法都使用反向传播 - 即,LBFGS,Adam和SGD都使用反向传播。此外 - 一般情况下 - 两次训练相同的NN可能永远不会给你完全相同的结果 - 这是因为大多数优化器(至少是值得花时间的那些)采取部分随机步骤。

© www.soinside.com 2019 - 2024. All rights reserved.