机器学习 – softmax的活动正规化器?

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

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

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

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

最佳答案 由于Softmax,L1正则化对总成本的贡献实际上是不变的.

然而,正则化项的梯度是非零并且等于非零激活的数量(abs的梯度是符号,因此我们具有由于softmax而为正的激活的符号的总和).

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

点赞