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

从0开始学习计算机视觉--Day04--损失函数

在上次学习中,我们知道了线性分类的函数是f(x,W),但并没有解释要怎么得到W权重矩阵的值,以及我们要怎么用训练数据来确定它的最优权重矩阵。在之前我们知道,假设用了10种类别的图片用于训练,将其中一种图片输入模型后,会根据W输出每个类别所对应的分数,但是并不是所属的类别分数就一定高,这时我们把这个W作为输入放入一个函数中,由这个函数根据是否图片对应的类别分数最高,来判断W的好坏,也就是能知道这个W距离真正好的W差了多少,我们把这个函数称之为损失函数(cost function),而不断地输入不同的W来找到损失最小的W的过程,就叫做优化过程。

一般会采用一个通用定义L=\frac{1}{N}\sum_{}^{}{L_{i}(f(x_{i},W),y_{i})},x和y就是训练集里的像素点数据和图片的标签,f是损失函数,L是输入N个样本后的平均损失值。在这个图片分类的例子中,采用的是多分类SVM的损失函数,如下图所示:

与二分类的分类函数有点类似,后者是只要计算A的损失值比B类大得多,就认为损失值为0(即为A类),前者只是把所有错误的类别放在了一起(可以理解为B类是一个错误类别的集合),计算过程与其类似。而图中的s_y_i代表的是正确的类别的分数,s_j则代表的是剩余错误的类比的分数和,图像里的意思就是当正确类别的分数,大于错误类比的分数和再加上1,即认为大于这个数值就认为这个图片被正确分类了,1是认为设定的安全边界,可以根据实际情况调整。将图中类别的分数分别带入公式计算得到猫的损失值为2.9,汽车的损失值为0,青蛙损失值为12.9,求得平均值为5.3。

值得注意的是,在训练的过程中,可以先不着急训练完整个模型,而是先输出损失值来判断,假如有C个类别,而输出的结果不是接近于C-1(假设设置边界为1),我们就需要检查一下是否有问题,因为C-1就代表正确类别的分数与错误类别的分数很接近,每个错误类别的损失值都接近于1。

学习来自于斯坦福教程:Stanford University CS231n: Deep Learning for Computer Vision

http://www.lryc.cn/news/576175.html

相关文章:

  • 微信小程序:实现树形结构组件
  • 【MySQL进阶】服务器配置与管理——系统变量,选项,状态变量
  • 将ONNX模型转换为(OPENMV可用的格式)TensorFlow Lite格式
  • Flotherm许可状态检查
  • Godot4.3类星露谷游戏开发之【简易库存】(UI部分)
  • HTTPS hostname wrong: should be <xxx>错误解决
  • 【大模型水印论文阅读2】前缀文本编码、均匀性约束
  • Stable Diffusion 3终极提示词库:2000个工业设计场景生成公式(2025企业级实战指南)
  • 强化学习理论基础:从Q-learning到PPO的算法演进(2)
  • openGL学习(基本窗口)
  • [ linux-系统 ] 磁盘与文件系统
  • 【论文阅读 | CVPR 2025 |MambaVision:一种混合 Mamba-Transformer 视觉骨干网络】
  • 2025.6.27总结
  • 机器人 URDF学习笔记
  • Windows 10 ARM64平台CAN程序开发
  • 飞凌A40i使用笔记
  • React中的ErrorBoundary
  • 【Yonghong 企业日常问题08 】永洪BI的Apache Tomcat版本升级指南
  • 【CV数据集介绍-40】Cityscapes 数据集:助力自动驾驶的语义分割神器
  • 攻防世界-MISC-Cephalopod
  • gemini-cli 踩坑实录
  • ARM64 linux系统的一般执行过程
  • C++ 函数特性详解:默认参数、重载、引用与指针区别
  • Flutter 网络请求指南, 从 iOS 到 Flutter 的 Dio + Retrofit 组合
  • 《聊一聊ZXDoc》之汽车服务导向SOME/IP
  • 【k近邻】 K-Nearest Neighbors算法原理及流程
  • 在shell中直接调用使用R
  • 远眺科技工业园区数字孪生方案,如何实现智能管理升级?
  • 告别堡垒机和VPN!Teleport:下一代基础设施统一访问入口
  • CTP IC失效现象和失效原理分析