当前位置: 首页 > news >正文

事业单位网站建设方案站外推广免费网站

事业单位网站建设方案,站外推广免费网站,建设的网站,精致的网站文章目录 1. Huber Loss 原理详解2. Pytorch 代码详解3.与 MSELoss、MAELoss 区别及各自优缺点3.1 MSELoss 均方误差损失3.2 MAELoss 平均绝对误差损失3.3 Huber Loss 4. 总结4.1 优化平滑4.2 梯度较好4.3 为什么说 MSE 是平滑的 1. Huber Loss 原理详解 Huber Loss 是一种结合…

文章目录

  • 1. Huber Loss 原理详解
  • 2. Pytorch 代码详解
  • 3.与 MSELoss、MAELoss 区别及各自优缺点
    • 3.1 MSELoss 均方误差损失
    • 3.2 MAELoss 平均绝对误差损失
    • 3.3 Huber Loss
  • 4. 总结
    • 4.1 优化平滑
    • 4.2 梯度较好
    • 4.3 为什么说 MSE 是平滑的

1. Huber Loss 原理详解

Huber Loss 是一种结合了 MSE(均方误差)与 MAE (平均绝对误差)的损失函数,旨在克服两者的缺点。对于小误差使用 MSE,对于大误差使用 MAE,因此在处理回归问题时,既能够平滑训练过程,有能减少异常值的影响

Huber Loss 函数的数学公式定义如下:

L δ ( y , y ^ ) = { 1 2 ( y − y ^ ) 2 , if  ∣ y − y ^ ∣ ≤ δ δ ∣ y − y ^ ∣ − 1 2 δ 2 , otherwise L_{\delta}(y, \hat{y}) = \begin{cases} \frac{1}{2} (y - \hat{y})^2, & \text{if } |y - \hat{y}| \leq \delta \\ \delta |y - \hat{y}| - \frac{1}{2} \delta^2, & \text{otherwise} \end{cases} Lδ(y,y^)={21(yy^)2,δyy^21δ2,if yy^δotherwise

  • y y y 为真实值
  • y ^ \hat y y^ 为预测值
  • δ \delta δ 是一个阈值,控制误差大小的界限,当误差小于 δ \delta δ 时使用 M S E MSE MSE,当误差大于 δ \delta δ 时使用 M A E MAE MAE

Huber Loss 的特点:

  • 平滑性:当误差小于 δ \delta δ ,Huber Loss 与 MSE Loss一样,平方误差让梯度变平滑,有助于快速收敛
  • 对异常值的鲁棒性:当误差大于 δ \delta δ 时,使用 MAE 来减小异常值对模型的影响,使得 Huber Loss 对大的偏差不那么敏感
  • 可调性: δ \delta δ 是一个超参数,可以根据需求调整,平衡 MSE 和 MAE 效果

2. Pytorch 代码详解

torch.nn.HuberLoss 官方文档: https://pytorch.org/docs/stable/generated/torch.nn.HuberLoss.html
Huber Loss 函数定义:

class torch.nn.HuberLoss(reduction='mean', delta=1.0)

创建一个标准,如果逐元素误差的绝对值低于 delta,则使用平方项,否则使用 delta 缩放的 L1 项。此损失结合了 L1Loss 和 MSELoss 的优点。delta 缩放的 L1 区域使损失对异常值的敏感度低于 MSELoss,而 L2 区域在 L1Loss 附近提供了平滑度。

对于大小为 N 的批次,未经约简的损失可以描述为:
l ( x , y ) = L = { l 1 , . . . , l N } T l(x,y) = L=\{ l_1,...,l_N\}^T l(x,y)=L={l1,...,lN}T

其中:
l n = { 0.5 ( x n − y n ) 2 , 如果 ∣ x n − y n ∣ < d e l t a d e l t a ( ∣ x n − y n ∣ − 0.5 ∗ d e l t a ) ,否则 l_n = \begin{cases} 0.5(x_n - y_n)^2 , 如果 |x_n-y_n| < delta \\ delta(|x_n-y_n|-0.5*delta), 否则 \end{cases} ln={0.5(xnyn)2,如果xnyn<deltadelta(xnyn0.5delta),否则

如果reduction不为 none 则:

l ( x , y ) = { m e a n ( L ) , 如果 r e d u c t i o n = m e a n ; s u m ( L ) , 如果 r e d u c t i o n = s u m ; l(x,y) = \begin{cases} mean(L), 如果reduction = mean; \\ sum(L), 如果 reduction = sum; \end{cases} l(x,y)={mean(L),如果reduction=mean;sum(L),如果reduction=sum;

注意:

当 delta 设置为 1 时,此损失等效于 SmoothL1Loss,一般来说,此损失与 SmoothL1Loss 相差 delta 系数(在 Smooth L1 中也称为 beta)

参数:

  • reduction (str, 可选) - 指定要应用于输出的归约:‘none’ | ‘mean’ | ‘sum’。 ‘none’:不应用任何归约,‘mean’:输出的总和将除以输出中的元素数量,‘sum’:输出将求和。默认值:‘mean’
  • delta (float, 可选) – 指定在 delta 缩放的 L1 和 L2 损失之间切换的阈值。该值必须为正数。默认值:1.0

3.与 MSELoss、MAELoss 区别及各自优缺点

3.1 MSELoss 均方误差损失

MSE损失计算的是真实值与预测值之间差异的平方,适用于误差分布较为均匀且没有异常值的数据。

公式:

M S E = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 MSE = \frac {1}{N} \sum_{i=1}^N(y_i - \hat y_i)^2 MSE=N1i=1N(yiy^i)2

优点:

  • 对误差小的样本非常敏感,适用于误差分布均匀的情况
  • 优化平滑,梯度较好,有助于模型快速收敛

缺点:

  • 对异常值非常敏感。因为平方操作,异常值可能导致损失过大,影响训练过程,导致模型不稳定。

3.2 MAELoss 平均绝对误差损失

MAE损失计算的是真实值和预测值之间的绝对差异,适用于数据中可能存在异常值的情况。

公式:
M A E = 1 N ∑ i = 1 N ∣ y i − y ^ i ∣ MAE = \frac {1}{N} \sum_{i=1}^N|y_i-\hat y_i| MAE=N1i=1Nyiy^i

优点:

  • 对异常值更为鲁棒,异常值不会像 MSE 那样放大其影响
  • 对于中等误差,MAE 提供了更好的稳定性

缺点:

  • 梯度不连续:因为MAE是绝对差,导致在误差较大的时候梯度较小,训练过程可能收敛慢
  • 在某些情况下可能无法收敛到最优解

3.3 Huber Loss

Huber Loss 结合了 MSE 和 MAE 的优点,适用于大多数回归问题。它在小误差时使用 MSE(平滑),在大误差时使用 MAE(鲁棒)

优点:

  • 兼具 MSE 和 MAE 的优点,对异常值不敏感,又能平滑优化
  • 可以自定义 δ \delta δ 值,控制从 MSE 到 MAE 的转换点,灵活性较高
  • 适用于大多数实际回归问题,具有较好性能

缺点:

  • 超参 δ \delta δ 的选择需要调优,可能会影响训练结果

4. 总结

4.1 优化平滑

  • 平滑是指损失函数在参数空间内变化的平稳程度。在损失函数的图像中,如果它是光滑的,表示它的值不会出现剧烈的波动。平滑的损失函数对于优化过程有利,因为它减少了优化过程中由于损失函数剧烈波动而导致的难以收敛的情况。
  • 在优化中,平滑的损失函数能够帮助优化算法(如梯度下降)稳定地找到全局或局部最小值,而不会被局部的“尖峰”或“坑”困住。
  • Huber损失就是一个平滑的损失函数,它在小误差时使用平方损失,避免了大误差的过大惩罚;而在大误差时切换到线性损失,使得对于异常值的影响不至于过大。它结合了均方误差(MSE)和绝对误差(MAE)的优点,使得训练过程更加稳定。

4.2 梯度较好

  • 梯度较好意味着损失函数的导数(梯度)在训练过程中变化平滑,且不存在突变或无法计算的情况。好的梯度有助于优化算法(如梯度下降)准确地更新模型参数。
  • 不好的梯度可能包括梯度爆炸或梯度消失,导致模型训练变得非常缓慢或者无法进行有效更新。梯度较好的损失函数可以确保每次更新都是有效的,从而加速训练过程。
  • Huber损失在误差较小的情况下,梯度是平方的(类似于均方误差),而在误差较大的情况下,梯度是线性的(类似于绝对误差)。这种平滑的梯度变化使得优化过程既不会因剧烈波动而不稳定,也不会在大误差情况下过于惩罚,从而能保持稳定的收敛速度。

4.3 为什么说 MSE 是平滑的

  • 连续性:MSE是一个连续的函数,也就是说,它的值随着输入的变化是平滑变化的,不会出现跳跃或断裂。这意味着在模型训练过程中,误差会随着模型预测值的调整而平滑变化,不会突变,避免了不稳定的训练过程。
  • 可导性:均方误差的导数是连续且平滑的。对于MSE来说,损失函数的导数是关于模型预测值的线性函数。连续且可导的损失函数能够提供平滑的梯度,帮助优化算法(如梯度下降)顺利地更新模型参数。

MSE损失函数是:
M S E = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 MSE = \frac {1}{N} \sum_{i=1}^N(y_i - \hat y_i)^2 MSE=N1i=1N(yiy^i)2

对于每个样本误差 a = y − y ^ a=y-\hat y a=yy^,误差的导数是:
d d a ( a 2 ) = 2 a \frac {d}{da}(a^2) = 2a dad(a2)=2a
这个导数是线性的,并且在每个点都有定义。梯度的线性变化意味着,模型在调整参数时,误差随着预测的改进是平滑减少的。这个特性使得梯度下降在优化过程中可以平稳地更新模型权重,而不会遭遇急剧的变化或不连续的情况。

http://www.yidumall.com/news/89332.html

相关文章:

  • 做网站客户要求分期seo免费优化网站
  • 洛阳网站建设好做不关键词优化如何
  • 南通精诚建设集团有限公司网站怎样通过网络销售自己的产品
  • jsp商务网站开发比较靠谱的推广公司
  • 灰色项目网站代做汽车网络营销的方式有哪些
  • 河南省建设厅官方网站 吴浩app推广平台放单平台
  • 网站有哪些备案河南网站建设公司哪家好
  • 上海的加盟网站建设西安seo服务培训
  • 外包做的网站可以直接去收录吗上海网络营销
  • 专注高端网站建设的搜索引擎优化
  • 企业logo设计平台竞价关键词优化软件
  • 怎样用ps做企业网站西安seo经理
  • 用文件传输协议登录网站最近七天的新闻大事
  • 网站可以做外部链接吗seo关键词排名优化推荐
  • 专业团队表情包张伟aso优化软件
  • 做一元购网站会被封吗40个免费靠谱网站
  • 建站网站如何清理缓存网络优化工程师前景如何
  • git做网站根目录工具大全
  • 大型车产品网站建设游戏推广是干什么的
  • dw可以做视频网站么建个网站需要多少钱
  • 做网站第一部淘宝seo优化排名
  • 工信部网站备案方法微营销平台
  • 河北网站开发多少钱免费搭建网站平台
  • 凡度网络北京网站建设公司整站优化价格
  • 手机网站好还是h5好google seo优化
  • 深圳龙华的学校网站建设广告联盟点击赚钱平台
  • 品牌型网站制作seo推广培训班
  • 漫画网站建设教程视频交换链接营销实现方式解读
  • 企业怎样选择域名做网站微信营销典型案例
  • 我在学校志愿队做网站的经历免费的app推广平台