深度学习系列--02.损失函数

news/2025/2/6 9:56:19 标签: 深度学习, 人工智能, pytorch

一.定义

损失函数(Loss Function)是机器学习和深度学习中用于衡量模型预测结果与真实标签之间差异的函数,它在模型训练和评估过程中起着至关重要的作用

二.作用

1.指导模型训练

  • 提供优化方向:在训练模型时,我们的目标是调整模型的参数,使模型的预测结果尽可能接近真实结果。损失函数通过计算预测值与真实值之间的差异,为模型参数的调整提供了方向。例如在梯度下降算法中,会根据损失函数对参数的梯度来更新参数,使得损失函数的值逐渐减小,即模型朝着预测结果更准确的方向优化。
  • 确定训练停止条件:训练过程通常会持续进行,直到损失函数的值收敛到一个较小的值或者达到预设的训练轮数等条件。损失函数的值可以作为判断模型是否已经训练好的一个重要依据。当损失函数不再明显下降时,我们可以认为模型已经达到了一个相对较好的状态,此时可以停止训练,防止过拟合等问题。

2.评估模型性能 

  • 衡量模型优劣:在模型训练完成后,需要对模型的性能进行评估。损失函数的值可以直观地反映模型在测试数据集上的表现。损失函数值越小,说明模型的预测结果与真实值越接近,模型的性能也就越好。通过比较不同模型在相同数据集上的损失函数值,我们可以选择出性能最优的模型。
  • 比较不同算法和参数设置:在尝试不同的机器学习算法或对同一算法使用不同的参数设置时,损失函数可以帮助我们评估哪种算法或参数设置更优。例如在选择线性回归模型的正则化参数时,可以通过比较不同参数下模型的损失函数值,找到使损失最小的参数值,从而确定最优的模型配置

常见的损失函数包括均方误差(MSE)、交叉熵损失函数、绝对值损失函数等,不同的损失函数适用于不同的任务和数据类型,例如回归任务常用 MSE,分类任务常用交叉熵损失函数。 

三.损失函数是如何指导模型训练的 

  以下以简单的线性回归模型和均方误差损失函数为例,说明损失函数是如何指导模型训练的:

  假设我们有一组数据点(Xi,Yi),其中Xi是输入特征,Yi是对应的真实输出值,我们想要训练一个线性回归模型 y = wx + b 来拟合这些数据,这里w是权重,b是偏置。我们选择均方误差(MSE)作为损失函数,其计算公式为:

其中 y^i = wxi + b 是模型的预测值,是数据点的数量。 

训练过程如下:

  1. 随机初始化参数
    首先,随机初始化权重和偏置的值,例如w=0.5,b=0.2。此时模型的预测结果可能与真实值相差较大,损失函数的值也会比较大。

     2. 计算损失值

     3.计算梯度
接下来,需要计算损失函数对权重和偏置的梯度。根据求导公式可得:

     4. 更新参数

      5.重复迭代

重复步骤 2 到步骤 4,不断计算损失值、梯度,并更新参数。随着迭代的进行,损失函数的值会逐渐减小,模型的预测结果会越来越接近真实值。例如,经过多次迭代后,假设,,此时重新计算损失值:

此时损失函数值为 0,说明模型已经完美拟合了这组数据(在实际情况中,损失函数值通常不会恰好为 0,但会趋近于一个较小的值)。

  通过以上过程可以看出,损失函数通过计算预测值与真实值的差异,得到损失值,并通过计算梯度为模型参数的更新提供方向,使得模型在训练过程中不断调整参数,以减小损失函数的值,从而逐渐提高模型的准确性。

 四.常见的损失函数

1. 分类任务

 交叉熵损失函数(Cross-Entropy Loss)

 对数损失函数(Log Loss)

 Hinge 损失函数

2. 回归任务

平均绝对误差损失函数(Mean Absolute Error, MAE) 

 平均绝对百分比误差损失函数(Mean Absolute Percentage Error, MAPE)

Huber 损失函数 

 3.其他


http://www.niftyadmin.cn/n/5842853.html

相关文章

Windows图形界面(GUI)-QT-C/C++ - QT Dock Widget

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 一、概述 二、使用场景 1. 工具栏 2. 侧边栏 3. 调试窗口 三、常见样式 1. 停靠位置 2. 浮动窗口 3. 可关闭 4. 可移动 四、属性设置 1. 设置内容 2. 获取内容 3. 设置标题 …

PyQt6/PySide6 的 QDialog 类

QDialog 是 PyQt6 或 PySide6 库中用于创建对话框的类。对话框是一种特殊的窗口,通常用于与用户进行短期交互,如输入信息、显示消息或选择选项等。QDialog 提供了丰富的功能和灵活性,使得开发者可以轻松地创建各种类型的对话框。下面我将详细…

基于PostGIS的省域空间相邻检索实践

目录 前言 一、相关空间检索函数 1、ST_touches函数 2、ST_Intersects函数 3、ST_Relate函数 4、区别于对比 二、空间相邻检索实践 1、省域表相关介绍 2、相关省域相邻查询 3、全国各省份邻居排名 三、总结 前言 在当今数字化时代,地理空间数据的高效管理…

论文解读:《基于TinyML毫米波雷达的座舱检测、定位与分类》

摘要 本文提出了一种实时的座舱检测、定位和分类解决方案,采用毫米波(mmWave)雷达系统芯片(SoC),CapterahCAL60S344-AE,支持微型机器学习(TinyML)。提出了波束距离-多普勒…

计算机网络之计算机网络分层结构

一、分层结构概述 计算机网络分层结构将网络通信过程划分为多个层次,每个层次都负责完成特定的任务和功能。这些层次之间通过接口进行通信,上层使用下层提供的服务,并向其上层提供服务。分层结构的设计使得网络通信过程更加模块化和易于管理…

潮汐发电机使用MTi运动传感器在快速水流中保持稳定位置

开发可再生能源是应对气候危机的重要措施。太阳能和风能是可再生能源领域的巨头,但它们的产量是不可预测的,而且是间歇性的。我们很难可靠地预测风力有多强或阳光有多亮。这是国家电网运营商面临的一个问题,他们负责动态平衡能源供应和负载。…

OpenCV YOLOv11实时视频车辆计数线:让车辆进出有条理!

前言 大家好!今天我们聊个超级有趣的课题——如何用OpenCV结合YOLOv11进行实时视频车辆计数。是不是很炫酷?车辆进出全都清晰可见,连“跑车”都能精确统计!不过,别急,这可不仅仅是数车那么简单,背后还有许多实际问题等着你去搞定,比如计数线、车速、误检这些麻烦的小问…

【大模型】AI 辅助编程操作实战使用详解

目录 一、前言 二、AI 编程介绍 2.1 AI 编程是什么 2.1.1 为什么需要AI辅助编程 2.2 AI 编程主要特点 2.3 AI编程底层核心技术 2.4 AI 编程核心应用场景 三、AI 代码辅助编程解决方案 3.1 AI 大模型平台 3.1.1 AI大模型平台代码生成优缺点 3.2 AI 编码插件 3.3 AI 编…