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

机器学习和深度学习中常见损失函数,包括损失函数的数学公式、推导及其在不同场景中的应用

目录

  1. 引言
  2. 什么是损失函数?
  3. 常见损失函数介绍
    • 3.1 均方误差(Mean Squared Error, MSE)
    • 3.2 交叉熵损失(Cross-Entropy Loss)
    • 3.3 平滑L1损失(Smooth L1 Loss)
    • 3.4 Hinge Loss(合页损失)
    • 3.5 二进制交叉熵损失(Binary Cross-Entropy Loss)
    • 3.6 KL散度(KL Divergence)
    • 3.7 Huber损失(Huber Loss)
    • 3.8 对比损失(Contrastive Loss)
  4. 损失函数的选择
  5. 如何实现常见的损失函数(Python代码)
    • 5.1 MSE的Python实现
    • 5.2 交叉熵损失的Python实现
    • 5.3 平滑L1损失的Python实现
    • 5.4 Hinge Loss的Python实现
    • 5.5 二进制交叉熵损失的Python实现
    • 5.6 KL散度的Python实现
    • 5.7 Huber损失的Python实现
    • 5.8 对比损失的Python实现

1. 引言

在机器学习和深度学习的训练过程中,损失函数(Loss Function)是一个至关重要的部分。它衡量了模型的预测输出与真实值之间的差距,并指导模型的优化方向。不同的任务使用不同的损失函数,本文将详细介绍机器学习和深度学习中常见的损失函数,包括其数学表达、应用场景以及如何使用Python从零实现它们。

2. 什么是损失函数?

损失函数在模型训练中的角色是衡量模型的预测结果与真实标签之间的差异。损失函数的输出通常是一个非负数,越接近0表示模型预测越准确。根据任务的不同,损失函数可以分为回归任务中的损失函数和分类任务中的损失函数两大类。

3. 常见损失函数介绍

3.1 均方误差(Mean Squared Error, MSE)
  • 数学公式

    L ( y ^ , y ) = 1 n ∑ i = 1 n ( y ^ i − y i ) 2 L(\hat{y}, y) = \frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)^2 L(y^,y)=n1i=1n(y^iyi)2

  • 应用场景:常用于回归任务中,比如预测房价、预测温度等连续值输出的场景。

3.2 交叉熵损失(Cross-Entropy Loss)
  • 数学公式
    L ( y ^ , y ) = − ∑ i = 1 n y i log ⁡ ( y ^ i ) L(\hat{y}, y) = -\sum_{i=1}^{n} y_i \log(\hat{y}_i) L(y^,y)=i=1nyilog(y^i)
  • 应用场景:常用于多分类问题,如图像分类、文本分类等。
3.3 平滑L1损失(Smooth L1 Loss)
  • 数学公式
    L ( x , y ) = { 0.5 ( x − y ) 2 if  ∣ x − y ∣ < 1 ∣ x − y ∣ − 0.5 otherwise L(x, y) = \begin{cases} 0.5(x -

http://www.kler.cn/a/290379.html

相关文章:

  • LeetCode【0033】搜索旋转排序数组
  • 如何使用ffmpeg命令行进行录屏
  • 若依笔记(八):芋道的Docker容器化部署
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • 代码 RNN原理及手写复现
  • AWS认证SAA-C0303每日一题
  • 从python应用app向微软Microsoft Teams Channel发送消息message
  • Kafka3.x 使用 KRaft 模式部署 不依赖 ZooKeeper
  • Redis数据结构与连接
  • 快速掌握GPTEngineer:用AI创建网页应用的实用教程
  • 从laborer一词掌握单词记忆的秘诀
  • 《NLP自然语言处理》—— 关键字提取之TF-IDF算法
  • 代码随想录八股训练营第三十一天| C++
  • flutter 提示框2 Dialog
  • Leetcode Hot 100刷题记录 -Day6(滑动窗口)
  • 【护网相关知识】
  • Linux【5】远程管理
  • Python数据结构类型总结
  • 力扣SQL仅数据库(175~185)
  • Linux日志-lastlog日志
  • 网络编程(学习)2024.9.3
  • 3GPP R18 Network energy savings(NES) 之cell DTX/DRX
  • 「MyBatis」图书管理系统 v1.0
  • 对同一文件夹下所有excel表进行相同操作(数据填充、删除、合并)
  • 论文阅读笔记:RepViT: Revisiting Mobile CNN From Vit Perspective
  • blender 快速LOD