跳转至

CS231n Convolutional Neural Network for Visual Recognition

Image Classification

图像分类问题

任务

给定一张图片,输出图片中物体的种类

意义:本身的意义,以及作为其他更复杂的计算机视觉任务的基础

挑战

  • Viewpoint variation
  • Scale variation
  • Deformation
  • Occlusion
  • Illumination conditions
  • Background clutter
  • Intra-class variation

解答

feature-driven

采用“特征驱动”的方式,人工设置特征,对特征进行分类

data-driven

采用数据驱动的方式,由程序通过特定的算法提取信息

Nearest Neighbor Classifier

最近邻法是一种常用的机器学习算法,通过图像两两之间的“距离”确定所属“类”的关系。

距离函数通常采用L1范数或L2范数:

d1(I1,I2)=p|I1pI2p|

img{loading=lazy}

最近邻法训练的复杂度为O(n)(只需要“记住”所有训练样本),测试的复杂度为O(m×n),并不是很理想。

最近邻算法只依赖最近的一个数据点进行决策,saliency point 对结果影响很大,于是衍生出了k最近邻算法。

img{loading=lazy}

Train, validation and test

首先,我们需要把训练集和测试集分开;其次,我们不能用测试集来调参

训练集用于模型的训练,验证集用于模型的验证,测试集用于测试模型在接触到新的数据时的表现。

或者说,打个不太恰当的比喻,训练集是作业,验证集是模拟考试,测试集是期末考试。考完之后,就要上线部署,走上工作岗位了~

Cross-validation

如果数据集较小,可考虑将数据集分成n份,从其中选取n1份用于训练,1份用于验证

img{loading=lazy}