图像分类:

作业:(python代码)

1、knn

2、svm softmax

3、2层神经网络

图片分类

图像分类的不同类别数据集数量差别大 图像分类方法比较_交叉验证

从以往经验来看目标需要在整个图像的中间,尽量占据较大的空间。

图像分类面对的挑战:

1、光照

2、物体形变

3、遮挡

4、目标和背景混淆

5、多个种类(外观有些许不同)

对于现在的机器学习的方法:

1、收集数据集

2、使用机器学习的方法训练分类器

3、通过测试集测试分类器的效果

k临近算法:

简而言之就是比较两个图像的相似度

图像分类的不同类别数据集数量差别大 图像分类方法比较_相似度_02

从上图可以看出使用L1距离来表示两个图像的相似度。对于每一个测试图片通过与"训练集"相比较,找到L1最小的K个训练数据,投票选取测试数据的label。

当然距离也可以选择L2欧氏距离。

下图是选择不同的k值的分类效果。

图像分类的不同类别数据集数量差别大 图像分类方法比较_相似度_03

可以看出当k增加时(k = 5)分类的边缘区域变得光滑。

在这里距离的选择(L1 或者L2)、K值的选择都可以看作是超参数。而超参数对于结果的影响与数据有关。所以可以通过交叉验证来选择超参数。

而对于训练数据和测试数据的选择,可以将原始的数据分为多份,使用多次交叉验证,结果取平均。

图像分类的不同类别数据集数量差别大 图像分类方法比较_交叉验证_04

K临近算法局限:

1、计算量大,尤其是"训练集"比较大时,因为需要一个一个计算距离。

2、如果原始图像平移,调整亮度,那效果就会比较差。如下图:四张图片都具有相同的L2距离。

图像分类的不同类别数据集数量差别大 图像分类方法比较_相似度_05

线性分类器(参数优化方法):

在该方法中,通过一个函数去完成分类。训练的过程是通过调整参数,使得分类预测接近真实标签。

图像分类的不同类别数据集数量差别大 图像分类方法比较_相似度_06

那权重w究竟是什么:

通过可视化可以看出权重文件的值和图片的内容类似(相当于将源文件图抽象)。

图像分类的不同类别数据集数量差别大 图像分类方法比较_数据_07

以上已经通过线性拟合的方式确定了输出值,但是如何评价输出的结果如何?-----loss

将输出的值和label值相比较再通过loss归一化为一个明显的数值,这样我们就知道结果究竟好不好了。