【问题标题】:Different predictions on multiple run of the same algorithm scikit neural network同一算法 scikit 神经网络多次运行的不同预测
【发布时间】:2016-07-05 12:58:25
【问题描述】:

因为 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)

【问题讨论】:

  • 对于分类通常是使用的标量积,对于您的问题,您恰好需要 1 个神经元。层决定了可以分类的区域。 1层半平面,2层凸区域,每个区域3层
  • 我得到不同的预测怎么办?
  • 很可能是因为起始权重是随机生成的。您可能应该探索如何为您想要的一致性设置随机种子。
  • 我该怎么做才能在简单 AND 函数的训练数据上测试我的模型时获得 100% 的准确率?

标签: python machine-learning scikit-learn neural-network


【解决方案1】:

-每次运行获得的不同值是因为您的权重是随机初始化的。 - 激活函数具有不同的属性。您可以根据自己的经验来决定哪种方法最适合您的情况,或者您可以阅读它们的工作原理 (https://stats.stackexchange.com/questions/115258/comprehensive-list-of-activation-functions-in-neural-networks-with-pros-cons)

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 2012-05-06
    • 2021-01-07
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2020-07-20
    • 1970-01-01
    相关资源
    最近更新 更多