我刚刚了解了正则化作为一种控制过拟合的方法,我想将这个想法融入我放在一起的反向传播和多层感知器(MLP) 的简单实现中。
目前为了避免过度拟合,我交叉验证并保持网络在验证集上的得分最高。这行得通,但是添加正则化将使我受益,因为正确选择正则化算法和参数将使我的网络更系统地收敛于非过拟合模型。
我对更新术语(来自 Coursera ML 课程)的公式表示为批量更新,例如对于每个权重,在从错误传播中对整个训练集的所有适用增量求和之后,lambda * current_weight
在组合之前添加一个调整在批次结束时减去 delta,其中lambda
是正则化参数。
我的反向传播实现使用了每个项目的权重更新。我担心我不能只是复制批处理方法,尽管它在我看来直观上还可以。每个项目较小的正则化项是否也有效?
例如lambda * current_weight / N
,其中 N 是训练集的大小 - 乍一看,这看起来很合理。不过,我在这个主题上找不到任何东西,我想知道这是否是因为正则化在逐项更新时效果不佳,或者甚至使用不同的名称或更改的公式。