如何在pybrain中实现正则化

时间:2014-10-17 01:43:43

标签: python machine-learning neural-network pybrain

任何人都可以在pybrain中提供实现正则化技术的示例编码吗? 我试图防止我的数据过度拟合,并且目前正在寻找像早期停止等方法来做到这一点。 谢谢!

3 个答案:

答案 0 :(得分:0)

以下是 L1 / L2正规化。但它可以通过提前停止来防止过度拟合。

来自trainer文档,

  

trainUntilConvergence(dataset = None,maxEpochs = None,verbose = None,   continueEpochs = 10,validationProportion = 0.25)

     

在数据集上训练模块,直到它收敛。

     

使用提供最小验证的参数返回模块   错误。

     

如果没有给出数据集,则在Trainer期间传递数据集   使用初始化。 validationProportion是的比例   用于验证数据集的数据集。

     

如果给出maxEpochs,则最多训练许多时期。每一次   验证错误达到​​最小值,尝试使用continueEpochs epochs查找   一个更好的。

如果您使用默认参数,则已启用75:25的分割作为训练与验证数据集。验证数据集用于EARLY STOPPING。

答案 1 :(得分:0)

有一个权重衰减变量,它是pybrain中的L2正则化。除此之外,我会将早期停止作为重量衰减期的组合实施。

以下是指定体重衰减的方法。

trainer = RPropMinusTrainer(net, dataset=trndata, verbose=True, weightdecay=0.01)

答案 2 :(得分:0)

正规化意味着改变成本函数。 PyBrain中的用户选择会影响成本函数 - 例如,通过选择层是线性还是S形 - 但成本函数本身似乎不会直接暴露。

然而,elsewhere on StackOverflow,有人声称可以通过weightdecay参数进行L2正则化。 (L2范数对每个坐标中差异的平方求和,而L1范数求和它们的正绝对差值。)