机器视觉3-线性分类器

机器视觉3-线性分类器

  • 前言
      • 一、整体流程
      • 二、其他相关内容
  • 图像的表示
    • 图像类型
      • 黑白图像
      • 灰度图像
      • 彩色图像
    • 图像表示为向量
      • 一、基本概念
      • 二、表示方法
      • 三、优点
      • 四、局限性
      • 五、应用场景
  • 线性分类器
      • 一、神经网络的层级结构形成非线性模型
      • 二、支撑向量机的高维映射形成非线性模型
    • 线性分类器的定义
      • 一、线性分类器公式及变量含义
      • 二、决策规则
      • 三、整体理解
        • 示例
      • 一、\(w\)的行列数
      • 二、\(b\)的维度
    • 线性分类器的权值
      • 一、公式及变量含义
      • 二、权值向量的理解
      • 三、示例图像
    • 线性分类器的分界面(决策边界)
      • 一、坐标与图像示例
      • 二、决策边界相关内容
      • 三、整体理解
  • 损失函数定义
      • 公式及变量含义
      • 整体理解
  • 多类支撑向量机损失
  • 正则项与超参数
    • 什么是超参数
      • 一、与模型参数的区别
      • 二、常见的超参数
      • 三、调参方法
  • 什么是优化
      • 一、参数优化的重要性
      • 二、利用损失函数进行反馈
      • 三、调整分类器参数的方法
    • 优化的目标
      • 一、最小化损失函数
      • 二、提高模型的准确性
      • 三、简化模型(正则化相关)
      • 四、满足特定的约束条件
  • 梯度下降算法,随机梯度下降算法以及小批梯度下降算法

前言

在这里插入图片描述

这张图片展示了一个图像分类模型的训练过程流程图,主要包含以下几个关键部分:

一、整体流程

  • 输入图像X:整个流程的起点是输入一张图像X,这是待分类的原始数据。
  • 图像表示:输入图像后,首先进行图像表示,这里提到是基于像素的图像表示,即把图像转化为计算机可以处理的像素数据形式。
  • 分类模型:基于图像表示,构建分类模型。模型中涉及到以下几个方面:
    • 线性分类器定义:明确使用线性分类器来进行分类任务。
    • 线性分类器的权值:线性分类器包含一些权值参数,这些参数会影响分类结果。
    • 线性分类器的分界面:线性分类器通过一个分界面(在二维空间中是直线,高维空间中是超平面)来将不同类别的数据分开。
  • 预测值Ŷ:通过分类模型对输入图像进行处理,得到一个预测值Ŷ,即模型预测该图像属于某个类别的结果。
  • 真实值Y:与预测值相对应的是真实值Y,这是图像实际所属的类别,用于与预测值进行比较。
  • 损失函数:将预测值Ŷ和真实值Y输入到损失函数中,损失函数用于衡量预测值与真实值之间的差异程度。
    • 损失函数定义:给出了损失函数的具体定义方式。
    • 多类支撑向量机损失:可能是一种特定的损失函数形式,适用于多类别分类问题,例如支持向量机在多类分类中的损失计算方法。
    • 正则项与超参数:正则项用于防止模型过拟合,超参数则是在模型训练之前需要设置的一些参数,它们会影响模型的训练过程和性能。
  • 损失值:通过损失函数计算得到一个损失值,该值反映了当前模型预测的好坏程度。
  • 优化算法:根据损失值,使用优化算法来更新模型参数,以使得损失值逐渐减小,从而提高模型的准确性。
    • 什么是优化:可能是对优化概念的解释,即通过某种方法找到使目标函数(这里是损失函数)最优的参数值。
    • 梯度下降算法、随机梯度下降算法及小批量梯度下降算法:这些是常见的优化算法,用于在模型训练过程中更新参数。梯度下降算法是根据损失函数的梯度方向来更新参数;随机梯度下降算法每次随机选取一个样本计算梯度并更新参数;小批量梯度下降算法则是选取一小批样本计算梯度并更新参数,它们在不同场景下各有优势。

二、其他相关内容

  • 数据集划分:在训练之前,需要将数据集划分为训练集、验证集和测试集等,用于训练模型、调整超参数和评估模型性能。
  • 数据预处理:对输入的数据进行一些预处理操作,如归一化、标准化、数据增强等,以提高模型的训练效果和泛化能力。

这张图清晰地展示了图像分类模型训练的主要步骤和涉及的关键概念,从输入图像到模型构建、预测、损失计算以及参数优化,形成了一个完整的训练流程,有助于理解图像分类模型是如何通过训练来提高分类性能的。

图像的表示

图像类型

在这里插入图片描述

以下是对黑白、灰度和彩色图像类型的详细介绍:

黑白图像

在这里插入图片描述

  • 定义
    • 黑白图像是最简单的图像类型,只有两种颜色,即黑色和白色。每个像素点只有两种状态,要么是黑色(通常用0表示),要么是白色(通常用1表示)。
    • 它可以看作是灰度图像的一种极端情况,只有最暗(黑色)和最亮(白色)两个灰度级别。
  • 特点
    • 数据量小:由于只有两种颜色,图像的数据量非常小,存储和传输都比较方便。
    • 对比度高:黑白对比鲜明,能够突出图像的轮廓和形状,使图像的结构更加清晰。
    • 缺乏色彩信息:无法展示物体的真实色彩,只能通过明暗变化来表现物体的形态和细节。
  • 应用场景
    • 早期的印刷品和文档:如早期的报纸、书籍插图等,由于技术限制,多采用黑白图像。
    • 艺术创作:一些艺术家会利用黑白图像的简洁性和高对比度来创作具有独特风格的艺术作品,如黑白摄影、黑白版画等。
    • 某些特定的标识和符号:例如一些简单的图标、标志等,为了简洁明了,常采用黑白形式。

灰度图像

在这里插入图片描述

  • 定义
    • 灰度图像是每个像素点只有一个亮度值的图像,亮度值通常用0(黑色)到255(白色)之间的整数表示。
    • 它介于黑白图像和彩色图像之间,虽然没有色彩信息,但可以通过不同的灰度级别来表现图像的明暗变化和细节。
  • 特点
    • 数据量适中:相比彩色图像,灰度图像的数据量较小,但比黑白图像大,因为它有更多的灰度级别来描述图像。
    • 能表现丰富的层次:可以细腻地表现物体的明暗过渡和纹理,使图像看起来更加真实和自然。
    • 便于处理和分析:在一些图像处理和计算机视觉任务中,灰度图像可以简化计算,因为不需要处理复杂的色彩信息,同时又能保留足够的图像特征。
  • 应用场景
    • 医学影像:如X光片、CT扫描图像等,通常采用灰度图像,医生可以通过灰度的变化来观察人体内部的组织结构和病变情况。
    • 文档扫描和光学字符识别(OCR):将纸质文档扫描成灰度图像,便于后续的文字识别和处理。
    • 一些对色彩要求不高的图像处理任务:例如图像的边缘检测、噪声去除等,灰度图像可以减少计算量,提高处理效率。

彩色图像

在这里插入图片描述

  • 定义
    • 彩色图像是通过不同的颜色通道来表示图像的,常见的有RGB(红、绿、蓝)、CMYK(青、洋红、黄、黑)等模式。
    • 以RGB模式为例,每个像素点由红、绿、蓝三个通道的数值组合而成,通过不同比例的红、绿、蓝混合可以产生各种颜色。
  • 特点
    • 色彩丰富:能够真实地还原现实世界的色彩,给人带来更加生动、逼真的视觉体验。
    • 数据量较大:由于包含多个颜色通道的信息,彩色图像的数据量通常比黑白和灰度图像大得多,对存储和传输的要求也更高。
    • 色彩信息丰富:可以通过颜色的差异来区分不同的物体和区域,对于一些需要识别和分析物体颜色特征的任务非常重要。
  • 应用场景
    • 摄影和影视:我们日常拍摄的照片、观看的电影、电视剧等大多是彩色图像,以展现丰富多彩的世界。
    • 广告和宣传:彩色图像能够吸引人们的注意力,更好地传达产品或服务的信息,因此在广告海报、宣传册等方面广泛应用。
    • 网页设计和多媒体:网页上的图片、游戏中的图像、多媒体课件等通常采用彩色图像,以提供更加丰富的视觉效果和交互体验。

这三种图像类型在不同的领域和场景中都有各自的优势和应用,根据具体的需求和条件选择合适的图像类型可以更好地满足实际需要。

图像表示为向量

大多数分类算法都要求输入向量!将图像转换成向量的方法有很多,这里我们用一种最简单的方法,直接将图像矩阵转换成向量

在这里插入图片描述
将图像表示为向量是计算机视觉和图像处理中常用的方法,以下是具体介绍:

