news 2026/2/9 21:44:43

【计算机视觉(10)】图像分类基础篇:从最近邻到线性分类器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【计算机视觉(10)】图像分类基础篇:从最近邻到线性分类器

文章目录

    • 📚 学习路线图
    • 本文内容一览(快速理解)
    • 一、什么是图像分类(Image Classification):计算机视觉的核心任务
      • 1.1 图像分类的定义(What is Image Classification):给图像分配类别标签
      • 1.2 语义鸿沟(Semantic Gap):像素值与语义理解之间的差距
      • 1.3 图像分类的挑战(Challenges in Image Classification):六个主要挑战
    • 二、最近邻分类器(Nearest Neighbor Classifier):基于相似度的简单分类方法
      • 2.1 最近邻分类器的原理(Nearest Neighbor Basics):记住训练数据,找到最相似的图像
      • 2.2 距离度量(Distance Metric):如何比较两张图像的相似性
      • 2.3 K-最近邻分类器(K-Nearest Neighbors):使用K个最近邻的投票机制
      • 2.4 超参数设置(Hyperparameter Setting):如何选择K和距离度量
      • 2.5 最近邻分类器的局限性(Limitations of Nearest Neighbor):为什么不适合图像分类
    • 三、线性分类器(Linear Classifier):使用线性函数进行图像分类
      • 3.1 参数化方法(Parametric Approach):使用参数进行图像分类
      • 3.2 线性分类器的计算(Linear Classifier Computation):从图像到类别分数
      • 3.3 线性分类器的三种理解方式(Three Viewpoints of Linear Classifier):代数、视觉、几何
      • 3.4 线性分类器的局限性(Limitations of Linear Classifier):不能处理复杂模式
    • 📝 本章总结
    • 📚 延伸阅读
      • 推荐资源

📌适合对象:计算机视觉初学者、机器学习入门者
⏱️预计阅读时间:40-50分钟
🎯学习目标:理解图像分类的基本概念和挑战,掌握最近邻分类器和线性分类器的原理


📚 学习路线图

图像分类问题
理解挑战
语义鸿沟
最近邻分类器
KNN
线性分类器
Linear Classifier
损失函数
Loss Function
优化
Optimization
卷积神经网络
ConvNets

本文内容一览(快速理解)

  1. 图像分类(Image Classification):给图像分配一个类别标签的核心任务
  2. 语义鸿沟(Semantic Gap):计算机看到的像素值与人类理解的语义之间的差距
  3. 图像分类的挑战:视角变化、背景杂乱、光照、形变、遮挡、类内变化
  4. 最近邻分类器(Nearest Neighbor):基于相似度的简单分类方法
  5. K-最近邻分类器(K-Nearest Neighbors):使用K个最近邻的投票机制
  6. 线性分类器(Linear Classifier):使用线性函数进行图像分类

一、什么是图像分类(Image Classification):计算机视觉的核心任务

这一章要建立的基础:理解图像分类的基本概念和挑战

核心问题:如何让计算机识别图像中的物体类别?


[!NOTE]
📝 关键点总结:图像分类是给图像分配一个类别标签的任务。计算机看到的只是像素值,而我们需要的是语义理解,这之间存在语义鸿沟。图像分类面临视角变化、背景杂乱、光照、形变、遮挡、类内变化等挑战。

1.1 图像分类的定义(What is Image Classification):给图像分配类别标签

概念的本质

图像分类是计算机视觉的核心任务之一。给定一张图像和一个预定义的类别集合(如{狗, 猫, 卡车, 飞机, …}),我们需要给图像分配一个类别标签。

图解说明

输入图像
图像分类器
Classifier
类别标签
cat/dog/...
类别集合
{dog, cat, ...}

💡说明

  • 输入:一张图像(如800 × 600 × 3 800 \times 600 \times 3800×600×3的RGB图像)
  • 输出:一个类别标签(如"cat")
  • 类别集合:预定义的离散标签集合

类比理解

想象你在看一张照片,照片中有一只猫。图像分类就像你看到照片后说"这是一只猫"。但计算机看到的只是一堆数字(像素值),它需要学会从这些数字中识别出"猫"这个类别。

实际例子

