【发布时间】:2023-04-06 04:12:01
【问题描述】:
任何人都可以提供在 pybrain 中实现正则化技术的示例编码吗? 我试图防止数据过度拟合,目前正在寻找一种方法,如提前停止等。 谢谢!
【问题讨论】:
标签: python machine-learning neural-network pybrain
任何人都可以提供在 pybrain 中实现正则化技术的示例编码吗? 我试图防止数据过度拟合,目前正在寻找一种方法,如提前停止等。 谢谢!
【问题讨论】:
标签: python machine-learning neural-network pybrain
下面是不是 L1/L2 正则化。但它可以通过提前停止来防止过拟合。
来自trainer 文档,
trainUntilConvergence(dataset=None, maxEpochs=None, verbose=None, continueEpochs=10, validationProportion=0.25)
在数据集上训练模块直到它收敛。
返回带有最小验证参数的模块 错误。
如果没有给出数据集,则在 Trainer 期间传递的数据集 使用初始化。 validationProportion 是 用于验证数据集的数据集。
如果给定 maxEpochs,则最多训练多少个 epoch。每一次 验证错误达到最小值,尝试 continueEpochs epochs 找到 一个更好的。
如果您使用默认参数,则您已经启用了 75:25 的分割作为训练与验证数据集。验证数据集用于 EARLY STOPPING。
【讨论】:
pybrain 中有一个权重衰减变量是 L2 正则化。除此之外,我将实施早期停止作为权重衰减项的组合。
以下是指定重量衰减的方法。
trainer = RPropMinusTrainer(net, dataset=trndata, verbose=True, weightdecay=0.01)
【讨论】:
正则化意味着改变成本函数。 PyBrain 中的用户选择确实会影响成本函数——例如,通过选择层是线性还是 sigmoid——但成本函数本身似乎并未直接暴露。
然而,elsewhere on StackOverflow,有人声称通过 weightdecay 参数可以实现 L2 正则化。 (L2 范数对每个坐标的差的平方求和,而 L1 范数对它们的正绝对差求和。)
【讨论】: