机器视觉4-损失函数与梯度计算

news2025/1/17 13:57:37

机器视觉4-损失函数与梯度计算

  • 损失函数定义
      • 公式及变量含义
      • 整体理解
  • 多类支撑向量机损失
  • 正则项与超参数
    • 什么是超参数
      • 一、与模型参数的区别
      • 二、常见的超参数
      • 三、调参方法
  • 什么是优化
      • 一、参数优化的重要性
      • 二、利用损失函数进行反馈
      • 三、调整分类器参数的方法
    • 优化的目标
      • 一、最小化损失函数
      • 二、提高模型的准确性
      • 三、简化模型(正则化相关)
      • 四、满足特定的约束条件
  • 梯度下降算法,随机梯度下降算法以及小批梯度下降算法
      • 基于梯度的优化算法

那么如何通过调整权重和偏置来优化决策边界?

损失函数定义

在这里插入图片描述
在这里插入图片描述
对示例样本,分类器1与分类器2的分类谁的效果更好?

如何定量衡量分类器的性能?确定一个函数来衡量即损失函数

在这里插入图片描述

在这里插入图片描述
这张图片展示了损失函数的一般定义,具体内容如下:

公式及变量含义

  • 公式

    • ( L L L):表示数据集损失,它是数据集中所有样本损失的平均值。这个值用于衡量整个数据集上分类器的总体表现,是优化模型的目标,即通过调整模型参数(如线性分类器中的权重( W W W)等)来最小化这个损失值。
    • ( N N N):表示数据集中样本的总数。例如,如果有一个包含( 1000 1000 1000)张图片的数据集,那么( N = 1000 N = 1000 N=1000)。
    • ( i i i):是样本的索引,从( 1 1 1)到( N N N),用于遍历数据集中的每一个样本。
    • ( x i x_i xi):表示数据集中第( i i i)张图片(或第( i i i)个样本)。这是输入到分类器中的数据,例如在图像分类任务中,( x i x_i xi)就是一张具体的图像。
    • ( f ( x i , W ) f(x_i, W) f(xi,W)):为分类器对( x i x_i xi)的类别预测。这里的( W W W)表示分类器的参数(例如线性分类器中的权重向量等),( f f f)是根据输入样本( x i x_i xi)和参数( W W W)计算得到的预测类别结果。例如,对于一个多类别的图像分类任务,( f ( x i , W ) f(x_i, W) f(xi,W))可能是一个向量,其中每个元素表示样本( x i x_i xi)属于某个类别的概率或得分。
    • ( y i y_i yi):为样本( i i i)真实类别标签(整数)。它是已知的、正确的样本类别信息,用于与分类器的预测结果进行比较,以计算损失。例如,在一个手写数字识别任务中,如果第( i i i)张图片是数字( 3 3 3),那么( y i = 3 y_i = 3 yi=3)。
    • ( L i L_i Li):为第( i i i)个样本的损失当预测值。它是根据第( i i i)个样本的预测结果( f ( x i , W ) f(x_i, W) f(xi,W))和真实标签( y i y_i yi)计算得到的该样本的损失值。不同的任务和模型可能会使用不同的( L i L_i Li)计算方式,常见的有交叉熵损失、均方误差损失等。

整体理解

这个公式给出了损失函数的一般形式,即通过对数据集中每个样本的损失值( L i L_i Li)求平均,得到整个数据集的损失( L L L)。在机器学习模型的训练过程中,通常会使用优化算法(如梯度下降法等)来最小化这个损失函数( L L L),从而调整模型的参数( W W W),使得模型在训练数据上的预测结果尽可能接近真实标签,提高模型的准确性和泛化能力。例如,在线性分类器中,通过不断更新权重( W W W)和偏置等参数,使损失函数( L L L)逐渐减小,优化分类器的决策边界,以更好地对新的数据进行分类。

多类支撑向量机损失

在这里插入图片描述


