【问题标题】:Optimize sparse softmax cross entropy with L2 regularization使用 L2 正则化优化稀疏 softmax 交叉熵
【发布时间】:2018-06-20 16:32:31
【问题描述】:

我正在使用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)

【问题讨论】:

  • 你试过缩小你的 l2 损失吗?

标签: python tensorflow neural-network loss-function


【解决方案1】:

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

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

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

【讨论】:

  • 这是真的,我应该意识到这一点(尽管我使用的是 beta 参数,并且这个效果应该用它的低值来平滑)。
猜你喜欢
  • 2017-12-26
  • 2021-02-15
  • 1970-01-01
  • 2016-09-18
  • 2020-10-12
  • 2019-12-18
  • 2021-03-19
  • 2019-05-23
  • 1970-01-01
相关资源
最近更新 更多