图像分类的应用: 1. 图像搜索引擎:根据类别搜索图像 2. 自动驾驶:识别道路上的车辆、行人、标志 3. 医学影像:识别病变、器官 4. 社交媒体:自动标记照片中的物体 图像分类的特点: - 输入:图像(像素值矩阵) - 输出:类别标签(离散值) - 挑战:需要从像素值中提取语义信息

1.2 语义鸿沟(Semantic Gap):像素值与语义理解之间的差距

概念的本质

计算机看到的图像只是一堆数字(像素值,如0-255之间的整数),而我们需要的是语义理解(如"这是一只猫")。这之间的差距就是语义鸿沟。

图解说明

图像
800×600×3
像素值矩阵
计算机看到
数字矩阵
人类理解
语义信息
语义鸿沟
Semantic Gap
需要桥接
特征提取

💡说明

  • 计算机视角:图像是800 × 600 × 3 800 \times 600 \times 3800×600×3的数字矩阵(每个像素是0 00-255 255255的整数)
  • 人类视角:图像包含语义信息(如"猫"、“狗”)
  • 语义鸿沟:两者之间的差距,需要通过特征提取和学习来桥接

类比理解

想象你在看一本用你不懂的语言写的书。你看到的只是一堆符号(就像计算机看到的像素值),但你需要理解书的内容(就像我们需要理解图像的语义)。语义鸿沟就像这两种理解之间的差距,需要通过"翻译"(特征提取和学习)来桥接。

实际例子

语义鸿沟的例子: - 计算机看到:[[56, 231, 24], [2, 45, 123], ...](像素值) - 人类理解:这是一只猫(语义信息) - 差距:需要从像素值中提取特征,学习语义 为什么不能直接硬编码? - 无法用简单的规则描述"猫"的特征 - 猫有各种形状、颜色、姿态 - 需要从数据中学习模式 解决方案: - 使用机器学习方法 - 从大量标注数据中学习 - 提取特征,学习分类规则

1.3 图像分类的挑战(Challenges in Image Classification):六个主要挑战

概念的本质

图像分类面临许多挑战,包括视角变化、背景杂乱、光照变化、形变、遮挡、类内变化等。这些挑战使得图像分类成为一个困难的问题。

图解说明

图像分类挑战
视角变化
Viewpoint
背景杂乱
Background
光照变化
Illumination
形变
Deformation
遮挡
Occlusion
类内变化
Intraclass

💡说明

  • 视角变化:相机移动时,所有像素都改变
  • 背景杂乱:物体可能出现在各种背景中
  • 光照变化:同一物体在不同光照下看起来不同
  • 形变:物体可能有各种形状和姿态
  • 遮挡:物体可能被部分遮挡
  • 类内变化:同一类别的物体可能有很大差异

类比理解

想象你在教一个孩子识别"猫"。但猫可能:

  • 从不同角度拍摄(视角变化)
  • 出现在不同背景中(背景杂乱)
  • 在阳光下或阴影中(光照变化)
  • 坐着、躺着、站着(形变)
  • 被其他物体部分遮挡(遮挡)
  • 有各种颜色、大小、品种(类内变化)

这些挑战使得识别"猫"变得困难,需要学习对这些变化鲁棒的特征。

实际例子

视角变化的挑战: - 同一物体从不同角度拍摄,像素值完全不同 - 需要学习对视角变化不变的特征 - 例如:旋转、缩放、平移 背景杂乱的挑战: - 物体可能出现在各种背景中 - 背景可能包含干扰信息 - 需要专注于物体本身,忽略背景 光照变化的挑战: - 同一物体在不同光照下看起来不同 - 需要学习对光照变化鲁棒的特征 - 例如:亮度、对比度、阴影 形变的挑战: - 物体可能有各种形状和姿态 - 需要学习对形变鲁棒的特征 - 例如:非刚性形变 遮挡的挑战: - 物体可能被部分遮挡 - 只能看到部分特征 - 需要从部分信息推断整体 类内变化的挑战: - 同一类别的物体可能有很大差异 - 需要学习类别的共同特征 - 例如:不同品种的猫

二、最近邻分类器(Nearest Neighbor Classifier):基于相似度的简单分类方法

这一章要建立的基础:理解基于相似度的分类方法

核心问题:如何根据训练数据对新图像进行分类?


