人工神经网络的正则化实践

数据挖掘 机器学习 神经网络 喀拉斯 正则化
2021-09-28 14:23:27

我从一些例子中了解到 ANN 存在正则化选项(具体来说,在 Keras 实现中)。据我所知,正则化通常是对参数的一种“惩罚”,以防止模型复杂性和过度拟合。

因此, Keras 中W_regularizerb_regularizer选项用于权重和偏差参数正则化,除非我弄错了。但这是activity_regularizer为了什么?它与权重/偏差正则化有何关系?更一般地说:使用所有这些正则化可能性的好做法是什么(除了盲目的蛮力调整)?由于在验证集上测量的 ANN/CNN 产生非常低的过拟合,我认为正则化对于神经网络来说并不是一个真正有用的工具。

1个回答

activity_regularizer用于控制神经网络的输出。他们倾向于使输出更小。假设损失函数为:

loss function = DataLoss + regularizationLoss

然后对于 weight_regularizer regularizationLoss = f(Weights in a network),. 但是对于 activity_regularizer regularizationLoss = f(Predicted outputs from a network),. 当您非常了解测试数据集的分布时,通常会使用活动正则化器。

对于您的第二个论点,我会说您大错特错。ANN 和 CNN 都可能遭受过拟合。为了防止模型过拟合,我们一般会使用很多正则化技术,其中 Dropout 比较流行。