一、基本概念

  • 图像到向量的转换:一幅图像可以看作是一个二维的像素矩阵。为了便于计算机处理和分析,通常会将这个二维矩阵转换为一维向量。例如,一幅大小为 m × n m\times n m×n的灰度图像,其像素值范围在 0 0 0 255 255 255之间,可以将每个像素的值按行或列的顺序依次排列,形成一个长度为 m × n m\times n m×n的向量。

二、表示方法

  • 按行或列展开
    • 按行展开:从图像的第一行开始,依次将每行的像素值连接起来,形成一个向量。例如,对于一个 3 × 3 3\times 3 3×3的灰度图像,像素矩阵为:
      [
      \begin{bmatrix}
      p_{11} & p_{12} & p_{13}\
      p_{21} & p_{22} & p_{23}\
      p_{31} & p_{32} & p_{33}
      \end{bmatrix}
      ]
      按行展开后的向量为([p_{11}, p_{12}, p_{13}, p_{21}, p_{22}, p_{23}, p_{31}, p_{32}, p_{33}])。
    • 按列展开:与按行展开类似,只是从图像的第一列开始,依次将每列的像素值连接起来。对于上述 3 × 3 3\times 3 3×3的图像,按列展开后的向量为([p_{11}, p_{21}, p_{31}, p_{12}, p_{22}, p_{32}, p_{13}, p_{23}, p_{33}])。
  • 特征向量表示
    • 颜色特征:除了直接使用像素值,还可以提取图像的颜色特征并表示为向量。例如,计算图像的颜色直方图,将不同颜色区间的像素数量作为向量的元素。对于RGB图像,可以分别计算红、绿、蓝三个通道的直方图,然后将它们连接起来形成一个特征向量。
    • 纹理特征:通过一些纹理分析算法(如灰度共生矩阵、局部二值模式等)提取图像的纹理特征,将这些特征值组成向量。例如,灰度共生矩阵可以计算出多个统计量(如能量、对比度、相关性等),将这些统计量作为向量的元素。
    • 形状特征:对于一些具有明显形状的物体图像,可以提取形状特征,如边界长度、面积、圆形度、矩形度等,将这些形状特征组成向量。

三、优点

  • 便于数学运算和模型处理:将图像表示为向量后,可以方便地应用各种数学工具和机器学习算法。例如,在线性分类器、神经网络等模型中,输入通常是向量形式,这样可以直接将图像向量输入到模型中进行训练和预测。
  • 特征提取和降维的基础:向量形式便于进行特征提取和降维操作。可以通过主成分分析(PCA)、线性判别分析(LDA)等方法对图像向量进行降维,减少数据的维度,同时保留重要的信息,提高计算效率和模型的泛化能力。
  • 统一的表示形式:无论图像的大小、分辨率如何,都可以转换为统一的向量形式,便于在不同的图像之间进行比较和分析。

四、局限性

  • 维度灾难:对于高分辨率的图像,转换为向量后维度会非常高。例如,一幅 1000 × 1000 1000\times 1000 1000×1000的灰度图像,转换为向量后维度为 1000 × 1000 = 1000000 1000\times1000 = 1000000 1000×1000=1000000。高维度的数据会带来计算量过大、存储空间需求大、容易出现过拟合等问题。
  • 空间信息丢失:将二维图像转换为一维向量会丢失像素之间的空间位置关系。在一些对空间信息敏感的任务中(如图像分割、目标检测等),这种空间信息的丢失可能会影响模型的性能。

五、应用场景

  • 图像分类:将图像表示为向量后,可以使用各种分类算法(如支持向量机、决策树、神经网络等)对图像进行分类。例如,在手写数字识别中,将手写数字图像转换为向量,然后输入到分类模型中,判断图像中的数字是 0 0 0 9 9 9中的哪一个。
  • 图像检索:通过计算图像向量之间的相似度(如欧氏距离、余弦相似度等),可以实现图像的检索。用户输入一张查询图像,系统将其转换为向量,然后在图像数据库中查找与查询向量最相似的图像并返回。
  • 图像压缩:在一些图像压缩算法中,会先将图像转换为向量,然后对向量进行变换和编码,实现数据的压缩。例如,JPEG图像压缩标准中就涉及到对图像数据的变换和量化等操作。

将图像表示为向量是图像处理和计算机视觉中的一种基础方法,它为后续的各种处理和分析任务提供了便利,但也需要注意其局限性,并根据具体任务选择合适的表示方法和处理策略。

线性分类器

为什么从线性分类器开始

在这里插入图片描述
以下是详细的解释:

