【深度学习】:回归 & 分类任务的Loss函数分析

本文深入探讨了回归任务中的L1、L2、Huber和Log_cosh Loss,分析了它们的特点和应用场景。对于分类任务,介绍了Hinge、交叉熵及其变种损失函数。Log_cosh Loss结合了L1和L2的优点,但存在对异常值处理不佳的问题;Quantile Loss则用于回归间隔而非精确点。
摘要由CSDN通过智能技术生成

#回归Loss

1.L1 & L2 loss

代码
import tensorflow as tf
import matplotlib.pyplot as plt
sess = tf.Session()
x_val = tf.linspace(-1.,-1.,500)
target = tf.constant(0.)

#计算L2_loss
l2_y_val = tf.square(target - x_val)
l2_y_out = sess.run(l2_y_val)#用这个函数打开计算图

#计算L1_loss
l1_y_val = tf.abs(target - x_val)
l1_y_out = sess.run(l1_y_val)#用这个函数打开计算图

#打开计算图输出x_val,用来画图
#用画图来体现损失函数的特点
x_array = sess.run(x_val)
plt.plot(x_array, l1_y_out, 'b--', lable = 'L1_loss')
plt.plot(x_array, l2_y_out, 'r--', lable = 'L2_loss')
对L1和L2损失的分析
  • 用L1能够对异常值更鲁棒。

  • 用L2能够更快的收敛。
    L2比L1能更快速的收敛的原因在于接近与目标值的时候,L2曲线更加平滑。
    L1比L2对异常值更加鲁棒的原因,是因为当出现异常值时,L2对异常值反应后的error会比L1大,因为一个是平方级的,一个是绝对值。这会导致用L2更新参数时,由于异常值的Loss大导致参数更新方向往异常值偏。所以说L1对异常值更加鲁棒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanCruise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值