Huber Loss 及 tensorflow实现

本文介绍了HuberLoss损失函数的概念及其实现方式。HuberLoss是一种结合了平方损失和线性损失的方法,通过设置参数δ来调整损失函数的形式,降低离群点对模型训练的影响。当偏差小于δ时采用平方损失,大于δ时则采用线性损失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

解释:

Huber Loss对平方损失进行了分段,分为平方损失和线性损失。当偏差小于δ时,为平方损失,当偏差大于δ时,为线性损失。由于离群点往往具有很大的偏差,因此会落到线性损失(小于原来的均方损失)的区间,从而降低了对离群点的惩罚程度,减弱离群点对模型的影响。

huberloss-w450

 

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
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值