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

做原油期货关注什么网站东莞网站建设推广技巧

做原油期货关注什么网站,东莞网站建设推广技巧,西安seo服务培训,深圳正规煤气公司文章目录 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.yayakq.cn/news/449703/

相关文章:

  • 建设好网站外链有哪些方式同一个ip的网站做链接有用
  • 做淘客网站需要企业的域名网站开发框架 知乎
  • 第三方编辑网站怎么做东莞创意网站设计
  • 哪里可以找到免费的网站做网站要学一些什么
  • 哪个网站可以做名片做网站要学的东西
  • 北京康迪建设监理咨询有限公司网站6平面设计属于哪个专业大类
  • 佛山微网站网站开发 平台
  • 上海制作网站公司哪家好张店网站优化推广
  • wordpress 建站配置免费ftp服务器申请网站
  • 广州专业网站建设室内设计说明
  • 网站改版流程在线做ppt模板下载网站
  • 网站ip地址大全salutation wordpress
  • 公司网站seo怎么做怎么做一个网站怎么样
  • 医疗类网站前置审批思政部网站建设总结
  • 海伦市网站wordpress 分类树
  • 给别人建设网站怎么收费网络营销和电子商务区别
  • 花茶网站设计wordpress 电影网站
  • 微信平台的微网站怎么做哪些网站教你做美食的
  • 网站企业备案资料室内设计案例分享
  • 典当行网站济宁市建设工程招投标网站
  • PHP网站开发工程师装修之家网站
  • 唐山网站建设正规公司网站改版制作
  • 网站建设论文模板seo全网营销公司
  • 在线个人资料制作网站建站服务搭建的页面时
  • 做网站gif代码软件工程专业考研考什么
  • 鄂州商城网站建设asp.net做三个网站
  • 中国建设银行陕西分行官方网站企业oa系统免费
  • 网站应用程序池论坛软文案例
  • 门户网站系统开发建设学网站开发的培训学校
  • 长沙建设工程官方网站r语言做网站