[!NOTE]
📝 关键点总结:最近邻分类器是一种简单的分类方法:记住所有训练数据和标签,对于新图像,找到最相似的训练图像,预测其标签。虽然简单,但预测速度慢(O ( N ) O(N)O(N)),且像素距离不能很好地表示图像相似性。

2.1 最近邻分类器的原理(Nearest Neighbor Basics):记住训练数据,找到最相似的图像

概念的本质

最近邻分类器是一种非常简单的分类方法:

  1. 训练阶段:记住所有训练图像和对应的标签
  2. 预测阶段:对于新图像,找到训练集中最相似的图像,预测其标签

图解说明

训练阶段
Training
记住所有
训练图像和标签
预测阶段
Prediction
新图像
计算与所有
训练图像的距离
找到最近邻
Nearest Neighbor
预测标签
Label

💡说明

  • 训练O ( 1 ) O(1)O(1)时间复杂度,只需要存储数据
  • 预测O ( N ) O(N)O(N)时间复杂度,需要计算与所有训练图像的距离
  • 问题:预测速度慢,我们希望预测快、训练慢可以接受

类比理解

想象你在一个图书馆中找书。最近邻分类器就像:

  • 训练阶段:记住图书馆中所有书的位置和类别
  • 预测阶段:拿到一本新书,在图书馆中找到最相似的书,然后说"这本书和那本书一样,所以是同一类"

这种方法简单,但每次预测都需要遍历整个图书馆,速度很慢。

实际例子

最近邻分类器的例子(CIFAR-10数据集): - 10个类别:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车 - 50,000张训练图像 - 10,000张测试图像 训练过程: - 存储所有50,000张训练图像和标签 - 时间复杂度:$O(1)$(只是存储) 预测过程: - 对于每张测试图像,计算与所有50,000张训练图像的距离 - 找到距离最小的训练图像 - 预测其标签 - 时间复杂度:$O(N)$,$N=50,000$ 问题: - 预测速度慢:每张测试图像需要比较50,000次 - 我们希望预测快,训练慢可以接受

2.2 距离度量(Distance Metric):如何比较两张图像的相似性

概念的本质

距离度量用于比较两张图像的相似性。常用的距离度量包括L1距离(曼哈顿距离)和L2距离(欧氏距离)。

图解说明

图像1
像素值
距离度量
Distance
图像2
像素值
L1距离
曼哈顿距离
L2距离
欧氏距离
距离值
越小越相似

💡说明

  • L1距离:对应像素差的绝对值之和
  • L2距离:对应像素差的平方和的平方根
  • 距离越小:图像越相似

类比理解

想象你在比较两幅画。距离度量就像测量两幅画的差异:

  • L1距离:逐像素比较,累加所有差异(就像数有多少个像素不同)
  • L2距离:考虑差异的大小,大差异的权重更大(就像考虑差异的严重程度)

实际例子

距离度量的计算: 假设两张图像各有4个像素: 图像1: [56, 231, 24, 2] 图像2: [60, 235, 20, 5] L1距离(曼哈顿距离): $|56-60| + |231-235| + |24-20| + |2-5|$ $= 4 + 4 + 4 + 3 = 15$ L2距离(欧氏距离): $\sqrt{(56-60)^2 + (231-235)^2 + (24-20)^2 + (2-5)^2}$ $= \sqrt{16 + 16 + 16 + 9} = \sqrt{57} \approx 7.55$ 距离度量的选择: - L1距离:对异常值更鲁棒 - L2距离:更常用,对大差异更敏感 - 都是超参数,需要根据问题选择

2.3 K-最近邻分类器(K-Nearest Neighbors):使用K个最近邻的投票机制

概念的本质

K-最近邻(KNN)分类器是最近邻分类器的扩展。不是只使用最近的一个邻居,而是使用K个最近的邻居,通过投票决定类别标签。

图解说明

新图像
找到K个
最近邻
K=1
最近邻
K=3
3个最近邻
K=5
5个最近邻
投票
Majority Vote
预测标签
Label

💡说明

  • K=1:最近邻分类器,直接使用最近邻的标签
  • K>1:使用K个最近邻,通过多数投票决定标签
  • 优势:对噪声更鲁棒,减少过拟合

类比理解

