如何在分类损失和正则化器之间取得正确的平衡? [关闭]

Posted

技术标签:

【中文标题】如何在分类损失和正则化器之间取得正确的平衡? [关闭]【英文标题】:How can I get the right balance between classification loss and a regularizer? [closed] 【发布时间】:2019-03-06 09:12:55 【问题描述】:

我正在开发一个深度学习分类器(Keras 和 Python),它将时间序列分为三类。我使用的损失函数是标准的分类交叉熵。除此之外,我还有一个正在同一模型中学习的注意力图。

我希望这张注意力图尽可能小,所以我使用了正则化器。问题来了:如何设置正确的正则化参数?我想要的是网络首先达到其最大分类精度,然后开始最小化强度注意力图。出于这个原因,我在没有正则化器的情况下训练我的模型一次,然后在打开正则化器的情况下训练第二次。但是,如果正则化参数(lambda)太高,网络会完全失去准确性,只会最小化注意力,而如果正则化参数太小,网络只会关心分类错误,不会最小化注意力,即使当准确率已经是最大值了。

有没有更聪明的方法将分类交叉熵与正则化器结合起来?也许考虑了分类交叉熵随时间的变化,如果它没有下降,比如 N 次迭代,它只考虑正则化器?

谢谢

【问题讨论】:

澄清一下,当我说“正则化器”时,我指的是 Keras 文档的定义:“正则化器允许在优化期间对层参数或层活动施加惩罚”。我没有任何过拟合的问题,我只是想通过惩罚它的强度来降低注意力图的复杂性。 【参考方案1】:

正则化是一种对抗过拟合的方法。因此,您应该了解您的模型是否过拟合。一个简单的方法:您可以比较 traintestf1 score。如果 trainf1 分数 很高,而 test 的分数很低,似乎你有过拟合 - 所以你需要添加一些正则化。

【讨论】:

您好,谢谢您的回答。我想我一定用错了术语,因为 Keras 文档将“正则化器”称为“允许在优化期间对层参数或层活动施加惩罚”的东西。我真的没有任何过度拟合的问题,我只是想通过对其强度施加惩罚来降低注意力图的复杂性。

以上是关于如何在分类损失和正则化器之间取得正确的平衡? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Keras:内核和活动正则化器之间的区别

具有高度不平衡的多标签分类中的损失曲线

SVM、Softmax 损失函数

损失函数选择

如何在 TensorFlow 中添加正则化?

如何在 Keras 中正确实现自定义活动正则化器?