softmax的活动正规化器?

时间:2018-05-21 14:27:53

标签: machine-learning neural-network keras

我的生成神经网络的最后一层有一个l1 activity_regularizer = l1:

outputs = Dense(200, activation='softmax', activity_regularizer=l1(1e-5))(x)

它使我的结果更好但我不明白为什么它会改变softmax激活的任何东西。输出之和= 1,所有正值总是如此,正则化器应该给出完全相同的损失,无论如何。

activity_regularizer=l1(1e-5)在训练中做了什么?

1 个答案:

答案 0 :(得分:1)

由于Softmax,L1正则化对总成本的贡献实际上是不变的。

然而,正则化项的梯度为非零并且等于非零激活的数量( abs 的梯度为符号,所以我们有一个 sign 的激活因为softmax而为正值的总和。

您可以尝试使用和不使用L1项运行,并检查最终会有多少非零元素。