均方对数误差
e r r o r = 1 n ∑ i = 1 n ( l o g ( p i + 1 ) − l o g ( a i + 1 ) ) 2 error = \frac{1}{n}\sum_{i=1}^{n}(log(p_{i}+1)-log(a_{i}+1))^{2} error=n1∑i=1n(log(pi+1)−log(ai+1))2
log 减小了损失值
import tensorflow as tf
y_true = [[0., 1.], [0., 0.]]
y_pred = [[1., 1.], [1., 0.]]
# Using 'auto'/'sum_over_batch_size' reduction type.
msle = tf.keras.losses.MeanSquaredLogarithmicError()
msle(y_true, y_pred).numpy()
0.24022643
不使用 log 时
y_true = [[0., 1.], [0., 0.]]
y_pred = [[1., 1.], [1., 0.]]
# Using 'auto'/'sum_over_batch_size' reduction type.
msle = tf.keras.losses.MeanSquaredError()
msle(y_true, y_pred).numpy()
0.5