02 图像分类任务介绍&线性分类器

计算机视觉的难点

尺度、遮挡、形变、背景杂波(比如背景和物体颜色相似)、类内形变(比如凳子)、运动模糊、类别繁多。

可以按照上面拆解出自己任务的难点,然后对应来解决,选择合适的算法解决自己的问题。

基于规则的分类方法是否可行

通过硬编码的方法识别猫或其他类,是一件很困难的事。

数据驱动的图像分类范式

我们更常用的是数据驱动的图像分类,比如机器学习。
一般分为三个步骤:

  • 数据集构建
  • 分类器设计与学习(核心)
  • 分类器决策

分类器的设计与学习
image.png

  • 图像表示:
    • 像素表示(标红即本课程主要讲的)
    • 全局特征表示(如GIST):对于遮挡较难处理,因为要用到整图的像素。
    • 局部特征表示(如SIFT,特征+词袋模型)
  • 分类模型:

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

      机器学习主要学的就是各类分类器及其差别,还有背后的原理,这样使用时就能合理选择并改造。

  • 损失函数:

    • 0-1损失、多列支持向量机损失、交叉熵损失、L1损失、L2损失。
  • 优化算法:
    • 一阶方法:梯度下降、随机梯度下降、小批量梯度下降
    • 二阶方法:牛顿法、BFGS、L-BFGS
  • 训练过程:
    • 数据集划分、数据预处理、数据增强、欠拟合与过拟合(减小算法复杂度、使用权重正则化、使用dropout正则化)、超参数调整(自己设计的,并非从样本中学习的)、模型集成。
  • 图像分类任务的评价指标

    • 正确率(accuracy)=分对的样本数/全部样本数
    • 错误率(error rate)=1-正确率
    • Top1指标与Top5指标

      线性分类器

      数据集介绍
      CIFAR10数据集
  • 图像类型:二进制图像、灰度图像、彩色图像。

  • 图像表示:大多数分类算法都要求输入向量。这里我们使用最简单的一种方式,直接将矩阵转化为列向量。

    CIFAR10中图像转化为列向量:32323 -> 3072维

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

image.png

  1. 线性分类器的矩阵表示:

image.png
权重矩阵W的行数由类别个数决定,列数由图像表示(维度)决定。

  1. 线性分类器的权值向量:

image.png
权值看做是一种模板
模板记录了数据集中某个类的统计信息
输入图像与评估模板的匹配程度越高,分类器输出的分数越高。

  1. 线性分类器的决策边界。从几何学的角度来理解(分界面)

image.png

损失函数

  • 损失函数定义:搭建了模型性能与模型参数之间的桥梁,指导模型参数优化。
    • 损失函数是一个函数,用于度量给定分类器的预测值与真实值的不一致程度,其输出通常是一个非负实值。
    • 其输出的非负实值可以作为反馈信号来对分类器参数进行调整,以降低当前示例对应的损失值,提升分类器的分类效果。

image.png

构建了权值和度量之间的关系。让W和损失之间直接挂钩,给出W即能计算损失,而不用先算出标签再比较。

  • 多类支撑向量机损失:

image.png