这是一节导论课用来给不懂计算机视觉的人介绍图像分类问题,还有数据驱动的方法,内容的目录在下面
图像分类
动机
在这个部分我们将介绍图像分类问题,指定一个输入图像与之对应的固定类标签,这是计算机视觉里的一个核心问题,它有很多的不同的实际应用,尽管它非常简单,而且,我们将要看到的课程,很多看起来不同的计算机视觉的任务(例如目标检测,分割)都能简化成图像分类。
例子
举个例子,在图像分类模型中,一个图像可以指定四个可能的标签(猫, 狗, 帽子, 杯子)。在下面的显示的图片,图片被表示为3纬的大数组数字,在这个例子中,这个猫图有248像素宽,400像素高,有三种颜色通道,红绿蓝也可以简写为RGB,因此,这个图片由248*400*3个数组成,总共297600个数字,每一个数字都是一个整数,从0(黑)到255(白)。我们的任务是把1/4百万个数转变成一个标签,就像“猫”
图片分类的任务是预测一个单一的标签,或者关于标签的分布来指导我们的信心对于一个给定的图像,图片是三维数组的从0到255的整数,大小事长*宽*3,这个3代表了3中颜色通道,红,绿,蓝挑战
尽管识别视觉概念(像一只猫)这样的人物对于人来说相对比较容易执行,但是从计算机算法的方面来说涉及了很大的挑战。我们展示一个(不完全的)列表挑战。注意图像的展示作为一个3D数组高亮值:
视觉变化:一个例子就是目标随着照相机的角度能被定位在很多方式。
比例变化:视觉类经常能展示变化在它们大小上(现实世界中的大小,不仅仅是图像中的范围)
变形:
封闭:
光照条件:
背景杂乱:
类的变化:
一个好的图像分类模型
数据驱动的方法:给它很多数据,让它自己学
照片分类途径:
输入:
学习:
评估:
Nearest Neighbor Classifier(最近邻分类器)
图像分类器数据集:CIFAR-10
L1 distance: d1(I1, I2) = Σp |Ip1-Ip2|
距离的选择 the choice of distance
distance = np.sqrt(np.sum(np.square(self.Xtr - X[i,:]),) axis = 1)L1 vs L2
K近邻分类器
K近邻思想特别简单:我们来找离它最近的K个点来代替一个点,然后投票
在验证集上调超参
测试机不能随便用
Evaluate on the test set only a single time, at the very end.
Split your training set into training set and a validation set. Use validation set to tune all hyperparameters. At the end run a single time on the test set and report performance.
交叉验证 Cross-validation
大约最近邻算法 Approximate Nearest Neighbor (ANN)
总结
1 介绍图片分类
2 介绍最近邻算法
3 验证集
4 交叉验证
4 评估
5 最近邻算法的缺点
总结:在练习中应用KNN
建议 1 预处理数据
网友评论