这节课讲如何进行图片分类,数据驱动的分类方式是有效的。
- 解决了图片分类问题,其他图片问题就很好解决了
- 传统的方式无法系统的解决图片分类问题
- 讲解下面的算法
1.什么是图片识别
-
给定一张图片,识别图片中的事物,例如:给一张猫的图片,要识别出这是猫
图片识别
2.图片识别要解决的问题是什么
-
图片在计算机中以三维数组的形式存储,每张图片都是由一对数字组成的
问题所在
3.图片识别的挑战
-
摄像机的角度对图片的影响
角度 -
光线的问题
光线 -
姿态的问题
姿态 -
遮挡问题
遮挡 -
背景干扰
背景干扰 -
不同种类
种类
4.如何创建分类器
- 显式编程不能解决分类问题,早期也有人尝试过
- 数据驱动的分类器
- 获取一个数据集,包括图片和标签
- 使用机器学习训练一个图片分类器
- 使用测试集评估分类器
5. K最邻近分类器
5.1 最近邻算法
- 记住训练集中所有的图片和它们的标签
- 根据与训练集中图片的相似度预测测试图片的标签
5.2 数据集:CIFAR-10
- 10个标签
- 50000个训练图片,每个图片的像素是:32*32
- 10000个测试图片
5.3 如何比较图片,算出图片差?
- 曼哈顿距离
- 对应像素点差的绝对值求和
- 数据量越大,分类速度越慢,呈线性相关
- 训练快,测试慢
- 近似近邻算法,可以加快训练速度
5.4 超参数
- 距离算法:
- 曼哈顿距离
- 欧几里得距离
- k最近邻算法中的k的数值:选取k个邻近的图片来决定测试图片的标签
5.5 如何确定最好的超参数
- 尝试各种可能性,找到表现最好的超参数(k=1总是表现最好,但是不要选择)
- 不要用测试集来找最好的超参数
- 把数据集分为三部分,训练集、验证集、测试集
- 可以使用交叉验证法,找到最好的超参数(用在小数据集上,深度学习一般不使用)
5.6 实际图片分类中,不使用k最近邻算法
- 测试时效率太低
- 距离算法在计算图片差异方面表现不好
- 需要图片均匀分布在空间,是很难实现的
6.总结k最邻近算法
总结.png7.线性分类器
7.1 目标
- 创建一个函数,输入图片,输出分类
- 函数包括输入 x,权重w ,偏移b
- 通过训练,得到最好的w,b
7.2 线性分类器
- x:转换成一个数组,32323=3072
- w:10*3072个值,代表十个label
- b:10个值,代表十个label
7.3 例子:
例子- w的初始值是随机生成的
- 把所有图片和权重的计算结果,按照分类结合后生成图片
- 图片并不能很好的表示所代表的标签
7.4 线性分类器的局限
图片.png线性分类器是一个很简单的分类器
网友评论