神经网络与深度学习——图片分类(CS231n)
图片分类任务计算机视觉的核心任务挑战计算机看到的是像素数值,如 800×600×3的数据,当一只猫图片的时候,像素值也会变化如背景影响、光照、形变、遮挡等机器学习数据驱动输入:手机图片和标签数据学习:使用机器学习训练分类器评测:在一张新图片上判断最近邻算法(KNN)训练过程:记忆训练数据测试过程:对每一张测试图片,找到最邻近的训练图片,读取其标签复杂度对于n张图片,...
图片分类任务
计算机视觉的核心任务
挑战
计算机看到的是像素数值,如 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来减少损失
更多推荐
所有评论(0)