想象你在问路。KNN就像:

  • K=1:只问一个人,完全相信他的答案(可能不准确)
  • K=3:问三个人,选择多数人的答案(更可靠)
  • K=5:问五个人,选择多数人的答案(更可靠,但可能忽略少数人的正确意见)

K值的选择是一个权衡:K太小容易受噪声影响,K太大可能忽略局部特征。

实际例子

KNN分类器的例子: 假设K=3,新图像有3个最近邻: - 最近邻1:类别"猫" - 最近邻2:类别"猫" - 最近邻3:类别"狗" 投票结果: - "猫":2票 - "狗":1票 预测:类别"猫"(多数投票) K值的选择: - K=1:最近邻分类器,可能对噪声敏感 - K=3或5:通常效果较好,平衡了鲁棒性和局部性 - K太大:可能忽略局部特征,边界不清晰 K是超参数: - 需要根据验证集选择 - 不同问题可能需要不同的K值

2.4 超参数设置(Hyperparameter Setting):如何选择K和距离度量

概念的本质

K值和距离度量(L1或L2)都是超参数,需要根据验证集来选择。不能使用测试集来选择超参数,否则会过拟合测试集。

图解说明

数据集
训练集
Train
验证集
Validation
测试集
Test
训练模型
在验证集上
选择超参数
K值、距离度量
在测试集上
最终评估

💡说明

  • 训练集:用于训练模型
  • 验证集:用于选择超参数(K值、距离度量)
  • 测试集:只在最后评估一次,不能用于选择超参数
  • 交叉验证:对于小数据集,可以使用交叉验证

类比理解

想象你在准备考试:

  • 训练集:你的学习材料(用来学习)
  • 验证集:模拟考试(用来调整学习方法,如学习时间、复习方式)
  • 测试集:真正的考试(只在最后考一次,不能用来调整方法)

如果你用测试集来调整方法,就像提前知道考试题目,这样得到的成绩不能反映真实水平。

实际例子

超参数设置的错误方法: ❌ 方法1:在训练集上选择超参数 - 问题:K=1在训练集上总是完美(记住所有数据) - 结果:过拟合,泛化能力差 ❌ 方法2:在测试集上选择超参数 - 问题:测试集被"污染",不能反映真实性能 - 结果:过拟合测试集,实际应用效果差 ✅ 正确方法:使用验证集 - 训练集:训练模型 - 验证集:选择超参数(K值、距离度量) - 测试集:只在最后评估一次 交叉验证(小数据集): - 将数据分成K折(如5折) - 每次用K-1折训练,1折验证 - 重复K次,平均结果 - 选择平均性能最好的超参数

2.5 最近邻分类器的局限性(Limitations of Nearest Neighbor):为什么不适合图像分类

概念的本质

最近邻分类器在图像分类中很少使用,因为:

  1. 预测速度慢O ( N ) O(N)O(N)时间复杂度,需要比较所有训练图像
  2. 像素距离不信息:像素级别的距离不能很好地表示图像的语义相似性

图解说明

最近邻分类器
问题1
预测慢 O(N)
问题2
像素距离不信息
不适合
实际应用

💡说明

  • 预测慢:每张测试图像需要与所有训练图像比较
  • 像素距离问题:两张图像可能有相同的L2距离,但语义完全不同(如原始图像、加框图像、平移图像)

类比理解

想象你在用最近邻分类器识别猫:

  • 问题1:每次识别都需要与所有训练图像比较,速度很慢
  • 问题2:两张图像可能在像素级别相似(如都是猫),但像素值完全不同(视角、光照不同)。相反,两张图像可能在像素级别相似(如平移后的图像),但语义相同。

像素距离不能很好地捕捉语义相似性。

实际例子

像素距离的问题: 原始图像、加框图像、平移图像可能有相同的L2距离,但: - 原始图像和加框图像:语义相同(都是猫),但像素值不同 - 原始图像和平移图像:语义相同(都是猫),但像素值不同 这说明: - 像素级别的距离不能很好地表示语义相似性 - 需要更好的特征表示(如SIFT、CNN特征) 最近邻分类器的总结: - 优点:简单、训练快 - 缺点:预测慢、像素距离不信息 - 结论:不适合实际应用,需要更好的方法(如线性分类器、CNN)