一、神经网络的层级结构形成非线性模型

  • 神经网络基本原理
    • 神经网络是由大量的神经元相互连接组成的,这些神经元按照层级结构排列,通常包括输入层、隐藏层和输出层。
    • 每个神经元接收来自上一层神经元的输入,并通过一个激活函数进行非线性变换,然后将结果传递给下一层神经元。
  • 层级结构与非线性
    • 在神经网络中,通过多层的神经元连接和非线性激活函数(如Sigmoid函数、ReLU函数等),可以实现对输入数据的复杂非线性变换。
    • 例如,在一个简单的多层感知机(MLP)中,输入层接收原始数据(如图像的像素值向量),隐藏层中的神经元通过加权求和和激活函数处理这些输入,然后将结果传递给下一层。随着层数的增加,网络能够学习到越来越复杂的特征和模式,从而形成一个强大的非线性模型。
    • 以图像分类为例,浅层的神经元可能学习到一些简单的特征,如边缘、线条等,而深层的神经元则可以学习到更抽象、更复杂的特征,如物体的形状、纹理等,最终通过输出层进行分类决策。这种层级结构使得神经网络能够捕捉到数据中的非线性关系,对各种复杂的任务(如图像识别、语音识别、自然语言处理等)都表现出了出色的性能。

二、支撑向量机的高维映射形成非线性模型

  • 支撑向量机基本原理
    • 支撑向量机(SVM)最初是用于解决线性可分问题的,其目标是找到一个最优的超平面,将不同类别的数据尽可能地分开,并且使两类数据到超平面的距离最大化。
  • 高维映射与非线性
    • 对于线性不可分的数据,SVM通过引入核函数(Kernel Function)将原始数据映射到一个高维特征空间。在这个高维空间中,数据可能变得线性可分,从而可以找到一个合适的超平面进行分类。
    • 例如,常用的核函数有多项式核、高斯核(RBF核)等。以高斯核为例,它可以将原始数据映射到一个无限维的特征空间,在这个空间中构建一个复杂的非线性决策边界。
    • 虽然在高维空间中进行计算,但通过核函数的技巧,实际上并不需要显式地计算高维空间中的坐标,而是直接在原始数据空间中通过核函数计算内积,从而大大降低了计算复杂度。这种通过高维映射实现非线性分类的方法使得SVM在许多领域都有广泛的应用,尤其是在小样本、高维度的数据上表现出了较好的性能和泛化能力。

综上所述,神经网络通过层级结构和非线性激活函数,支撑向量机通过高维映射和核函数,都能够构建出功能强大的非线性模型,有效地处理各种复杂的实际问题,它们是机器学习和数据挖掘领域中非常重要的两类模型和方法。

线性分类器的定义

线性分类器是一种线性映射,将输入的图像特征映射为类别分数。
在这里插入图片描述
这张图片主要讲解了第(i)个类的线性分类器及其决策规则,具体内容如下:

一、线性分类器公式及变量含义

  • 公式:(f_i(x, w_i) = w_i^T x + b_i),其中(i = 1, \cdots, c)。
    • (f_i(x, w_i)):表示第(i)个类别的线性分类器函数,它是关于输入向量(x)和权重向量(w_i)的函数,用于计算输入图像属于第(i)类的得分或可能性。
    • (x):代表输入的(d)维图像向量,即把图像转化为一个(d)维的向量,包含了图像的各种特征信息,如像素值、颜色特征、纹理特征等。
    • (w_i):是第(i)个类别的权重向量,维度为(d)维,即(w_i = [w_{i1} \cdots w_{id}]^T)。权重向量(w_i)中的每个元素与输入向量(x)中的元素相对应,通过与(x)做点积(内积)运算,确定每个特征在分类决策中的重要程度。不同类别的权重向量(w_i)不同,决定了不同类别之间的分类边界。
    • (b_i):是第(i)个类别的偏置项,是一个常数。偏置项的作用是允许分类器的决策边界在空间中平移,以更好地适应数据分布,提高分类器的灵活性和准确性。
    • (i = 1, \cdots, c):表示一共有(c)个类别,(i)遍历从(1)到(c)的所有整数,即每个类别都有一个对应的线性分类器函数(f_i(x, w_i))。

