CS231n学习笔记1-图像分类,KNN

注:这是本人学习cs231n(即斯坦福李飞飞教授的深度学习与计算机视觉课程)的学习笔记


图像分类的难点:

CS231n学习笔记1-图像分类,KNN_第1张图片

一个新名词:数据驱动方法
我理解起来就是机器学习方法:和教小孩儿看图识物类似:给计算机很多数据,然后实现学习算法,让计算机学习到每个类的外形。这种方法,就是数据驱动方法。


图像分类流程

在课程视频中已经学习过,图像分类就是输入一个元素为像素值的数组,然后给它分配一个分类标签。完整流程如下:

  • 输入:输入是包含N个图像的集合,每个图像的标签是K种分类标签中的一种。这个集合称为训练集。
  • 学习:这一步的任务是使用训练集来学习每个类到底长什么样。一般该步骤叫做训练分类器或者学习一个模型。
  • 评价:让分类器来预测它未曾见过的图像的分类标签,并以此来评价分类器的质量。我们会把分类器预测的标签和图像真正的分类标签对比。毫无疑问,分类器预测的分类标签和图像真正的分类标签如果一致,那就是好事,这样的情况越多越好。

Nearest Neighbor分类器

  • 图像分类数据集:CIFAR-10.一个非常流行的图像分类数据集是CIFAR-10。这个数据集包含了60000张32X32的小图像。每张图像都有10种分类标签中的一种。这60000张图像被分为包含50000张图像的训练集和包含10000张图像的测试集。

其实这就是常说的KNN分类器,之前学习的时候用的是二维的点,利用训练集的标签,放入一个测试集的点去寻找最近的K个点,这K个点中属于哪一类的最多就将这个测试点归为哪一类。

这里讲的是图像的分类,假设现在我们有CIFAR-10的50000张图片(每种分类5000张)作为训练集,我们希望将余下的10000作为测试集并给他们打上标签。Nearest Neighbor算法将会拿着测试图片和训练集中每一张图片去比较,然后将它认为最相似的那个训练集图片的标签赋给这张测试图片。
那么具体如何比较两张图片呢?在本例中,就是比较32x32x3的像素块。最简单的方法就是逐个像素比较,最后将差异值全部加起来。换句话说,就是将两张图片先转化为两个向量I_1和I_2,然后计算他们的L1距离:

这里写图片描述

这里的求和是针对所有的像素。下面是整个比较流程的图例:

CS231n学习笔记1-图像分类,KNN_第2张图片


你可能感兴趣的:(CS231n学习笔记)