机器视觉 -- 图像处理任务的基本流程 线性分类器的学习 损失函数是什么?

前言

本人是一名大一人工智能技术应用专业的学生,在大致的看完机器学习的一些内容之后,我给自己定下了以后的发展目标–机器视觉,而此条博客是本人第一次接触机器视觉领域的一些学习笔记,以后也会继续在此专栏更新。接下来我会介绍一下我在学习过程中整理出来的东西供以后自己查阅,主要是机器视觉系统在图像处理过程中的基本过程以及入门必学的线性分类器。

机器视觉简介

机器视觉是一种人工智能技术,它使用计算机视觉和模式识别技术来模拟人类视觉系统,对数字图像和视频进行分析和处理。机器视觉技术可以帮助计算机系统理解和感知周围的环境,从而实现自动化控制、智能识别、自动检测等功能。

机器视觉技术可以应用于各种领域,如工业自动化、医学影像分析、安防监控、智能交通、无人机等。通过机器视觉技术,计算机可以自动识别和分析图像中的对象、形状、颜色、运动等特征,从而实现自动化控制和智能决策。

机器视觉技术的发展,使得计算机可以更加真实地模拟人类视觉系统,实现更加智能化的图像处理和分析,为人类带来更多的便利和创新。

图像处理过程中的基本过程

  • 如果要进行图像处理的任务,首先需要做的就是把图像输入给计算机,所以第一步一定是输入图像
  • 输入完图像之后就需要对输入的图像进行表示,把图像表示成计算机能够看得懂的形式
    一般为像素表示、全局特征表示(如GIST)、全局特征表示(如SIFI 特征+磁带模型) 这三种模式
  • 图像表示完之后就要选择分类模型,针对不同的图像处理任务需要采取不同的分类模型以达到最好的处理效果
  • 图像通过分类模型分类完之后就会产生预测值,而我们需要把这些预测值与真实值进行比较,通过损失函数的方式计算出损失值
  • 计算出损失值之后就要通过一些优化算法优化分类模型中的参数从而让下次的损失值更小,从而让模型更加准确

这个过程也被称为训练

分类器

在机器学习中分类器有很多,有:

  • 近邻分类器
  • 贝叶斯分类器
  • 线性分类器
  • 支撑支撑向量机分类器
  • 神经网络分类器
  • 随机森林分类器
  • Adaboost

而在机器视觉的任务中主要使用的是线性分类器和神经网络分类器,在下文中会有一些线性分类器的内容。

常见的一些损失函数

损失函数搭建了模型性能与模型参数之间的桥梁,指导模型进行参数优化。
常用的损失函数有:

  • 0-1损失
  • 多类支撑向量机损失
  • 交叉熵损失
  • L1损失
  • L2损失

下文会仔细分析损失函数的定义

优化算法

优化算法通过分析损失函数输出的损失值,通过一系列计算计算出模型中更新的参数值,从而达到整个模型的性能优化

一阶方法

  • 梯度下降
  • 随机梯度下降
  • 小批量随机梯度下降

二阶方法

  • 牛顿法
  • BFGS
  • L-BFGS

训练过程

  • 数据集的划分(一般把训练集测试集 8:2分类)
  • 数据预处理(在视觉领域中一般对图像进行处理如边缘提取、加滤波器等)
  • 数据增强(一般把图片反转、随机剪裁、随机噪声等)
  • 如果遇到了欠拟合与过拟合
    • 减小算法复杂度
    • 使用权重正则项
    • 使用droput正则化
  • 超参数调整
  • 模型集成

过拟合和欠拟合

过拟合(Overfitting)指的是模型在训练数据上表现很好,但在测试数据上表现较差的情况。过拟合的原因是模型过于复杂过度拟合了训练数据中的噪声和细节,导致模型在新数据上的泛化能力较差

欠拟合(Underfitting)指的是模型在训练数据和测试数据上都表现较差的情况。欠拟合的原因是模型过于简单,无法很好地拟合数据中的复杂关系和特征,导致模型无法很好地学习和预测。