对猫的损失:
在这里插入图片描述
对汽车的损失:
在这里插入图片描述
总的损失:
在这里插入图片描述

在这里插入图片描述

1.最大:无穷, 最小:0
2.w=0,b=0,L=类别数量-1
3.Li会大1
4.所有的数会放大相同的倍数
5.与4不同,这里的平方会引入本身的值,放大倍数不确定

正则项与超参数

在这里插入图片描述

在这里插入图片描述
上面图片说明W不一致时,损失都可能为0.

那么 对于上述问题答:不唯一,因为W2同样有L=0,应该如何在W,和W2之间做出选择? 那么就引入了一个系数,这个系数就叫正则项。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

什么是超参数

超参数是在机器学习算法运行前需要人为设定的参数,它们不能通过训练数据来学习得到,而是需要通过经验、试错或特定的调参方法来确定。

超参数是在机器学习算法运行前需要人为设定的参数,它们不能通过训练数据来学习得到,而是需要通过经验、试错或特定的调参方法来确定。以下是关于超参数的详细介绍:

一、与模型参数的区别

  • 模型参数:是通过训练数据和优化算法学习得到的参数,例如线性分类器中的权重( w w w)和偏置( b b b)。这些参数是模型的一部分,其值会在训练过程中不断调整,以最小化损失函数,使模型更好地拟合训练数据。
  • 超参数:不是通过训练数据学习得到的,而是在训练开始前就需要设定的。超参数的不同取值会影响模型的训练过程和最终性能。

二、常见的超参数

  • 学习率(Learning Rate):在使用梯度下降等优化算法时,学习率决定了每次参数更新的步长。如果学习率过大,可能会导致模型在最优值附近振荡,无法收敛;如果学习率过小,模型收敛速度会非常慢,训练时间过长。例如,在训练神经网络时,常见的学习率取值可能是0.001、0.01、0.1等,需要根据具体问题和数据进行调整。
  • 迭代次数(Number of Epochs):指的是整个训练数据集被完整遍历的次数。更多的迭代次数可能会使模型在训练数据上的性能更好,但也可能导致过拟合。例如,设置迭代次数为10、50、100等,需要根据模型的收敛情况来确定合适的数值。
  • 批量大小(Batch Size):在使用小批量梯度下降等方法时,批量大小是指每次用于计算梯度并更新参数的样本数量。较大的批量大小可以利用向量化计算提高计算效率,但可能会使梯度更新不够频繁,导致收敛变慢;较小的批量大小可以使梯度更新更频繁,但计算效率可能较低。常见的批量大小有32、64、128等。
  • 正则化参数(Regularization Parameter):如L1正则化中的( λ \lambda λ)和L2正则化中的( λ \lambda λ),用于控制正则化项的强度,防止模型过拟合。较大的正则化参数会使模型的参数更趋向于0,使决策边界更平滑,但可能会导致欠拟合;较小的正则化参数对模型的约束较小。
  • 神经网络的结构超参数:对于神经网络,还包括隐藏层的数量、每个隐藏层的神经元数量、激活函数的类型(如ReLU、Sigmoid等)等。这些超参数的选择会影响神经网络的复杂度和表达能力。

三、调参方法

  • 网格搜索(Grid Search):为超参数设定一些可能的取值范围,然后在这些范围内生成所有可能的超参数组合,并对每个组合进行训练和评估,选择性能最好的超参数组合。这种方法比较简单,但计算量较大,尤其是当超参数较多时。
  • 随机搜索(Random Search):与网格搜索类似,但不是遍历所有可能的组合,而是在超参数的取值范围内随机选取一些组合进行尝试。这种方法在某些情况下可以更高效地找到较好的超参数组合,尤其是当某些超参数对性能的影响不是均匀分布时。
  • 贝叶斯优化(Bayesian Optimization):是一种更智能的调参方法,它根据已有的超参数组合及其对应的性能结果,建立一个概率模型(如高斯过程)来预测不同超参数组合的性能,并选择最有希望的超参数组合进行下一次尝试。这种方法可以更有效地探索超参数空间,减少不必要的尝试,但实现相对复杂。

