大型网站制作设计,网站网址怎么写,肥西县建设发展局网站,自己做创意平面设计公司文章目录#x1f4da; 学习路线图本文内容一览#xff08;快速理解#xff09;一、什么是图像分类#xff08;Image Classification#xff09;#xff1a;计算机视觉的核心任务1.1 图像分类的定义#xff08;What is Image Classification#xff09;#xff1a;给图…文章目录 学习路线图本文内容一览快速理解一、什么是图像分类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本文内容一览快速理解图像分类Image Classification给图像分配一个类别标签的核心任务语义鸿沟Semantic Gap计算机看到的像素值与人类理解的语义之间的差距图像分类的挑战视角变化、背景杂乱、光照、形变、遮挡、类内变化最近邻分类器Nearest Neighbor基于相似度的简单分类方法K-最近邻分类器K-Nearest Neighbors使用K个最近邻的投票机制线性分类器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记住训练数据找到最相似的图像概念的本质最近邻分类器是一种非常简单的分类方法训练阶段记住所有训练图像和对应的标签预测阶段对于新图像找到训练集中最相似的图像预测其标签图解说明训练阶段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)$$N50,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个最近邻K1最近邻K33个最近邻K55个最近邻投票Majority Vote预测标签Label说明K1最近邻分类器直接使用最近邻的标签K1使用K个最近邻通过多数投票决定标签优势对噪声更鲁棒减少过拟合类比理解想象你在问路。KNN就像K1只问一个人完全相信他的答案可能不准确K3问三个人选择多数人的答案更可靠K5问五个人选择多数人的答案更可靠但可能忽略少数人的正确意见K值的选择是一个权衡K太小容易受噪声影响K太大可能忽略局部特征。实际例子KNN分类器的例子 假设K3新图像有3个最近邻 - 最近邻1类别猫 - 最近邻2类别猫 - 最近邻3类别狗 投票结果 - 猫2票 - 狗1票 预测类别猫多数投票 K值的选择 - K1最近邻分类器可能对噪声敏感 - K3或5通常效果较好平衡了鲁棒性和局部性 - K太大可能忽略局部特征边界不清晰 K是超参数 - 需要根据验证集选择 - 不同问题可能需要不同的K值2.4 超参数设置Hyperparameter Setting如何选择K和距离度量概念的本质K值和距离度量L1或L2都是超参数需要根据验证集来选择。不能使用测试集来选择超参数否则会过拟合测试集。图解说明数据集训练集Train验证集Validation测试集Test训练模型在验证集上选择超参数K值、距离度量在测试集上最终评估说明训练集用于训练模型验证集用于选择超参数K值、距离度量测试集只在最后评估一次不能用于选择超参数交叉验证对于小数据集可以使用交叉验证类比理解想象你在准备考试训练集你的学习材料用来学习验证集模拟考试用来调整学习方法如学习时间、复习方式测试集真正的考试只在最后考一次不能用来调整方法如果你用测试集来调整方法就像提前知道考试题目这样得到的成绩不能反映真实水平。实际例子超参数设置的错误方法 ❌ 方法1在训练集上选择超参数 - 问题K1在训练集上总是完美记住所有数据 - 结果过拟合泛化能力差 ❌ 方法2在测试集上选择超参数 - 问题测试集被污染不能反映真实性能 - 结果过拟合测试集实际应用效果差 ✅ 正确方法使用验证集 - 训练集训练模型 - 验证集选择超参数K值、距离度量 - 测试集只在最后评估一次 交叉验证小数据集 - 将数据分成K折如5折 - 每次用K-1折训练1折验证 - 重复K次平均结果 - 选择平均性能最好的超参数2.5 最近邻分类器的局限性Limitations of Nearest Neighbor为什么不适合图像分类概念的本质最近邻分类器在图像分类中很少使用因为预测速度慢O ( N ) O(N)O(N)时间复杂度需要比较所有训练图像像素距离不信息像素级别的距离不能很好地表示图像的语义相似性图解说明最近邻分类器问题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)Wxb将图像映射到类别分数。参数W WW和b bb需要从数据中学习。线性分类器有三种理解方式代数视角、视觉视角、几何视角。3.1 参数化方法Parametric Approach使用参数进行图像分类概念的本质与最近邻分类器非参数化需要存储所有训练数据不同参数化方法使用参数权重W WW和偏置b bb进行图像分类。参数需要从训练数据中学习但预测时只需要参数不需要训练数据。图解说明图像32×32×3展平3072×1线性函数f(x,W) Wx b类别分数10×1参数W10×3072参数b10×1说明输入图像32 × 32 × 3 3072 32 \times 32 \times 3 307232×32×33072个像素参数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]权重矩阵W3×4矩阵乘法Wx偏置b[1.1, 3.2, -1.2]类别分数[cat, dog, ship]说明展平图像将图像展平成向量矩阵乘法W x WxWx计算每个类别的加权和加偏置 b bb调整每个类别的分数选择最大值分数最高的类别就是预测结果类比理解想象你在给一幅画打分。线性分类器就像权重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.13.3 线性分类器的三种理解方式Three Viewpoints of Linear Classifier代数、视觉、几何概念的本质线性分类器可以从三个角度理解代数视角f ( x , W ) W x b f(x,W) Wx bf(x,W)Wxb矩阵乘法视觉视角每个类别有一个模板W WW的每一行通过模板匹配几何视角每个类别有一个超平面将空间分割成不同区域图解说明线性分类器代数视角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问题、多模态分布线性分类器无法正确分类。图解说明线性分类器只能学习线性边界问题1XOR问题问题2多模态分布问题3环形分布需要非线性模型说明线性边界线性分类器只能学习超平面直线、平面等复杂模式对于非线性模式线性分类器无法正确分类解决方案需要使用非线性模型如神经网络、卷积神经网络类比理解想象你在用一条直线分割空间。线性分类器就像简单问题可以用一条直线分开如大于5和小于5复杂问题需要曲线才能分开如在第一象限和第三象限或在第二象限和第四象限线性分类器只能画直线不能画曲线。实际例子线性分类器无法处理的问题 1. XOR问题 类别1第一象限和第三象限 类别2第二象限和第四象限 - 无法用一条直线分开 - 需要非线性边界 2. 多模态分布 类别1两个分离的区域 类别2其他区域 - 线性分类器只能用一个超平面 - 无法处理多个分离的区域 3. 环形分布 类别1$L_2$范数在$1$到$2$之间 类别2其他 - 需要环形边界 - 线性分类器无法处理 解决方案 - 使用非线性模型 - 例如神经网络、卷积神经网络 - 可以学习复杂的非线性决策边界 本章总结核心要点回顾图像分类给图像分配类别标签的核心任务面临语义鸿沟和多种挑战最近邻分类器简单但预测慢O ( N ) O(N)O(N)像素距离不能很好地表示语义相似性K-最近邻分类器使用K个最近邻投票需要选择合适的K值和距离度量线性分类器参数化方法预测快三种理解方式代数、视觉、几何只能学习线性边界不能处理复杂模式知识地图图像分类挑战语义鸿沟最近邻分类器KNN线性分类器Linear视角变化背景杂乱光照变化距离度量L1/L2K值选择超参数设置参数化方法W, b三种视角代数/视觉/几何局限性线性边界关键决策点选择分类器最近邻简单但慢线性分类器快但能力有限距离度量L1对异常值鲁棒L2更常用K值选择使用验证集选择平衡鲁棒性和局部性超参数设置使用验证集不能使用测试集线性分类器的局限性需要非线性模型处理复杂模式 延伸阅读推荐资源CS231n课程Stanford CS231n: Convolutional Neural Networks for Visual Recognition详细的图像分类和深度学习课程经典数据集CIFAR-1010类图像分类数据集ImageNet大规模图像分类数据集下一步学习损失函数如何衡量分类器的好坏优化如何学习参数W和b卷积神经网络更强大的图像分类模型