二、决策规则

  • 规则内容:如果(f_i(x) > f_j(x)),(\forall j \neq i),则决策输入图像(x)属于第(i)类。
    • 这意味着对于输入图像向量(x),分别通过(c)个线性分类器计算出(f_i(x))((i = 1, \cdots, c))的值。然后比较这些值的大小,如果第(i)个分类器的输出值(f_i(x))大于其他所有类别((j \neq i))的分类器输出值(f_j(x)),那么就判定输入图像(x)属于第(i)类。
    • 例如,在一个手写数字识别任务中,假设有(10)个类别((0)到(9)),对于输入的手写数字图像向量(x),分别计算(f_0(x), f_1(x), \cdots, f_9(x))。如果(f_3(x))大于(f_0(x), f_1(x), f_2(x), f_4(x), \cdots, f_9(x)),那么就判定该输入图像(x)属于数字(3)这一类。

三、整体理解

  • 图片首先介绍了每个类都有自己的参数(w)和(b),强调了不同类别线性分类器的独立性。然后给出了具体的线性分类器公式,最后说明了基于这些分类器输出值的决策规则,从而形成了一个完整的基于线性分类器的图像分类流程。这种方法在简单的图像分类场景中较为常用,但对于复杂的图像数据,可能需要更复杂的模型和方法来提高分类准确性。
示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以下是关于(w)的行列数以及(b)的维度的决定因素:

一、(w)的行列数

  • 行数
    • 由类别个数(c)决定。对于第(i)个类别的线性分类器,有(c)个这样的分类器((i = 1, \cdots, c)),每个分类器都有一个对应的权重向量(w_i),所以(w)整体上有(c)行。
  • 列数
    • 由输入图像向量(x)的维度(d)决定。因为权重向量(w_i)要与输入向量(x)进行点积运算((w_i^T x)),为了使点积运算能够进行,(w_i)的维度必须与(x)的维度相匹配,所以(w_i)有(d)列,即(w_i = [w_{i1} \cdots w_{id}]^T)。

二、(b)的维度

  • (b)是偏置项,它的维度与类别个数(c)相同。因为每个类别都有一个对应的线性分类器,每个分类器都有自己的偏置项(b_i)((i = 1, \cdots, c)),所以(b = [b_1 \cdots b_c]),即(b)是一个(c)维向量。

例如,对于一个三分类((c = 3))的图像分类问题,输入图像向量(x)是(d)维的,那么权重矩阵(w)就是一个(3\times d)的矩阵,偏置向量(b)就是一个(3)维向量。这样的设置使得每个类别都有自己独立的线性分类模型(由对应的(w_i)和(b_i)确定),从而能够对输入图像进行分类决策。

线性分类器中权重和偏置的值通常是通过训练数据来确定的

线性分类器的权值

在这里插入图片描述

这张图片主要介绍了线性分类器的权值向量相关内容,具体如下:

一、公式及变量含义

  • 公式:(f_i(x, w_i) = w_i^T x + b_i),其中(i = 1, \cdots, c)。
    • (f_i(x, w_i)):表示第(i)个类别的线性分类器函数,它是关于输入向量(x)和权重向量(w_i)的函数,用于计算输入图像属于第(i)类的得分或可能性。
    • (x):代表输入的(d)维图像向量,即把图像转化为一个(d)维的向量,包含了图像的各种特征信息,如像素值、颜色特征、纹理特征等。
    • (w_i):是第(i)个类别的权重向量,维度为(d)维,即(w_i = [w_{i1} \cdots w_{id}]^T)。权重向量(w_i)中的每个元素与输入向量(x)中的元素相对应,通过与(x)做点积(内积)运算,确定每个特征在分类决策中的重要程度。不同类别的权重向量(w_i)不同,决定了不同类别之间的分类边界。
    • (b_i):是第(i)个类别的偏置项,是一个常数。偏置项的作用是允许分类器的决策边界在空间中平移,以更好地适应数据分布,提高分类器的灵活性和准确性。
    • (i = 1, \cdots, c):表示一共有(c)个类别,(i)遍历从(1)到(c)的所有整数,即每个类别都有一个对应的线性分类器函数(f_i(x, w_i))。

二、权值向量的理解

  • 权值看做是一种模板
    • 可以将权重向量(w_i)看作是第(i)类的一个模板。这个模板包含了对输入图像向量(x)中各个特征的权重信息,反映了该类别所具有的特征模式或特征重要性分布。例如,对于一个手写数字识别任务,如果(w_1)是数字(1)的权重向量,那么其中较大的权重值可能对应于图像中与数字(1)的形状特征(如竖线等)相关的像素位置或特征维度。
  • 输入图像与评估模板的匹配程度越高,分类器输出的分数就越高
    • 当输入图像向量(x)与某个类别(i)的权重向量(w_i)(即该类别的模板)的匹配程度越高时,通过(w_i^T x)计算得到的值就越大,再加上偏置项(b_i)后,(f_i(x, w_i))的值也就越大。这意味着输入图像越符合第(i)类的特征模式,分类器输出的该图像属于第(i)类的分数就越高。
    • 例如,在一个动物图像分类系统中,如果输入一张猫的图像,当它与猫类的权重向量(模板)匹配较好时,猫类分类器的输出分数就会相对较高,从而更有可能被判定为猫这一类。

