通过L2正则化优化稀疏softmax交叉熵

时间:2018-06-20 16:32:31

标签: python tensorflow neural-network loss-function

我正在使用tf.losses.sparse_softmax_cross_entropy作为最后一层的分类函数来训练我的网络,一切都工作正常。

我现在只是在权重上添加了L2正则化,并且损失不再得到优化。会发生什么?

reg = tf.nn.l2_loss(w1) + tf.nn.l2_loss(w2)
loss = tf.reduce_mean(tf.losses.sparse_softmax_cross_entropy(y, logits)) + reg*beta
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)

enter image description here

1 个答案:

答案 0 :(得分:1)

鉴于所提供的信息很难确定答案,但这是可能的原因:

tf.nn.l2_loss计算为元素上的总和,而交叉熵损失减少到其平均值(参见tf.reduce_mean),因此这两个项之间的数值不平衡。

例如,尝试将每个L2损耗除以计算得出的元素数量(例如tf.size(w1))。