由于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)
答案 0 :(得分:0)
- 每次运行获得的不同值是因为您的权重是随机初始化的。 - 活化功能具有不同的属性。您可以使用您的经验来决定哪种方式最适合您的情况,或者您可以阅读它们的工作方式(https://stats.stackexchange.com/questions/115258/comprehensive-list-of-activation-functions-in-neural-networks-with-pros-cons)