斯坦福CS231n深度学习与计算机视觉课程学习笔记(2)——Image Classification

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lqzdreamer/article/details/79565609
图片分类存在的挑战:
1.相机视角的不同
2.光照强度的不同
3.物体的姿态和位置
4.只看到物体的一部分
5.物体与背景的差别难以区分
6.多个类似的物体,但存在差别,难以区分

Data—Driven Approach:
1.获取图片和标签
2.使用机器学习训练分类器
3.对新图片评价分类效果

【最近邻分类】
最近邻分类:
分类器的工作方式是高效的得到本联合训练集。在一段训练时间内,我们只需记住所有的训练数据,所以我们得到了 我们刚刚输入的全部训练数据,并且我们记住了他们。现在当你给我们一张测试图像时,我们要做额就是对测试图像和之前看过得每一张训练集中的图像进行一一对比,然后我们会传送相应的标签。

定义距离进行比较
L1(曼哈顿距离)


测试图片-训练图片
将逐元素比较,所有的像素值,形成绝对值的差,然后我们将差值全部相加。就是说只要观察每一个像素的位置,得到同一个空间位置的像素差,将其全部相加就得到了相似性。

训练的速度很快,但是测试速度非常慢!
 
【KNN 分类】

 检查每一张测试图像,事实上,单一邻近的训练实例 将检索几个最邻近的实例,我们将它们在所有的类中做多数的表决,从而对每一个测试实例进行分类。当K值变大,会发现边界变得平滑。  对于K值的选择是一个超参数 ,采用了不同的测量标准,效果最好的便是我们所需要的。如果数据过少,可以使用交叉验证法,在选择中反复选择测试验证折,在所有可能的测试折的选择中选出效果最好的。但是KNN很少被采用的原因是效率低。

L1和L2哪个好,没有明确的方法,具体问题具体分析,不断尝试

超参数的设置:
将data分为三部分:训练、验证集(validation),测试数据


交叉验证:以确保超参数在实际测试的时,拥有更好的稳定性。


通过对数据分为M组验证数据,将设置的超参数在这些验证组数据上表现出来,可以看出算法 效果的分布。在机器学习的研究最后,都应该绘制这,这样一幅交叉验证的图

,分析算法表现与各个超参数之间的关系最后挑选一幅在验证集上表现最好的及相应的超参数(距离描述和K的选择是超参数)。

KNN在图像上从未使用过,因为:
1.测试很慢
2.利用L1和L2进行距离测量不适合描述图片的相似度,不适合描述图片在视觉感知上的差异
3.维数灾难,

【线性分类器】

分类器的权重矩阵其实是对应分类的经过训练得到的一个分类模板,通过测试数据与分类模板间的数据计算来进行分类。在训练的过程中,其实可以看作是权重矩阵的学习过程,也可以看成是分类模板的学习过程,如何从训练样本中学习分类的模板。模板权重的大小,反映了样本中每个像素点对分类的贡献率。
  

在图片中,下方显示的即是训练过后所学习的权重矩阵(也即是分类模板)。


线性分类器所无法分类的情况:
1.类似于“异或”分类
2.条带状的类别

3.非线性的分类


猜你喜欢

转载自blog.csdn.net/lqzdreamer/article/details/79565609
今日推荐