因为 MLP 可以实现任何功能。我有以下代码,我试图用它来实现 AND 函数。但我发现多次运行该程序时,我最终得到了不同的预测值。为什么会出现这种情况?另外,如何确定不同层必须提供哪种类型的激活函数?
from sknn.mlp import Regressor,Layer,Classifier
import numpy as np
X_train = np.array([[0,0],[0,1],[1,0],[1,1]])
y_train = np.array([0,0,0,1])
nn = Classifier(layers=[Layer("Softmax", units=2),Layer("Linear", units=2)],learning_rate=0.001,n_iter=25)
nn.fit(X_train, y_train)
X_example = np.array([[0,0],[0,1],[1,0],[1,1]])
y_example = nn.predict(X_example)
print (y_example)
最佳答案
-每次运行获得的不同值是因为您的权重是随机初始化的。 -激活函数具有不同的属性。您可以根据自己的经验来决定哪一个最适合您的情况,也可以阅读它们的工作原理 ( https://stats.stackexchange.com/questions/115258/comprehensive-list-of-activation-functions-in-neural-networks-with-pros-cons )
关于python - 同一算法 scikit 神经网络多次运行的不同预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090019/