代码之家  ›  专栏  ›  技术社区  ›  mrgloom

为什么在损失函数中使用均值而不是求和?

  •  1
  • mrgloom  · 技术社区  · 6 年前

    为什么在损失函数中使用均值而不是求和?

    i、 e.有什么理由更喜欢这个吗

    def mae_loss(y_true, y_pred):
        loss = tf.reduce_mean(tf.abs(y_true-y_pred))
        return loss
    

    为了这个

    def mae_loss(y_true, y_pred):
        loss = tf.reduce_sum(tf.abs(y_true-y_pred))
        return loss
    

    在Keras源代码中,还使用mean variant:

    https://github.com/keras-team/keras/blob/5a7a789ee9766b6a594bd4be8b9edb34e71d6500/keras/losses.py#L17

    1 回复  |  直到 6 年前
        1
  •  3
  •   June Yoon    6 年前

    我们通常计算损失是为了与他人比较,或者尽可能减少损失。如果只得到sum而不是mean,结果会根据数据的数量而变化,那么很难找到它是大还是不大。这就是为什么我们通常使用“均方误差”或“绝对误差”来代替它们的和。