cs231n 笔记 NN&KNN

很多计算机视觉问题能转化为图片分类问题。

 

图片分类中有那些问题:

1.角度变化

2.大小变化

3.形状变化,物体不一定是刚体,有可能极端变形

4.部分遮挡

5.光照条件

6.背景杂斑

7.同一物体但是外观不同,比如椅子,可能有很多种不同的外观

 

图片分类问题所用到的方法一般是数据驱动的方法

 

NN算法:

1.训练时只是记住所有训练数据

2.分类预测时把测试数据和所有记住的数据比较,找出距离最小的那张图的标签值,即为预测值

 

KNN算法:

1.取K个距离最小的图片,K值越高,一般平滑效果越好,分类器对异常值的抵抗能力越强

 

超参数选择问题,不能使用最后的测试集来作参考,否则会出现过拟合问题,因为此时相当于把测试集作为训练集认为地调整了超参数。为解决这个问题,可以把训练集分为两部分,一部分仍然作为训练集,一部分作为验证集,把验证集的结果作为调整超参数的依据。

 

cross-validation用于训练数据较少的时候,将训练数据分为K份,其中(K-1)份的数据用于训练,剩下的一份数据用于验证,一共迭代K次,使每一份数据都参与过验证,最后取结果的平均值。

 

我们更愿意接受的结果是在训练阶段消耗较多时间,预测阶段消耗较少时间,而不是两者相反,因此,NN算法和KNN算法用于分类是不是理想的算法。

 

直接使用像素来计算图像间的距离是不合适的,因为受背景的影响太大。

 

如果能够承受计算所需消耗的时间的开支则推荐使用cross-validation,并且分成越多份越好,但这同时会使时间开支更加昂贵。

 

 

 

 

你可能感兴趣的:(机器学习,cs231n,机器学习入门,Python)