超参数的选择对机器学习模型的性能有很大的影响,需要根据具体的问题、数据和模型进行仔细的调整和优化。

什么是优化

参数优化是机器学习的核心步骤之一,它利用损发函数的输出值作为反馈信号来调整分类器参数,以提升分类器对训练样本的预测性能。

这句话准确地概括了参数优化在机器学习中的重要性和基本原理:

一、参数优化的重要性

  • 在机器学习中,模型(如分类器)通常包含一些参数(例如线性分类器中的权重( w w w)和偏置( b b b)),这些参数的取值直接影响模型对输入数据的处理和预测结果。通过参数优化,可以找到一组最优或较优的参数值,使模型能够更好地拟合训练数据,从而提高对新数据的预测性能。

二、利用损失函数进行反馈

在这里插入图片描述
损失函数L是一个与参数W有关的函数,优化的目标就是找到使损失函数L达到最优的那组参数W。

  • 损失函数的作用:损失函数用于衡量模型的预测结果与真实标签之间的差异。对于每个训练样本( x i x_i xi),分类器会根据当前的参数( W W W)(这里( W W W)泛指模型的所有参数)得到一个预测值( f ( x i , W ) f(x_i, W) f(xi,W)),然后通过损失函数( L i ( f ( x i , W ) , y i ) L_i(f(x_i, W), y_i) Li(f(xi,W),yi))计算出该样本的损失值,其中( y i y_i yi)是样本( x i x_i xi)的真实类别标签。整个数据集的损失( L = 1 N ∑ i L i ( f ( x i , W ) , y i ) L=\frac{1}{N} \sum_{i} L_i(f(x_i, W), y_i) L=N1iLi(f(xi,W),yi))是所有样本损失的平均值。

  • 反馈信号:损失函数的输出值(即损失( L L L))为参数优化提供了反馈信号。如果损失值较大,说明模型的预测结果与真实标签相差较大,需要调整参数来减小损失;反之,如果损失值较小,说明模型的性能较好,但可能还需要进一步微调参数以达到更好的效果。
    那么最直接的方法就是将L/W的导数为0的状态。

三、调整分类器参数的方法

  • 常见的参数优化方法是基于梯度的优化算法,如梯度下降法及其变种(随机梯度下降、小批量梯度下降等)。这些算法通过计算损失函数关于参数的梯度(即损失函数对每个参数的偏导数),来确定参数的更新方向和步长。例如,在梯度下降法中,参数( W W W)的更新公式为( W = W − α ∂ L ∂ W W = W - \alpha \frac{\partial L}{\partial W} W=WαWL),其中( α \alpha α)是学习率,它控制着参数更新的步长。通过不断地根据梯度更新参数,使得损失函数逐渐减小,从而提升分类器对训练样本的预测性能。

总之,参数优化是机器学习中一个关键的环节,它通过利用损失函数的反馈信号,不断调整模型参数,使模型能够更好地学习数据的特征和规律,提高模型的准确性和泛化能力。

优化的目标

在机器学习中,参数优化的目标主要包括以下几个方面:

一、最小化损失函数

  • 基本目标:最直接的目标是最小化损失函数( L L L)。如前面所介绍的( L = 1 N ∑ i L i ( f ( x i , W ) , y i ) ) L=\frac{1}{N} \sum_{i} L_i(f(x_i, W), y_i)) L=N1iLi(f(xi,W),yi)),通过调整模型参数( W W W),使得整个数据集上的平均损失尽可能小。这意味着模型的预测结果( f ( x i , W ) f(x_i, W) f(xi,W))与真实标签( y i y_i yi)之间的差异在总体上最小化,从而提高模型在训练数据上的拟合程度。

二、提高模型的准确性

  • 对训练数据的准确性:优化后的模型应该能够对训练样本做出更准确的预测。例如,在图像分类任务中,经过参数优化后,分类器对于训练集中的图像能够更准确地判断其所属的类别,降低分类错误率。
  • 对新数据的泛化能力:除了在训练数据上表现良好,更重要的是模型要具有良好的泛化能力,即对未见过的新数据也能做出准确的预测。这是因为模型的最终目的是应用于实际场景中处理新的输入数据,而不是仅仅记住训练数据。通过合理的参数优化,可以在一定程度上防止过拟合(模型在训练数据上表现很好,但在新数据上表现差),从而提高模型的泛化性能。

三、简化模型(正则化相关)

  • 在一些情况下,优化的目标还包括使模型更加简单。通过在损失函数中加入正则化项(如L1正则化、L2正则化),并优化包含正则化项的损失函数,可以控制模型的复杂度。这有助于避免模型过于复杂而导致的过拟合问题,同时使模型更容易解释和理解。例如,在线性分类器中,正则化可以使权重向量( w w w)的某些元素趋近于0,从而简化模型的结构。

四、满足特定的约束条件

  • 根据具体的应用场景和问题需求,可能还会有一些特定的约束条件需要满足。例如,在某些资源受限的环境中,可能要求模型的参数数量不能太多,或者模型的计算复杂度不能过高。在这种情况下,参数优化需要在满足这些约束条件的前提下,尽量提高模型的性能。

综上所述,参数优化的目标是通过调整模型参数,在最小化损失函数、提高模型准确性和泛化能力、简化模型以及满足特定约束条件等多个方面取得平衡,以获得一个性能良好、适用的机器学习模型。

梯度下降算法,随机梯度下降算法以及小批梯度下降算法

视频

基于梯度的优化算法

基于梯度的优化算法: 梯度是指一个向量,它指向函数在某一点处增加最快的方向。在机器学习和优化领域,基于梯度的方法被广泛应用于求解函数的最小值或最大值。这些方法通过计算函数在当前点处的梯度,并沿着梯度的反方向更新当前点的位置,以逐步接近函数的最小值或最大值。常见的基于梯度的方法包括梯度下降、共轭梯度等。

用一个直线来拟合这三个点,直线方程是y=wx+b,假设斜率w已知想要找到一个最合适的b。
在这里插入图片描述
判定直线方程好坏标准:三个点到直线的距离来衡量,然后将距离的写成一个最小二乘的方程,即损失函数

在这里插入图片描述

目标:找到解决b,让损失函数最小。将直线方程带入到损失函数中得到如下方程,损失函数是关于b的一个二次函数。其他系数可以计算出来。二次函数找最小的b值很容易
在这里插入图片描述
在这里插入图片描述

梯度下降算法:就是随便给出b的值经过迭代优化的方式找到最好的值
求出初始状态下的斜率的绝对值|dL/db|然后乘以一个常数 ε (epsilon),然后去更新b的值。
b= b - ε *(dL/db)。单个点的(dL/db)就是梯度值,需要计算出所有梯度然后取平均值g = 在这里插入图片描述
,ε就是学习率,人为设定,来控制梯度下降步长。

按照这个思路当点越来越多时需要计算出所有点的梯度,保存下来,内存开销大,然后取平均值,速度较慢。

改进:随机取值(类似于等比抽样)求梯度取平均,随机梯度下降算法。并非所有情况都有效。
在这里插入图片描述

在这里插入图片描述
为了让学习率 ε 自动变化,引入变量r,r时梯度大小随时间的积累量的变化率,用学习率 ε除以r,再来乘以梯度。
在这里插入图片描述

在这里插入图片描述
总结:

那么同理w的值也能使用同样的思路来找到一个合适的值
在这里插入图片描述

反向传播: 这个算法主要用于神经网络模型中的权重更新,以便最小化预测误差。在反向传播算法中,误差被反向传递回神经网络中,以便调整每个权重的值。这个算法使用链式法则来计算误差对于每个权重的影响,从而更新它们的值。
继续使用线性拟合的例子。
用最小二乘法表达损失函数,其中ygt是真实值,假设w=0.8,b=0.2。x=1.5得到y=1.4,但是此时真实值是0.8,则损失函数值为0.18。如何来调整w,b呢?

