图片分类任务

计算机视觉的核心任务

挑战

计算机看到的是像素数值,如 800×600×3的数据,当一只猫图片的时候,像素值也会变化
如背景影响、光照、形变、遮挡等
在这里插入图片描述

机器学习

数据驱动
输入:手机图片和标签数据
学习:使用机器学习训练分类器
评测:在一张新图片上判断
在这里插入图片描述

最近邻算法(KNN)

训练过程:记忆训练数据
测试过程:对每一张测试图片,找到最邻近的训练图片,读取其标签

复杂度

对于n张图片,训练复杂度为O(1),测试复杂度为O(N),因为训练即为记忆所有训练图片,而对于每一张测试图片,需要遍历所有数据来比较远近
这是不好的,因为我们想要测试时更快

距离度量

在这里插入图片描述
L1 曼哈顿距离
L2 欧几里得距离
在这里插入图片描述

超参

超参即为我们设置,而非学习中学得的变量
这里超参有 K 值,选择哪种距离

我们必须试一试,看哪种超参最有效

在这里插入图片描述
想法一:选择在数据集上最好的超参 缺点:K=1时在训练集上总是完美
想法二:数据集分类训练集测试集,选择在测试集上最好的 缺点:在测试集上最好了,但是我们不知道再找一些新数据怎么样
想法三:将数据分类训练集(train),验证集(val),测试集(test),选择在测试集上更好的
在这里插入图片描述
想法四:cross-validation
将数据分为几折,将每一折当做验证集,取结果的平均 对于小数据很有效,但在深度学习中应用较少

最后验证:
在这里插入图片描述
该图中,横坐标为K值,纵坐标为精度,每一个K值有四个点,表示四折的验证结果,折线取了平均

应用

但是KNN在图片分类上未被采纳
原因:
一:测试时间太慢
二:像素上的距离度量不能提供信息
在这里插入图片描述
图片不一样,距离算出来仍可能一样

三:维数灾难
在这里插入图片描述

线性分类

参数化方法
在这里插入图片描述
在这里插入图片描述
数据集10类,每张图片 32×32×3

在这里插入图片描述
输入一张图片的像素矩阵,经过函数,得到10类对应的10个分数
X一维化(32×32×3=3072)为3072×1(行列)的矩阵,要得10行1列的分数向量,W需 10×3072,再加上10×1的b偏置减小误差
在这里插入图片描述
如一个4像素的图片,共3类
在这里插入图片描述

如何找到一个好的W

损失函数 量化拥有一个“好”W意味着什么
优化 以一个随机W开始,找到一个W来减少损失

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