【问题标题】:How to implement regularization in pybrain如何在pybrain中实现正则化
【发布时间】:2023-04-06 04:12:01
【问题描述】:

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

【问题讨论】:

    标签: python machine-learning neural-network pybrain


    【解决方案1】:

    下面是不是 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。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        正则化意味着改变成本函数。 PyBrain 中的用户选择确实会影响成本函数——例如,通过选择层是线性还是 sigmoid——但成本函数本身似乎并未直接暴露。

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

        【讨论】:

          猜你喜欢
          • 2017-07-14
          • 2014-12-12
          • 1970-01-01
          • 1970-01-01
          • 2020-01-06
          • 2016-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多