正则化是否包含在 Keras 返回的损失历史中?

数据挖掘 喀拉斯 正则化
2022-02-18 18:38:44

我开始了解 Keras。现在,我正在测试正则化以及如何使用它们。比较使用和不使用正则化的训练会话的损失历史结果,在我看来,Keras 报告的损失历史添加了正则化项,对吗?

当我的模型没有正则化项时,损失值从小于 1 的值开始,但是当我使用正则化 (L1L2) 重新训练模型时,相同问题的损失值从 500 开始。我得到的唯一合乎逻辑的解释是Keras 在向其添加正则化项后报告损失值。而且我相信没有正则化的损失值和它一样有价值,如果不是更有价值的话。你不觉得吗?

1个回答

默认情况下,正则化值是在损失中计算的,因此您无法单独查看正则化值(据我所知)。有关使用正则化的交叉熵损失的示例的简要说明,请查看Michael Nielsen 书中的示例

您可以通过保存调用的结果来查看返回和可用的内容model.fit()

您可以训练模型,然后查看:

print(history.history.keys())

它将在训练模型后向您显示所有可用的分析指标。

您也许可以定义一个自定义函数来计算您正在使用的正则化术语,并将其作为您自己的指标或作为 Keras 模型中的回调函数执行。如果您使用自己的指标,则默认情况下这些指标与训练/验证损失值分开记录。