【问题标题】:MLP Classifier neurons weightsMLP 分类器神经元权重
【发布时间】:2018-11-28 23:05:11
【问题描述】:

我有以下 MLP 神经网络:

MLP = MLPClassifier(activation= 'tanh', alpha= 1e-05, hidden_layer_sizes= (2, 3), learning_rate= 'constant' , max_iter= 5000)
MLP.fit(X_train,y_train)

print(MLP.coefs_)

据我了解,这个神经网络只有 2 个隐藏层,第一个隐藏层有 2 个神经元,第二个隐藏层有 3 个神经元。但是,上面打印系数的输出给出了以下内容:

[array([[-0.15020109,  0.29242019],
       [ 0.38515555,  0.06000627],
       [-0.04371792,  0.35203079],
       [ 0.28167529,  0.05948562],
       [-0.46051132, -0.28546222]]), array([[-0.29658042, -1.2229539 ,  0.4949065 ],
       [-0.95435436,  0.3854664 ,  0.6349616 ]]), array([[-0.54332547,  0.27007792,  0.68899707],
       [-0.00191208,  0.89295531, -0.22855791],
       [-0.58939234,  0.39217616,  1.10214481]])]

我的问题是如何将上述输出映射到隐藏层中的每个神经元。乍一看,似乎第一个隐藏层中第一个神经元的权重为:[-0.29658042, -1.2229539 , 0.4949065 ]。单个神经元的权重如何可以是 3 个元素的数组?

【问题讨论】:

    标签: python neural-network classification


    【解决方案1】:

    您还需要考虑输入层和输出层。看起来您正在输入 5 维特征并输出 3 维输出。您的网络有 2 个 隐藏层,大小分别为 2 和 3。因此 coefs_ 应该具有 (5,2),(2,3),(3,3) 形状,以便您的输入从 5-dim 变为 2-dim,然后从 2-dim到 3-dim 然后从 3-dim 到 3-dim 输出。请记住,从一层到下一层的每个连接都有一个权重。因此,如果您有 5 个神经元(输入层)连接到 2 个神经元(第一个隐藏层),那么您需要5*2=10 权重来描述这两层之间的 10 个连接。这正是(5,2) 数组的形状。

    【讨论】:

    • 非常感谢。清晰的解释??
    • 如果您认为答案令人满意,请考虑接受它(上下箭头下方的小复选标记)作为答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2016-08-17
    • 2015-06-29
    • 2014-11-03
    • 2017-10-15
    • 2012-10-08
    相关资源
    最近更新 更多