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

深度学习——损失函数

二、损失函数

  • 损失函数定义:损失函数是用来衡量模型参数的质量的函数,衡量方式是比较网络输出和真实输出的差异

  • 别名:损失函数(loss function),代价函数(cost function),目标函数(objective function),误差函数(error function)

1.多分类损失函数

  • 在多分类任务通常使用softmax将logits转换为概率的形式,所以多分类的交叉熵损失也叫做softmax损失,它的计算方法是:L=−∑i=1nyilog(S(fθ(xi)))L=-\sum_{i = 1}^ny_ilog(S(f_\theta(x_i)))L=i=1nyilog(S(fθ(xi)))
    • yiy_iyi:真实值标签(one_hot热编码)
    • f(x)f(x)f(x)是样本属于某一类别的预测分数
    • S(fθ(xi))S(f_\theta(x_i))S(fθ(xi)):网络输出结果的概率值
    • i=1i=1i=1:样本个数
  • 在pytorch中使用nn.CrossEntropyLoss()实现

2.二分类任务损失函数

  • 在处理二分类任务时, 使用sigmoid激活函数,则损失函数也会进行相应的调整,使用二分类的交叉熵损失函数:L=−ylogy^−(1−y)log(1−y^)L = -ylog\hat y-(1-y)log(1-\hat y)L=ylogy^(1y)log(1y^)
    • y是样本x中属于某一个类别的真实概率
    • y^\hat yy^是严格不能属于某一类别的预测概率
    • LLL用来衡量真实值y与预测值y^\hat yy^之间的差异性的损失结果
  • 在pytorch中使用nn.BCELoss()实现

3.回归任务损失函数-MAE损失函数

  • Mean absolute loss(MAE)也被称为L1 Loss,是以绝对误差作为距离,损失函数公式:L=1n∑i=1n∣yi=fθ(xi)∣L = \frac{1}{n}\sum_{i = 1}^n|y_i=f_\theta(x_i)|L=n1i=1nyi=fθ(xi)
  • 特点:
    • 由于L1 loss具有稀疏性,为了惩罚较大的值,因此常常将其作为正则项添加到其他loss中作为约束;
    • L1 loss的最大问题时梯度在零点不平滑,导致会跳过极小值(最优解)

4.回归任务损失函数-MSE损失函数

  • Mean Squared Loss/Quadratic Loss(MSE loss)也被称作L2 loss,或欧氏距离,它以误差的平方和的均值作为距离损失函数公式:L=1n∑i=1n(yi−fθ(xi))2L = \frac{1}{n}\sum_{i = 1}^n(y_i-f_{\theta(x_i)})^2L=n1i=1n(yifθ(xi))2
  • 特点:
    • L2 loss也常常作为正则项
    • 当预测值与目标值相差很大时,梯度容易爆炸(则尽量不会使用这种损失函数)

5.回归任务损失函数-smooth L1损失函数

  • smooth L1说的是光滑之后的L1,损失函数公式为:smoothL1(x)={0.5x2if ∣x∣<1∣x∣−0.5otherwise\text{smooth}_{L_1}(x) = \begin{cases} 0.5x^2 & \text{if } \vert x \vert < 1 \\ \vert x \vert - 0.5 & \text{otherwise} \end{cases}smoothL1(x)={0.5x2x0.5if x<1otherwise
    • 其中,x=f(x)−yx = f(x)-yx=f(x)y为真实值与预测值的差值
  • 从图像中可以看出,该函数实际上就是一个分段函数
    • [−1,1][-1, 1][1,1]之间实际上就是L2损失,这样解决了L1的不光滑问题
    • [−1,1][-1, 1][1,1]区间外,实际上就是L1损失,这样就解决了离群点梯度爆炸的问题
http://www.dtcms.com/a/271487.html

相关文章:

  • 【使用Flask基于PaddleOCR3.0开发一个接口 调用时报错RuntimeError: std::exception】
  • JVM调优实战指南:让Java程序性能飞升的奥秘
  • PanTS: The Pancreatic Tumor Segmentation Dataset
  • 使用anaconda创建基础环境
  • 数据分析框架和方法
  • 数据分析-名词
  • pip 安装加速指南:配置国内镜像源(中国科技大学、清华、阿里云等)
  • Java武林:虚拟机之道 第七章:秘籍解析 - JVM调优参数
  • 经验分享-没有xcode也可以上传App Store Connect
  • S7-1500——(一)从入门到精通1、基于TIA 博途解析PLC程序结构(一)
  • c语言中的数组II
  • 景观桥 涵洞 城门等遮挡物对汽车安全性的影响数学建模和计算方法,需要收集那些数据
  • 周立功汽车软件ZXDoc深度解析:新能源汽车开发新基建的破局之道
  • java 语法类新特性总结
  • 【王树森推荐系统】排序05:排序模型的特征
  • 计蒜客T3473丑数、Leetcode2401最长优雅子数组、Leetcode167两数之和、Leetcode581最短无序连续子数组
  • 深度帖:浏览器的事件循环与JS异步
  • 【教程】基于GNN的药物相互作用网络中的链接预测
  • 数据一致性解决方案总结
  • Linux驱动04 --- 网络编程TCP客户端
  • 暑假读书笔记第五天
  • 深入剖析Elasticsearch倒排索引,Query DSL查询使用场景分析
  • lwip+8720+裸机+先上电在插网线 ping不同
  • HashMap的get、put流程源码分析
  • jenkins+固定agent节点+maven+sonarqube+docker
  • uniapp小程序无感刷新token
  • 数据结构之位图和布隆过滤器
  • ReactNative【实战系列教程】我的小红书 5 -- 文章详情(含轮播图 ImageSlider,点亮红心动画 Heart,嵌套评论等)
  • 【三维重建】一、设备分类
  • 优化 ECharts 多条折线:折线数据不完整导致的X轴日期错乱问题