根据梯度下降算法计算损失函数L对于w和b的梯度值,即偏导数,然后再沿着梯度的反方向更新两个参数。
在这里插入图片描述为了更容易计算损失函数L对于w,b的偏导,最好先计算一个中间量就是损失函数L对y的偏导这样L对w的偏导就可以写成L对y的偏导乘以y对w的偏导(即求到的链式法则)同时也可以计算出L对b的偏导,通过这种反向从后向前的方式得到参数梯度的解析式
在这里插入图片描述
这种沿着黄色箭头从后向前计算梯度值的方法就是方向传播算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在深度学习框架中所有单元都有定义的向前传播和反向传播函数这样就可以;利用方向传播算法来更新亿万的网络参数

在这里插入图片描述
总结:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2278032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

极客说|Azure AI Agent Service 结合 AutoGen/Semantic Kernel 构建多智能体解决⽅案

作者:卢建晖 - 微软高级云技术布道师 「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」&am…

sparkRDD教程之基本命令

作者:nchu可乐百香果 指导者:nchu-YoungDragon 1.前期准备 (1)从迅雷网盘上面下载这个项目,并且把scala,maven和java环境配置好 网盘链接: 分享文件:SparkRDD.zip 链接&#xf…

基于 Electron 应用的安全测试基础 — 提取和分析 .asar 文件

视频教程在我主页简介或专栏里 目录: 提取和分析 .asar 文件 4.1. .asar 文件提取工具 4.1.1. 为什么选择 NPX? 4.2. 提取过程 4.3. 提取 .asar 文件的重要性 4.3.1 关键词 4.3.2 执行关键词搜索 4.3.2.1 使用命令行工具“grep”进行关键词搜索 4.3.2…

C# 获取PDF文档中的字体信息(字体名、大小、颜色、样式等

在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响。然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文档。获取PDF中的字体信息可以解决这个问题,让我们能够更好地处理这些文件。…

Django框架:python web开发