三、线性分类器(Linear Classifier):使用线性函数进行图像分类

这一章要建立的基础:理解参数化方法和线性分类器的原理

核心问题:如何用参数化的方法进行图像分类?


[!NOTE]
📝 关键点总结:线性分类器使用参数化的方法,通过线性函数f ( x , W ) = W x + b f(x,W) = Wx + bf(x,W)=Wx+b将图像映射到类别分数。参数W WWb bb需要从数据中学习。线性分类器有三种理解方式:代数视角、视觉视角、几何视角。

3.1 参数化方法(Parametric Approach):使用参数进行图像分类

概念的本质

与最近邻分类器(非参数化,需要存储所有训练数据)不同,参数化方法使用参数(权重W WW和偏置b bb)进行图像分类。参数需要从训练数据中学习,但预测时只需要参数,不需要训练数据。

图解说明

图像
32×32×3
展平
3072×1
线性函数
f(x,W) = Wx + b
类别分数
10×1
参数W
10×3072
参数b
10×1

💡说明

  • 输入:图像(32 × 32 × 3 = 3072 32 \times 32 \times 3 = 307232×32×3=3072个像素)
  • 参数W WW10 × 3072 10 \times 307210×3072权重矩阵)和b bb10 × 1 10 \times 110×1偏置向量)
  • 输出10 1010个类别的分数
  • 优势:预测快(只需要矩阵乘法),不需要存储训练数据

类比理解

想象你在学习识别猫。参数化方法就像:

  • 最近邻方法:记住所有见过的猫的照片,每次识别时比较(需要存储所有照片)
  • 参数化方法:学习一套"规则"(参数),用这套规则识别(只需要规则,不需要照片)

参数化方法更高效,但需要学习参数。

实际例子

线性分类器的例子(CIFAR-10): 输入图像:$32 \times 32 \times 3 = 3072$个像素 类别数:$10$个类别 参数: - $W$:$10 \times 3072$权重矩阵 - $b$:$10 \times 1$偏置向量 计算: $f(x,W) = Wx + b$ - $x$:$3072 \times 1$(展平的图像) - $Wx$:$10 \times 3072 \times 3072 \times 1 = 10 \times 1$(类别分数) - $+b$:$10 \times 1 + 10 \times 1 = 10 \times 1$(最终分数) 输出:$10$个类别的分数,选择分数最高的类别 优势: - 预测快:只需要矩阵乘法 - 不需要存储训练数据 - 参数数量固定($10 \times 3072 + 10 = 30,730$个参数)

3.2 线性分类器的计算(Linear Classifier Computation):从图像到类别分数

概念的本质

线性分类器通过矩阵乘法将图像映射到类别分数。对于每个类别,计算一个分数,分数最高的类别就是预测结果。

图解说明

图像
4个像素
展平
[56, 231, 24, 2]
权重矩阵W
3×4
矩阵乘法
Wx
偏置b
[1.1, 3.2, -1.2]
类别分数
[cat, dog, ship]

💡说明

  • 展平图像:将图像展平成向量
  • 矩阵乘法W x WxWx计算每个类别的加权和
  • 加偏置+ b +b+b调整每个类别的分数
  • 选择最大值:分数最高的类别就是预测结果

类比理解

想象你在给一幅画打分。线性分类器就像:

  • 权重W:每个像素对每个类别的重要性(如像素1对"猫"的重要性是0.2)
  • 矩阵乘法:计算每个类别的总分(加权和)
  • 偏置b:每个类别的基础分数(如"猫"的基础分数是1.1)
  • 最终分数:选择分数最高的类别

实际例子

