markdown笔记(没找到合适笔记软件,暂存)

机器学习基础概念

回归算法,就是让机器在多维空间中,找到一个连续的数学函数 f(x)f(x)f(x),使得输入 xxx 经过映射后,输出的 yyy 能够无限逼近真实的世界数值。

在训练阶段,模型首先通过前向传播计算预测输出,并评估与真实标签之间的损失 (Loss);随后,利用反向传播算法计算网络各层参数的梯度;最后,由优化器 (如 Adam 或 SGD) 根据梯度信息对网络权重进行参数更新,以此实现模型的不断迭代与收敛。

两阶段检测器

第一阶段:找候选区域

第二阶段:判断类别 + 修正框
先生成一批候选框,再对候选框进行分类和回归。

R-CNN

输入图像

Selective Search 生成约 2000 个候选区域 RoI

→ 把每个 RoI(Region of Interest,候选区域) 裁剪/拉伸成固定大小

→ 每个 RoI 单独送入 CNN 提特征

→ SVM 分类

→ bbox regression 修正框

Fast R-CNN:先整图卷积,再裁 RoI

输入图像

→ 整张图过 CNN,得到 feature map

→ 把 proposals(selective search来找) 映射到 feature map 上

→ 对每个 RoI 做 RoI Pooling(把不同大小的 RoI 特征变成固定大小)

→ 分类 + bbox regression

Faster R-CNN:让 CNN 自己生成 proposals

输入图像

→ backbone CNN 提取 feature map

→ RPN(Region Proposal Network,区域候选网络) 在 feature map 上生成 proposals

→ RoI Pooling / RoI Align(RoI Align 额外解决 RoI Pooling 的量化错位 问题,彻底打通了特征图与原图之间的像素级精确映射,产生了Mask R-CNN)

→ 分类 + bbox regression

→ 最终检测结果

单阶段检测器

在特征图上密集预测 bbox + confidence + class,没有单独的 proposal 阶段。

单阶段检测器不是完全没有候选框,而是没有 Faster R-CNN 那种"先 RPN 生成 proposal,再 RoI Head 二次处理"的独立阶段。它直接在 feature map 上密集预测框、类别和置信度。
直接预测最终候选框、类别、置信度

YOLO:快

整张图一次前向传播,就直接输出检测结果。

SSD:适配不同尺度目标

SSD(Single Shot MultiBox Detector,单阶段检测器)

在多个尺度的 feature map 上直接预测目标

为什么要多个尺度?

因为:

浅层 feature map 分辨率高,适合小目标

深层 feature map 语义强,适合大目标

SSD 会在不同 feature map 上放 default boxes,也就是类似 anchor 的预设框,然后直接分类和回归。

SSD = 多尺度特征图 + default boxes + 单次预测。

RetinaNet:解决正负样本极度不平衡

RetinaNet 的关键是:Focal Loss

Focal Loss 的作用:降低简单负样本的权重,提高困难样本的学习权重

后处理与评价

NMS(Non-Maximum Suppression,非极大值抑制)

保留最可信的框,删除重复框。

框可能都围着同一只狗,只是位置略有不同。

问题是:

同一个目标被重复检测了很多次。

所以需要后处理,把重复框删掉。

这就是 NMS。

  1. 按 score 从高到低排序
  2. 取分数最高的框作为保留框
  3. 删除和它 IoU 过高的其他框
  4. 对剩余框重复以上过程

评价指标

假设真实图像里有 3 只狗,模型预测了 4 个框。

其中:

2 个框正确检测到狗

1 个框框到了背景,却说是狗

1 只真实狗没有被检测出来

那么:

TP = True Positive = 检测正确的目标

FP = False Positive = 误检,把背景或错误目标当成目标

FN = False Negative = 漏检,真实目标没检测出来

相关推荐
LinXunFeng7 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
闪闪发亮的小星星12 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq12 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
阿米亚波12 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
自传.12 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
.千余12 天前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
自传.12 天前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding
stsdddd12 天前
YOLO系列目标检测数据集大全【第二十九期】
yolo·目标检测·目标跟踪
AI棒棒牛12 天前
第 03 讲《监督学习:数据、标签、Loss与训练循环》
人工智能·学习·yolo·目标检测·yolo26
秋波。未央12 天前
Java Agent 开发 · Day 1 学习笔记(含作业完整标准答案)
java·笔记·学习