CS231n-2017 第2讲 图像分类:KNN与线性分类

一. 图像分类概述

难点

  • (1) ViewPoint Variation: 拍摄视角。
  • (2) Illumination: 光照。
  • (3) Deformation: 变形。
  • (4) Occlusion: 遮挡。
  • (5) Background Clutter: 背景干扰。
  • (6) Intraclass Variation: 同类事物的差异化。

上述困难导致无法通过硬编码规则对图像达到良好的分类效果。而机器学习的方法,则是一种数据驱动的方法。其主要流程为:

  • (1) 收集图像并对类别进行标记。
  • (2) 使用机器学习方法训练分类器。
  • (3) 在新的数据上验证分类器性能。

二. KNN分类器

所用数据为CIFAR-10,共10类,5万张训练图片,每张图片32*32,1万张测试图片。

1. 最近邻方法

从训练数据中找到离测试数据最近的数据点,以该数据点的类别作为测试数据的类别。

优势:训练过程很快,仅是存储训练数据。
劣势:预测过程很慢,若有N个数据点,就得遍历这N个数据;对噪声敏感。
2. k近邻方法

以离测试数据最近的k个数据点进行投票,得票多的作为测试数据点的类别。

3. 可以改进的地方
  • (1) 距离计算方式。
  • (2) k近邻投票权重。
4. 超参数

超参数即事先设定的参数,而非从数据中学习到的参数。对于k近邻方法而言,距离计算方式和k都属于超参数。

超参数的选取方法:将数据集划分为训练集、验证集、测试集。在训练集上训练模型参数,使用验证集选择超参数,在测试集上测试模型泛化能力。

对小数据集而言,可选择K折验证。

5. KNN在图像分类上的问题
  • 不同类的图像可能在所选的距离衡量上相差很小。
  • 维度灾难:如数据点分布范围在0~4。那么在L无穷范数下,要使得测试点距离每个样本点的距离不超过0.5,一维情形下需要样本点为4个;2维情况下需要样本点16个。这种成指数增长的样本点需求,是很可怖且很难满足的。

三. 线性分类器

1. 代数角度

f(W,x)=Wx+b f ( W , x ) = W ⋅ x + b

2. 可视化角度

对于图像分类, x x 为图像像素展开成的n n 维列向量,若要输出 c c 类,那么W W 需要是 c×n c × n 大小的矩阵。每一类的得分实际上是 W W 的行向量和x x 的内积,再加上一个偏置项。从内积的含义上,可以将这一过程看成模板匹配。即图像在某个分类上的得分是图像向量在该分类的模板上的投影。按照这一观点,可以将 W W 矩阵中的每一个行向量重新组织成图像的尺寸,这样得到每一分类的模板图像。

图 1. 模板向量可视化
3. 从几何的角度

在图像像素展开成的n n 维列向量空间里,利用超平面进行分割。

CS231n-2017 第2讲 图像分类:KNN与线性分类_第1张图片
图 2. 线性分类就是利用超平面对高维空间进行分割
4. 线性分类器的缺点
  • 每个类别只能有一个模板向量,若一个类别中有不同的变种,算法会在变种的特征做平均。
  • 数据在其所在的空间中可能不是线性可分的,如异或函数。

一些有用的链接

  • KNN超参数对分类的影响。

你可能感兴趣的:(CS231n,CS231n,斯坦福,李飞飞,计算机视觉)