很多计算机视觉问题能转化为图片分类问题。
图片分类中有那些问题:
1.角度变化
2.大小变化
3.形状变化,物体不一定是刚体,有可能极端变形
4.部分遮挡
5.光照条件
6.背景杂斑
7.同一物体但是外观不同,比如椅子,可能有很多种不同的外观
图片分类问题所用到的方法一般是数据驱动的方法
NN算法:
1.训练时只是记住所有训练数据
2.分类预测时把测试数据和所有记住的数据比较,找出距离最小的那张图的标签值,即为预测值
KNN算法:
1.取K个距离最小的图片,K值越高,一般平滑效果越好,分类器对异常值的抵抗能力越强
超参数选择问题,不能使用最后的测试集来作参考,否则会出现过拟合问题,因为此时相当于把测试集作为训练集认为地调整了超参数。为解决这个问题,可以把训练集分为两部分,一部分仍然作为训练集,一部分作为验证集,把验证集的结果作为调整超参数的依据。
cross-validation用于训练数据较少的时候,将训练数据分为K份,其中(K-1)份的数据用于训练,剩下的一份数据用于验证,一共迭代K次,使每一份数据都参与过验证,最后取结果的平均值。
我们更愿意接受的结果是在训练阶段消耗较多时间,预测阶段消耗较少时间,而不是两者相反,因此,NN算法和KNN算法用于分类是不是理想的算法。
直接使用像素来计算图像间的距离是不合适的,因为受背景的影响太大。
如果能够承受计算所需消耗的时间的开支则推荐使用cross-validation,并且分成越多份越好,但这同时会使时间开支更加昂贵。