Huber Loss 及 tensorflow实现

    Huber Loss 相当于平方误差的推广,通过设置delta的值,使损失函数鲁棒性更强,从而减弱离群点(outliers)对模型的影响。当delta为无穷大时,Huber Loss 退化为Squared Loss.



tensorflow实现如下:

def huber_loss(labels, predictions, delta=1.0):
    residual = tf.abs(predictions - labels)
    condition = tf.less(residual, delta)
    small_res = 0.5 * tf.square(residual)
    large_res = delta * residual - 0.5 * tf.square(delta)
    return tf.select(condition, small_res, large_res)

参考:Stanford CS20SI tensorflow


猜你喜欢

转载自blog.csdn.net/hyk_1996/article/details/79570915