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

mrg*_*oom 2 deep-learning keras tensorflow loss-function

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

即有什么理由为什么这是首选

def mae_loss(y_true, y_pred):
    loss = tf.reduce_mean(tf.abs(y_true-y_pred))
    return loss
Run Code Online (Sandbox Code Playgroud)

对此

def mae_loss(y_true, y_pred):
    loss = tf.reduce_sum(tf.abs(y_true-y_pred))
    return loss
Run Code Online (Sandbox Code Playgroud)

在 Keras 源代码中,还使用了均值变体:

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

Jun*_*oon 10

我们通常计算损失以与其他人进行比较或尽可能地减少它。如果你只得到sum而不是mean,结果会根据数据的数量而变化,那么很难凭直觉判断它是大还是小。这就是为什么我们通常使用“均方误差”或“平均绝对误差”而不是它们的总和。