三、示例图像

  • 图片下方展示了不同类别的示例图像(plane、car、bird、cat、deer、dog、frog、horse、ship、truck)以及对应的权重向量(W_1)到(W_{10}),直观地说明了每个类别都有其特定的权重向量(模板),用于对输入图像进行分类判断。

综上所述,这张图片通过公式、文字说明和示例图像,详细阐述了线性分类器中权值向量的概念、作用以及与输入图像的关系,帮助理解线性分类器的工作原理和分类过程。

线性分类器的分界面(决策边界)

在这里插入图片描述

这张图片主要讲解了线性分类器的决策边界,以下是详细解释:

一、坐标与图像示例

  • 坐标:图中使用了一个二维坐标平面,横坐标为“特征1”,纵坐标为“特征2”。这里的特征1和特征2是从图像中提取出来的两个特征,用于表示图像的某种属性,以便进行分类。
  • 图像示例:在坐标平面上散布着一些图像示例,包括汽车、船、猫等不同类别的图像。这些图像根据其特征值分布在坐标平面的不同位置。

二、决策边界相关内容

  • 决策面的定义
    • 分数等于0的线就是决策面,其数学表达式为(w_i^T x + b_i = 0),其中(i = 1, \cdots, c)((c)为类别个数)。对于每一个类别(i),都有这样一个决策面,它将特征空间划分为不同的区域,用于区分不同的类别。
    • 例如,图中红色的线是汽车类的分界面,绿色的线是船类的分界面,蓝色的线是猫类的分界面。这些线将坐标平面分成了不同的区域,落在某个区域内的图像就可能被分类为对应的类别。
  • 权重(w)和偏置(b)的作用
    • (w)控制着线的方向:权重向量(w_i)决定了决策面的方向。不同的权重值会使决策面在特征空间中呈现不同的倾斜角度和方向。例如,如果(w_i)中特征1的权重较大,那么决策面可能会更倾向于与特征1轴形成较大的夹角。
    • (b)控制着线的偏移:偏置项(b_i)决定了决策面在特征空间中的位置偏移。即使权重向量(w_i)相同,不同的偏置值(b_i)也会使决策面在空间中平移,从而更好地适应数据的分布,以便更准确地进行分类。
  • 箭头方向与分数的关系
    • 箭头方向代表分类器的正方向,沿着箭头方向距离决策面越远分数就越高。这意味着对于某个类别(i)的线性分类器(f_i(x, w_i) = w_i^T x + b_i),当输入图像向量(x)沿着箭头方向远离决策面时,(f_i(x, w_i))的值会增大,即该图像属于类别(i)的可能性或得分会更高。

三、整体理解

这张图片通过直观的图形和示例,展示了线性分类器在二维特征空间中的决策边界是如何形成的,以及权重(w)和偏置(b)对决策边界的影响,还有图像在特征空间中的位置与分类分数之间的关系,有助于更好地理解线性分类器的工作原理和分类过程。在实际应用中,虽然特征空间通常是高维的,但这种二维的示例可以帮助我们从概念上理解线性分类器的基本思想和关键要素。

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

损失函数定义

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

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

在这里插入图片描述

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

公式及变量含义

  • 公式

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

整体理解

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

多类支撑向量机损失

在这里插入图片描述


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

在这里插入图片描述

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

正则项与超参数

在这里插入图片描述

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

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

在这里插入图片描述

什么是超参数

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

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

一、与模型参数的区别

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

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

  • 损失函数的作用:损失函数用于衡量模型的预测结果与真实标签之间的差异。对于每个训练样本(x_i),分类器会根据当前的参数(W)(这里(W)泛指模型的所有参数)得到一个预测值(f(x_i, W)),然后通过损失函数(L_i(f(x_i, W), y_i))计算出该样本的损失值,其中(y_i)是样本(x_i)的真实类别标签。整个数据集的损失(L=\frac{1}{N} \sum_{i} L_i(f(x_i, W), y_i))是所有样本损失的平均值。
  • 反馈信号:损失函数的输出值(即损失(L))为参数优化提供了反馈信号。如果损失值较大,说明模型的预测结果与真实标签相差较大,需要调整参数来减小损失;反之,如果损失值较小,说明模型的性能较好,但可能还需要进一步微调参数以达到更好的效果。

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

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

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

