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