1.环境搭建: (a)开发环境:pycharm (b)虚拟环境(可有可无,优点:使用虚拟环境可以把使用的包自动生成一个文件,其他人需要使用时可以直接选择导入包&#xff…

2024最新版JavaScript逆向爬虫教程-------基础篇之Chrome开发者工具学习

目录 一、打开Chrome DevTools的三种方式二、Elements元素面板三、Console控制台面板四、Sources面板五、Network面板六、Application面板七、逆向调试技巧 7.1 善用搜索7.2 查看请求调用堆栈7.3 XHR 请求断点7.4 Console 插桩7.5 堆内存函数调用7.6 复制Console面板输出 工…

联通用户管理系统(一)

#联通用户管理系统(一) 1.新建项目 如果你是windows的话,界面应该是如下的: 2.创建app python manage.py startapp app01一般情况下:我们是在pycharm的终端中运行上述指令,但是pychrm中为我们提供了工具…

【网络编程】基础知识

目录 网络发展史 局域网和广域网 局域网(LAN) 广域网(Wan) 光猫 路由器 网线 设备通信的要素 IP地址 基本概念 地址划分 特殊地址(后续编程使用) IP地址转换 字节序 网络模型 网络的体系结…

生产环境中常用的设计模式

生产环境中常用的设计模式 设计模式目的使用场景示例单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点- 日志记录器- 配置管理器工厂方法模式定义一个创建对象的接口,让子类决定实例化哪个类- 各种工厂类(如视频游戏工厂模式创…

C#读写ini配置文件保存设置参数

本示例使用设备:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b5P5rkA&ftt&id22173428704 [DllImport("kernel32", CharSet CharSet.Unicode)] public static extern uint GetPrivateProfileString(string lpAppName, stri…

C# .NetCore 使用 Flurl.Http 与 HttpClient 请求处理流式响应

AI对话接口采用流式返回&#xff1a; 1、使用Flurl处理返回的数据流 using Flurl; using Flurl.Http; [HttpPost] public async Task<string> GetLiushiChatLaw() { //1、请求参数&#xff0c;根据实际情况 YourModel request new YourModel();string allStr …

ResNet (Residual Network) - 残差网络:深度卷积神经网络的突破

一、引言 在计算机视觉领域&#xff0c;图像识别一直是一个核心且具有挑战性的任务。随着深度学习的发展&#xff0c;卷积神经网络&#xff08;CNN&#xff09;在图像识别方面取得了显著的成果。然而&#xff0c;随着网络深度的增加&#xff0c;出现了梯度消失或梯度爆炸等问题…

C#--在多线程中使用任务并行库(TPL)--15

目录 一.任务并行库的概念以及定义 二.主要特性 三.代码使用示例 1.最基础的Parallel.For使用方式 2.使用 ParallelOptions 来控制并行执行 3.Parallel.ForEach的使用(用于处理集合) 4.带有本地变量的并行循环(用于需要累加或统计的场景) 5.结合Task和Parallel的高级示…

python 寻找数据拐点

import numpy as np import cv2 from scipy.signal import find_peaks# 示例数据 y_data [365.63258786, 318.34824281, 258.28434505, 228.8913738, 190.87220447, 158.28434505, 129.53035144, 111.95846645, 111.95846645, 120.26517572, 140.71246006, 161.79872204, 180.…

论文笔记-arXiv2025-A survey about Cold Start Recommendation

论文笔记-arXiv2025-Cold-Start Recommendation towards the Era of Large Language Models: A Comprehensive Survey and Roadmap 面向大语言模型&#xff08;LLMs&#xff09;时代的冷启动推荐&#xff1a;全面调研与路线图1.引言2.前言3.内容特征3.1数据不完整学习3.1.1鲁棒…

设计模式03:行为型设计模式之策略模式的使用情景及其基础Demo

1.策略模式 好处&#xff1a;动态切换算法或行为场景&#xff1a;实现同一功能用到不同的算法时和简单工厂对比&#xff1a;简单工厂是通过参数创建对象&#xff0c;调用同一个方法&#xff08;实现细节不同&#xff09;&#xff1b;策略模式是上下文切换对象&#xff0c;调用…

飞机电气系统技术分析:数字样机技术引领创新

现代飞机正向着更安全、环保和经济的方向发展&#xff0c;飞机系统的设计日益复杂&#xff0c;对各子系统的性能和可靠性也提出了更高要求。作为飞机的重要组成部分&#xff0c;电气系统&#xff08;Electrical System&#xff0c;ES&#xff09;不仅负责为各类机载设备提供稳定…

(01)FreeRTOS移植到STM32

一、以STM32的裸机工程模板 任意模板即可 二、去官网上下载FreeRTOS V9.0.0 源码 在移植之前&#xff0c;我们首先要获取到 FreeRTOS 的官方的源码包。这里我们提供两个下载 链 接 &#xff0c; 一 个 是 官 网 &#xff1a; http://www.freertos.org/ &#xff0c; 另…

【Unity-Game4Automation PRO 插件】

Game4Automation PRO 插件 是一个用于 Unity 引擎 的工业自动化仿真工具&#xff0c;它提供了对工业自动化领域的仿真和虚拟调试支持&#xff0c;特别是在与工业机器人、生产线、PLC 系统的集成方面。该插件旨在将工业自动化的实时仿真与游戏开发的高质量 3D 可视化能力结合起来…

element select 绑定一个对象{}

背景&#xff1a; select组件的使用&#xff0c;适用广泛的基础单选 v-model 的值为当前被选中的 el-option 的 value 属性值。但是我们这里想绑定一个对象&#xff0c;一个el-option对应的对象。 <el-select v-model"state.form.modelA" …