任何人都可以在pybrain中提供实现正则化技术的示例编码吗? 我试图防止我的数据过度拟合,并且目前正在寻找像早期停止等方法来做到这一点。 谢谢!
答案 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范数求和它们的正绝对差值。)