MLPClassifier参数设置

时间:2017-08-19 07:45:59

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

我正在开发一个使用Backpropation算法的项目。所以我正在学习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以及激活选项都有不同的求解器选项。关于哪种选项应该用于反向传播,是否有最佳实践?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

要考虑的另一件事是,当激活功能为ReLu时,学习率不应太大。

enter image description here

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