您的位置:首页 > 其它

斯坦福CS231n - CNN for Visual Recognition(1)-lecture2图像分类、最近邻分类器

2016-11-23 14:11 239 查看
本节主要简单介绍了图像分类和流程,讲解了最近邻分类器的原理以及超参数的的调优与交叉验证

图像分类

  顾名思义,就是给定一个图像,判断出它属于哪一个类。通常通过带有标签的数据作为训练集用各种方法进行训练, 然后在测试集上进行测试,预测出最可能的类别(标签)。

  图像分类面临的困难:视角变化、大小变化、形变、遮挡、光照条件、背景干扰、类内差异等

  图像分类流程:输入->学习->评价

最近邻分类器

  NN分类器的原理非常简单。针对图像分类来说,就是将给定的图像与带标签的图像逐个像素进行比较,选取距离最小图像的标签作为给定图像类别的预测,这里可以计算L1距离和L2距离。

  L1距离公式(绝对值相加) : d1(I1,I2)=∑p|Ip1−Ip2|

  L2距离公式(欧氏距离): d2(I1,I2)=∑p(Ip1−Ip2)2−−−−−−−−−−√

1. K近邻分类器

  顾名思义,就是选取距离最小的K个图像,将数量最多的标签作为给定图像类别的预测。

KNN优缺点

(1)优点:

  算法简单,易于理解,易于实现,不需要参数估计,不需要事先训练。

(2)缺点:

  测试需要计算量特别大(实际中关注测试效率远远大于训练效率),训练样本必须存储在本地,内存开销也特别大。

  

  实际中在图像分类中很少使用KNN,因为KNN实质是比较像素的差异,导致图像更多的是按照背景和颜色被分类。

2. 用于超参数调优的验证集

  当我们在设计机器学习算法的时候,除了最终预测的时候使用测试集,其他时候都不能使用(很容易造成过拟合)。我们可以在训练集中分出一部分(50%~90%)作为验证集,在验证集上进行超参数调优。一旦找到最优的超参数,就让算法以该参数在测试集跑且只跑一次,并根据测试结果评价算法。

3. 交叉验证

  当训练集数量较少时,我们一般使用交叉验证的方式(一般分为3、5、10份),比如:将训练集平均分成5份,其中4份用来训练,1份用来验证。然后我们循环着取其中4份来训练,其中1份来验证,最后取所有5次验证结果的平均值作为算法验证结果。



参考资料

链接:http://cs231n.github.io/classification/

链接:https://zhuanlan.zhihu.com/p/20894041?refer=intelligentunit

   https://zhuanlan.zhihu.com/p/20900216?refer=intelligentunit

链接:http://blog.csdn.net/han_xiaoyang/article/details/49949535
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