优化的目标

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

一、最小化损失函数

  • 基本目标:最直接的目标是最小化损失函数(L)。如前面所介绍的KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲L=\frac{1}{N} \…,通过调整模型参数(W),使得整个数据集上的平均损失尽可能小。这意味着模型的预测结果(f(x_i, W))与真实标签(y_i)之间的差异在总体上最小化,从而提高模型在训练数据上的拟合程度。

二、提高模型的准确性

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

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

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

四、满足特定的约束条件

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

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

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

视频

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

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

相关文章

JavaScript基础概述:脚本定义、输出方式与数据类型

JavaScript是网页开发中的核心技术之一&#xff0c;它赋予网页交互功能和动态效果。 1. JavaScript脚本的定义方式 JavaScript脚本可以通过内联方式或外联方式嵌入到HTML页面中。 内联JS 直接将JavaScript代码写在<script>标签中&#xff1a; <!DOCTYPE html>…

解决“无法定位程序输入点 av_buffer_create 于动态链接库 XXX\Obsidian.exe 上”问题

解决“无法定位程序输入点 av_buffer_create 于动态链接库 XXX\Obsidian.exe 上”问题 问题描述 本人在使用zotero中的zotero one&#xff08;青柠学术插件&#xff09;的时候&#xff0c;使用插件跳转obsidian中的对应笔记&#xff0c;出现上图情况。&#xff08;错误中提到的…

增量导入和全量导入的区别是什么?

定义 全量导入&#xff1a;是指将数据源中的所有数据一次性全部导入到目标系统中。例如&#xff0c;一个电商公司要将其旧数据库中的所有商品信息&#xff08;包括商品名称、价格、库存等&#xff09;全部迁移到新的数据库系统中&#xff0c;这个过程就是全量导入。这种方式会覆…

【数据结构高阶】B-树

目录 一、常见的搜索结构 二、B树 2.1 B树的概念 2.2 B树插入数据的分析 2.3 B树的性能分析 2.4 模拟实现B树 2.4.1 B树节点的定义 2.4.2 B树数据的查找 2.4.3 B树节点的数据插入 2.4.4 B树的遍历 2.4.5 模拟实现B树实现的完整代码 三、B树 3.1 B树的概念 3.2 B树…

《CPython Internals》阅读笔记:p97-p117

《CPython Internals》学习第 7 天&#xff0c;p97-p117 总结&#xff0c;总计 21 页。 一、技术总结 1.词法分析(lexical analysis) 根据《Compilers-Principles, Techniques, and Tools》(《编译原理》第2版)第 5 页&#xff1a;The first phase of a compiler is called …

2.两数相加--力扣

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

第31章 汇编语言--- 安全性考量

汇编语言是一种低级编程语言&#xff0c;它与特定的计算机架构紧密相关。编写安全的汇编代码是至关重要的&#xff0c;因为汇编代码直接操作硬件和内存&#xff0c;任何错误都可能导致严重的后果&#xff0c;如系统崩溃、数据泄露或被恶意利用。在第31章中讨论汇编语言的安全性…

2501d,d作者,炮打C语言!

原文 标准C定期改进,现在为C23.但是还是没有解决一些怪东西.Dlang社区在D语言编译器中嵌入了一个C编译器,这样可编译C. 该C编译器(又名ImportC)是从头开始构建的.它提供了使用现代编译器技术来修复这些缺点的机会.为什么标准C不修复它们? 1,计算常式 2,编译时单元测试 3,前…

口碑很好的国产LDO芯片,有哪些?

在几乎任何一个电路设计中&#xff0c;都可能会使用LDO&#xff08;低压差线性稳压器&#xff09;这个器件。 虽然LDO不是什么高性能的IC&#xff0c;但LDO芯片市场竞争异常激烈。最近几年&#xff0c;诞生了越来越多的精品国产LDO&#xff0c;让人看得眼花缭乱。 业内人士曾经…

搜索引擎的设计与实现【源码+文档+部署讲解】

目 录 目 录 1 绪论 1.1 项目背景 1.2 国内外发展现状及分类 1.3 本论文组织结构介绍 2 相关技术介绍 2.1什么是搜索引擎 2.2 sqlserver数据库 2.3 Tomcat服务器 3 搜索引擎的基本原理 3.1搜索引擎的基本组成及其功能 3.2搜索引擎的详细工作流程 4 系统分析与…

