Lecture 2: Image Classification
Image Classification
问题: Semantic Gap(语义鸿沟)(图像由大量的数组成)
挑战:
1.Viewpoint variation(视点变化)
2.Background Clutter(背景杂波)
3.Illumination(亮度)
4.Occlusion(封闭环境)
5.Deformation(变形)
6. Intraclass variation(同组变形)
机器学习:数据驱动的方法
1.获取数据集
2.训练一个分类器
3.在新图像上评价分类器
Nearest Neighbor Classifier
KNN算法核心思想:
1.训练:获取数据集
2.测试:得到测试图像与数据集各个图像的距离矩阵,根据不同的计算方法,得到距离,取前k个距离最近的点,统计出现次数最多的标签(若出现次数相同,则取下标值小的点)。
距离计算方法:
这两种计算方法适用于不同的情景。
k值的不同也会导致分类结果的不同。
为了获取良好的超参数,需要对数据集进行处理。
将数据集分为三部分,train,validation,test。
test的使用避免了k = 1,train效果最好的情况,即数据足够多的情况下,k = 1是最好的。
validation则可以确定算法的好坏。
train和validation可以看做是一部分,在这一部分中采用交叉验证的方法。
即先用train和validation的数据进行测试,确定最佳k值,之后再用test进行测试,判断超参数的优越性。
用像素距离的KNN算法是从未使用的,原因如下:
1.像素距离矩阵判断失误多
2.多维度计算量大
Linear Classifier
如字面意思,线性分类器的边界一定是线性的,而KNN不一定。
假设有10种类别,线性分类使用函数f(x,W)(W为权重,x为输入数据),得到10种类别对应的分数,根据分数选择最佳类别。
函数体现了线性特征,即f = Wx + b
如图
注意每一种类别都对应着一组权重,如图10种类别,每个类别都有3072个权重。
分析结果如图:
对于线性分类,有很多难以解决的问题。以二分类为例,以下是二分类无法解决的: