【问题标题】:MLPClassifier parameter settingMLPClassifier参数设置
【发布时间】:2018-01-27 20:56:44
【问题描述】:

我正在开发一个使用反向传播算法的项目。所以我在 scikit-learn 中学习反向传播算法。

mlp = MLPClassifier(hidden_layer_sizes=(hiddenLayerSize,), solver='lbfgs', learning_rate='constant',learning_rate_init=0.001, max_iter=100000, random_state=1)

有不同的求解器选项,如 lbfgs、adam 和 sgd,还有激活选项。是否有关于应该使用哪个选项进行反向传播的最佳实践?

【问题讨论】:

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


    【解决方案1】:

    solver 是这里设置优化算法的参数。一般设置sgd (stochastic gradient descent)效果最好,也可以实现更快的收敛。在使用sgd 时,除了设置learning_rate 之外,您还需要设置momentum 参数(默认值=0.9 有效)。

    激活函数选项用于引入模型的非线性,如果你的模型有很多层,你必须使用激活函数,例如relu (rectified linear unit) 来引入非线性,否则使用多层变得无用。 relu 是最简单、最有用的激活函数。

    【讨论】:

      【解决方案2】:

      另外需要考虑的是,激活函数为ReLu时学习率不宜过大。

      ReLu 函数的主要问题是所谓的“Dying Relu”问题。当一个神经元被卡在负侧时,它被认为是死的,并且当学习率太大时最有可能发生。

      【讨论】:

        猜你喜欢
        • 2021-08-16
        • 2017-11-12
        • 2017-04-18
        • 2020-08-13
        • 2018-02-17
        • 1970-01-01
        • 2014-12-10
        • 2017-06-25
        • 2012-02-23
        相关资源
        最近更新 更多