线性分类器的计算示例: 假设图像有4个像素,3个类别(猫、狗、船) 输入图像:[56, 231, 24, 2](展平) 权重矩阵$W$($3 \times 4$): 像素1 像素2 像素3 像素4 猫 $[0.2, -0.5, 0.1, 2.0]$ 狗 $[1.5, 1.3, 2.1, 0.0]$ 船 $[0.0, 0.25, 0.2, -0.3]$ 偏置$b$:$[1.1, 3.2, -1.2]$ 计算: $$Wx = \begin{bmatrix} 0.2 \times 56 + (-0.5) \times 231 + 0.1 \times 24 + 2.0 \times 2 \\ 1.5 \times 56 + 1.3 \times 231 + 2.1 \times 24 + 0.0 \times 2 \\ 0.0 \times 56 + 0.25 \times 231 + 0.2 \times 24 + (-0.3) \times 2 \end{bmatrix} = \begin{bmatrix} -96.8 \\ 437.9 \\ 61.95 \end{bmatrix}$$ 加偏置: $$\text{分数} = \begin{bmatrix} -96.8 \\ 437.9 \\ 61.95 \end{bmatrix} + \begin{bmatrix} 1.1 \\ 3.2 \\ -1.2 \end{bmatrix} = \begin{bmatrix} -95.7 \\ 441.1 \\ 60.75 \end{bmatrix}$$ 预测:类别"狗"(分数最高:441.1)

3.3 线性分类器的三种理解方式(Three Viewpoints of Linear Classifier):代数、视觉、几何

概念的本质

线性分类器可以从三个角度理解:

  1. 代数视角f ( x , W ) = W x + b f(x,W) = Wx + bf(x,W)=Wx+b,矩阵乘法
  2. 视觉视角:每个类别有一个模板(W WW的每一行),通过模板匹配
  3. 几何视角:每个类别有一个超平面,将空间分割成不同区域

图解说明

线性分类器
代数视角
f(x,W) = Wx + b
视觉视角
模板匹配
几何视角
超平面分割
矩阵乘法
计算分数
每个类别
一个模板
高维空间
超平面

💡说明

  • 代数视角:数学公式,矩阵运算
  • 视觉视角:将W WW的每一行重塑成图像,可以看到每个类别的"模板"
  • 几何视角:在高维空间中,每个类别用一个超平面分割空间

类比理解

想象你在识别手写数字。线性分类器的三种理解方式就像:

  • 代数视角:用数学公式计算分数(精确但抽象)
  • 视觉视角:每个数字有一个"模板",通过模板匹配(直观)
  • 几何视角:在特征空间中,每个数字占据一个区域(空间理解)

实际例子

代数视角: $f(x,W) = Wx + b$ - 直接计算,数学公式 - 适合实现和理解计算过程 视觉视角: 将$W$的每一行重塑成$32 \times 32 \times 3$的图像 - 可以看到每个类别的"模板" - 模板显示了该类别关注的像素模式 - 例如:"猫"的模板可能显示眼睛、耳朵等特征 几何视角: 在高维空间($3072$维)中 - 每个类别用一个超平面分割空间 - 超平面的法向量是$W$的对应行 - 图像落在哪个区域,就属于哪个类别 - 例如:在2D空间中,一条直线将平面分成两部分 三种视角的互补: - 代数视角:理解计算 - 视觉视角:理解模板 - 几何视角:理解空间分割

3.4 线性分类器的局限性(Limitations of Linear Classifier):不能处理复杂模式

概念的本质

线性分类器只能学习线性决策边界,不能处理复杂的非线性模式。对于某些问题(如XOR问题、多模态分布),线性分类器无法正确分类。

图解说明

线性分类器
只能学习
线性边界
问题1
XOR问题
问题2
多模态分布
问题3
环形分布
需要
非线性模型

💡说明

  • 线性边界:线性分类器只能学习超平面(直线、平面等)
  • 复杂模式:对于非线性模式,线性分类器无法正确分类
  • 解决方案:需要使用非线性模型(如神经网络、卷积神经网络)

类比理解

想象你在用一条直线分割空间。线性分类器就像:

  • 简单问题:可以用一条直线分开(如"大于5"和"小于5")
  • 复杂问题:需要曲线才能分开(如"在第一象限和第三象限"或"在第二象限和第四象限")

线性分类器只能画直线,不能画曲线。

实际例子

线性分类器无法处理的问题: 1. XOR问题: 类别1:第一象限和第三象限 类别2:第二象限和第四象限 - 无法用一条直线分开 - 需要非线性边界 2. 多模态分布: 类别1:两个分离的区域 类别2:其他区域 - 线性分类器只能用一个超平面 - 无法处理多个分离的区域 3. 环形分布: 类别1:$L_2$范数在$1$到$2$之间 类别2:其他 - 需要环形边界 - 线性分类器无法处理 解决方案: - 使用非线性模型 - 例如:神经网络、卷积神经网络 - 可以学习复杂的非线性决策边界