计算机系统组成(计算机组成原理 基础)

文章目录&#xff1a; 一&#xff1a;体系结构 1.系统组成 1.1 硬件系统 1.2 软件系统 2.工作原理 2.1 冯诺依曼体系 2.2 指令和指令系统 3.性能指标 二&#xff1a;硬件系统 1.主机 1.1 CPU 1.2 内存 2.外设 2.1 外存 2.2 输入设备 2.3 输出设备 2.4 适配器 …

一些计算机零碎知识随写(25年1月)-1

我原以为世界上有技术的那批人不会那么闲&#xff0c;我错了&#xff0c;被脚本真实了。 今天正隔着画画呢&#xff0c;手机突然弹出几条安全告警通知。 急忙打开服务器&#xff0c;发现问题不简单&#xff0c;直接关服务器重装系统..... 首先&#xff0c;不要认为小网站&…

Go Ebiten小游戏开发:贪吃蛇

贪吃蛇是一款经典的小游戏&#xff0c;玩法简单却充满乐趣。本文将介绍如何使用 Go 语言和 Ebiten 游戏引擎开发一个简单的贪吃蛇游戏。通过这个项目&#xff0c;你可以学习到游戏开发的基本流程、Ebiten 的使用方法以及如何用 Go 实现游戏逻辑。 项目简介 贪吃蛇的核心玩法是…

FCPX插件:100组二维卡通动漫流体线条MG动画元素包 MotionVfx – mzap

mZap 是一款由 motionVFX 公司出品的 Final Cut Pro X 模板&#xff0c;提供 100 种卡通动漫流体 MG 动画元素和标题效果。这套模板专为视频制作者设计&#xff0c;添加流畅且生动的动画效果&#xff0c;提升视频的创意表现力。 丰富预设&#xff1a;提供 100 种卡通动漫流体 M…

linux下实现U盘和sd卡的自动挂载

linux下实现U盘和sd卡的自动挂载 Chapter0 linux下实现U盘和sd卡的自动挂载 Chapter0 linux下实现U盘和sd卡的自动挂载 原文链接&#xff1a;https://blog.csdn.net/EmSoftEn/article/details/45099699 目的&#xff1a;使U盘和SD卡在Linux系统中进行插入和拔除时能自动挂载和…

Taro+react 开发第一节创建 带有redux状态管理的项目

Taro 项目基于 node&#xff0c;请确保已具备较新的 node 环境&#xff08;>16.20.0&#xff09;&#xff0c;推荐使用 node 版本管理工具 nvm 来管理 node&#xff0c;这样不仅可以很方便地切换 node 版本&#xff0c;而且全局安装时候也不用加 sudo 了。 1.安装 npm inf…

六年之约day12

今日开心&#xff1a;今天通过小红书找到了一个板友群&#xff0c;晚上约了一个男生一个女生一块玩滑板&#xff08;虽然有些冷&#xff0c;但滑着滑着就不冷了。也算是迈出了重要的一步”以板会友“。今后&#xff0c;持续社交吧&#xff0c;拒绝当社畜。 今日不开心&#xf…

ZooKeeper Java API操作

&#xff08;1&#xff09;添加依赖&#xff0c;在pom.xml文件中添加zookeeper依赖&#xff1a; &#xff08;2&#xff09;连接zookeeper服务&#xff0c;创建cn.itcast.zookeeper包&#xff0c;在该包中创建ZooKeeperDemo类&#xff0c;该类用于实现创建会话和操作ZooKeeper&…

什么是顶级思维?

在现代社会&#xff0c;我们常常听到“顶级思维”这个概念&#xff0c;但究竟什么才是顶级思维&#xff1f;它又是如何影响一个人的成功和幸福呢&#xff1f;今天&#xff0c;我们就来探讨一下顶级思维的几个关键要素&#xff0c;并分享一些实用的生活哲学。 1. 身体不适&…

【源码解析】Java NIO 包中的 ByteBuffer

文章目录 1. 前言2. ByteBuffer 概述3. 属性4. 构造器5. 方法5.1 allocate 分配 Buffer5.2 wrap 映射数组5.3 slice 获取子 ByteBuffer5.4 duplicate 复刻 ByteBuffer5.5 asReadOnlyBuffer 创建只读的 ByteBuffer5.6 get 方法获取字节5.7 put 方法往 ByteBuffer 里面加入字节5.…