解决过拟合和欠拟合的方法不同。对于过拟合问题,可以采用一些方法来减少模型的复杂度,如正则化、早停、数据增强等;对于欠拟合问题,可以采用一些方法来增加模型的复杂度,如增加特征、增加模型的层数或宽度等。

在机器学习中,过拟合和欠拟合都会影响模型的泛化能力和准确性,需要根据具体情况来选择和优化模型,以获得更好的性能和效果。

图像分类任务的评价指标

  • 正确率 = 分对的样本数/全部样本数
  • 错误率 = 1 - 正确率

线性分类器

线性分类器是一种常用的机器学习模型,用于将数据分为不同的类别。线性分类器的基本思想是通过一个线性函数对数据进行分类,将数据分为两个或多个类别。具体来说,线性分类器会根据输入数据的特征值和权重参数计算出一个分数,然后将分数与一个阈值进行比较,从而确定数据所属的类别。

线性分类器是一种线性映射,将输入的图像特征映射为类别分数。

线性分类器的优点:模型简单、易于理解和实现,计算效率高,适用于大规模数据和高维特征的分类问题。但线性分类器的缺点是只能处理线性可分的数据,对于非线性分类问题表现不佳。因此,在实际应用中需要根据具体情况选择和优化模型,以获得更好的分类效果。

线性分类器的分类规则

线性分类器的分类规则是基于一个线性函数对数据进行分类的。具体来说,线性分类器会将输入数据的特征向量与一个权重向量进行内积运算,然后加上一个偏置项,得到一个分数值。如果分数值大于一个预设阈值,则将数据分为一类,否则分为另一类。

以二分类为例,假设有一个线性分类器,其权重向量为w,偏置项为b,输入数据的特征向量为x,分类规则可以表示为:

f(x) = sign(w·x + b)

其中,sign表示符号函数,即将分数值大于0的数据分为一类,小于0的数据分为另一类。在实际应用中,可以通过训练数据来学习模型的权重向量和偏置项,从而得到一个最优的分类器。

需要注意的是,线性分类器只能处理线性可分的数据,即可以用一个超平面将两类数据分开。对于非线性可分的数据,需要采用一些非线性分类器,如支持向量机、神经网络等,或者采用一些特征变换的方法,将数据映射到高维空间进行分类。

线性分类器的权值向量

在上文中的公式f(x) = sign(w·x + b) 中的w就是权值向量

  • 权值可以看作是一种图像模板
  • 输入图像与评估模板的匹配程度越高,分类器输出的分数就越高
    换句话说,就是x与w的内积值越高,那么预测的就越准确

损失函数

损失函数搭建了模型性能模型参数之间的桥梁,指导模型进行参数优化

  • 损失函数是一个函数,用于度量给定分类器的预测值与真实值的不一致程度,其输出的通常是一个非负实值。
  • 其输出的非负实值可以作为反馈信号来对分类器参数进行调整,以降低当前示例对应的损失值,提升分类器的分类效果。

不同的机器学习任务和模型会采用不同的损失函数。例如,在分类任务中,常用的损失函数包括交叉熵损失函数、对数损失函数等;在回归任务中,常用的损失函数包括均方误差损失函数、平均绝对误差损失函数等。这些损失函数的选择和定义,需要根据具体的任务和模型来进行选择和优化。

以交叉熵损失函数为例,它是一种常用的分类损失函数,用来衡量模型预测结果与实际标签之间的差异。交叉熵损失函数定义如下:

L(y, f(x)) = - ∑ylogf(x) - ∑(1-y)log(1-f(x))

其中,y表示实际标签,f(x)表示模型预测的概率值,log表示自然对数。交叉熵损失函数的值越小,说明模型预测的结果越接近实际标签,模型的性能也就越好。在训练过程中,我们通常会通过梯度下降等优化算法来最小化交叉熵损失函数,从而优化模型。

猜你喜欢

转载自blog.csdn.net/fuhao6363/article/details/130152606
今日推荐