📝 本章总结

核心要点回顾

  1. 图像分类

    • 给图像分配类别标签的核心任务
    • 面临语义鸿沟和多种挑战
  2. 最近邻分类器

    • 简单但预测慢(O ( N ) O(N)O(N)
    • 像素距离不能很好地表示语义相似性
  3. K-最近邻分类器

    • 使用K个最近邻投票
    • 需要选择合适的K值和距离度量
  4. 线性分类器

    • 参数化方法,预测快
    • 三种理解方式:代数、视觉、几何
    • 只能学习线性边界,不能处理复杂模式

知识地图

图像分类
挑战
语义鸿沟
最近邻分类器
KNN
线性分类器
Linear
视角变化
背景杂乱
光照变化
距离度量
L1/L2
K值选择
超参数设置
参数化方法
W, b
三种视角
代数/视觉/几何
局限性
线性边界

关键决策点

  • 选择分类器:最近邻简单但慢,线性分类器快但能力有限
  • 距离度量:L1对异常值鲁棒,L2更常用
  • K值选择:使用验证集选择,平衡鲁棒性和局部性
  • 超参数设置:使用验证集,不能使用测试集
  • 线性分类器的局限性:需要非线性模型处理复杂模式

📚 延伸阅读

推荐资源

  1. CS231n课程:Stanford CS231n: Convolutional Neural Networks for Visual Recognition

    • 详细的图像分类和深度学习课程
  2. 经典数据集

    • CIFAR-10:10类图像分类数据集
    • ImageNet:大规模图像分类数据集
  3. 下一步学习

    • 损失函数:如何衡量分类器的好坏
    • 优化:如何学习参数W和b
    • 卷积神经网络:更强大的图像分类模型
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/9 8:01:00

串的练习--------统计汉字

题目&#xff1a;统计汉字-2030 代码&#xff1a; /*汉字统计 HDOJ https://acm.hdu.edu.cn/showproblem.php?pid2030*/ #include<iostream> using namespace std; int main() {char s[100000] { 0 };int n;cin >> n;getchar();//消除换行符while (n--) {fgets…

作者头像 李华
网站建设 2026/2/4 22:31:48

LobeChat快手内容推送策略

LobeChat在快手内容推送中的实践与演进 在短视频平台竞争日益激烈的今天&#xff0c;用户注意力成为最稀缺的资源。如何让用户不仅“看到内容”&#xff0c;还能“主动发现内容”&#xff1f;这是像快手这样的平台面临的核心命题。传统推荐系统依赖隐式行为数据&#xff08;如完…

作者头像 李华
网站建设 2026/2/5 7:16:49

重构智慧书-第16条:学当广博,志当赤诚

一、原文呈现学须富&#xff0c;志须诚学富志诚定会使你马到成功。若人的悟性与心术不正结了缘&#xff0c;则不但不是良缘&#xff0c;简直如野蛮的强奸。恶意通常会毒害完美&#xff0c;如兼有知识助虐&#xff0c;则危害更烈。无论什么天才,若居心不良&#xff0c;必遭恶报。…

作者头像 李华
网站建设 2026/2/5 1:24:40

Day31:SPI 协议基础

SPI 特点&#xff1a; 全双工、高速串行通信&#xff0c;主从架构 4 线&#xff1a;SCK (时钟)、MOSI (主发从收)、MISO (主收从发)、SS (片选) 片选 (SS)&#xff1a;低电平有效&#xff0c;每个从设备独立的片选线 通信速率&#xff1a;可达 STM32 主频的 1/2 (如 36MHz) SPI…

作者头像 李华
网站建设 2026/2/7 14:43:25

LobeChat能否集成潮汐信息?沿海地区活动安排建议

LobeChat能否集成潮汐信息&#xff1f;沿海地区活动安排建议 在福建连江的清晨&#xff0c;渔民老陈站在码头边皱眉翻着手机——他需要知道今天退潮的时间是否适合下滩挖蛤蜊&#xff0c;还得看风浪大不大、天气好不好。可他得先打开一个App查潮汐&#xff0c;再切到另一个看天…

作者头像 李华