2.K最邻近与线性分类器

这节课讲如何进行图片分类,数据驱动的分类方式是有效的。

  • 解决了图片分类问题,其他图片问题就很好解决了
  • 传统的方式无法系统的解决图片分类问题
  • 讲解下面的算法

1.什么是图片识别

  • 给定一张图片,识别图片中的事物,例如:给一张猫的图片,要识别出这是猫


    图片识别

2.图片识别要解决的问题是什么

  • 图片在计算机中以三维数组的形式存储,每张图片都是由一对数字组成的


    问题所在

3.图片识别的挑战

  • 摄像机的角度对图片的影响


    角度
  • 光线的问题


    光线
  • 姿态的问题


    姿态
  • 遮挡问题


    遮挡
  • 背景干扰


    背景干扰
  • 不同种类


    种类

4.如何创建分类器

  • 显式编程不能解决分类问题,早期也有人尝试过
  • 数据驱动的分类器
    • 获取一个数据集,包括图片和标签
    • 使用机器学习训练一个图片分类器
    • 使用测试集评估分类器
分类器的创建

5. K最邻近分类器

5.1 最近邻算法

  • 记住训练集中所有的图片和它们的标签
  • 根据与训练集中图片的相似度预测测试图片的标签
最近邻

5.2 数据集:CIFAR-10

  • 10个标签
  • 50000个训练图片,每个图片的像素是:32*32
  • 10000个测试图片
CIFAR-10

5.3 如何比较图片,算出图片差?

  • 曼哈顿距离
  • 对应像素点差的绝对值求和
图片差
  • 数据量越大,分类速度越慢,呈线性相关
  • 训练快,测试慢
  • 近似近邻算法,可以加快训练速度

5.4 超参数

  • 距离算法:
    • 曼哈顿距离
    • 欧几里得距离
距离算法
  • k最近邻算法中的k的数值:选取k个邻近的图片来决定测试图片的标签
k的数值

5.5 如何确定最好的超参数

  • 尝试各种可能性,找到表现最好的超参数(k=1总是表现最好,但是不要选择)
  • 不要用测试集来找最好的超参数
  • 把数据集分为三部分,训练集、验证集、测试集
设置超参数
  • 可以使用交叉验证法,找到最好的超参数(用在小数据集上,深度学习一般不使用)
交叉验证

5.6 实际图片分类中,不使用k最近邻算法

  • 测试时效率太低
  • 距离算法在计算图片差异方面表现不好
  • 需要图片均匀分布在空间,是很难实现的
图片.png
图片.png

6.总结k最邻近算法

总结.png

7.线性分类器

7.1 目标

  • 创建一个函数,输入图片,输出分类
  • 函数包括输入 x,权重w ,偏移b
  • 通过训练,得到最好的w,b
model

7.2 线性分类器

  • x:转换成一个数组,32323=3072
  • w:10*3072个值,代表十个label
  • b:10个值,代表十个label
线性分类器

7.3 例子:

例子
  • w的初始值是随机生成的
  • 把所有图片和权重的计算结果,按照分类结合后生成图片
image.png
  • 图片并不能很好的表示所代表的标签

7.4 线性分类器的局限

图片.png

线性分类器是一个很简单的分类器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容