关闭

CS231n课程图像分类学习笔记

336人阅读 评论(0) 收藏 举报
分类:

教程目的:介绍图像分类方法和数据驱动方法
内容列表:

  • 图像分类、数据驱动方法和流程
  • Nearest Neighbor分类器
  • 验证集、交叉验证集和超参数调参
  • Nearest Neighbor的优劣
  • 小结:应用kNN实践

图像分类、数据驱动方法和流程

图像分类

目标:所谓图像分类问题,就是已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后把分类标签分配给该输入图像。计算机视觉领域中很多看似不同的问题(比如物体检测和分割),都可以被归结为图像分类问题。需要注意的是,对于计算机来说,图像是一个由数字组成的巨大的3维数组。在这个例子中,猫的图像大小是宽248像素,高400像素,有3个颜色通道,分别是红、绿和蓝(简称RGB)。每个数字都是在范围0-255之间的整型,其中0表示全黑,255表示全白。我们的任务就是把这些上百万的数字变成一个简单的标签,比如“猫”。

困难和挑战:

  • 视角变化(Viewpoint variation):同一个物体,摄像机可以从多个角度来展现。
  • 大小变化(Scale variation):物体可视的大小通常是会变化的(不仅是在图片中,在真实世界中大小也是变化的)。
  • 形变(Deformation):很多东西的形状并非一成不变,会有很大变化。
  • 遮挡(Occlusion):目标物体可能被挡住。有时候只有物体的一小部分(可以小到几个像素)是可见的。
  • 光照条件(Illumination conditions):在像素层面上,光照的影响非常大。
  • 背景干扰(Background clutter):物体可能混入背景之中,使之难以被辨认。
  • 类内差异(Intra-class variation):一类物体的个体之间的外形差异很大,比如椅子。这一类物体有许多不同的对象,每个都有自己的外形。

面对以上所有变化及其组合,好的图像分类模型能够在维持分类结论稳定的同时,保持对类间差异足够敏感。

数据驱动方法和流程

如何写一个图像分类的算法呢?这和写个排序算法可是大不一样。怎么写一个从图像中认出猫的算法?搞不清楚。因此,与其在代码中直接写明各类物体到底看起来是什么样的,倒不如说我们采取的方法和教小孩儿看图识物类似:给计算机很多数据,然后实现学习算法,让计算机学习到每个类的外形。这种方法,就是数据驱动方法。该方法的第一步就是收集已经做好分类标注的图片来作为训练集

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

Nearest Neighbor分类器

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

就是将两张图片先转化为两个向量I_1和I_2,然后计算他们的L1距离:

\displaystyle d_1(I_1,I_2)=\sum_p|I^p_1-I^p_2|

0
0
查看评论

神经网络六:深度学习斯坦福cs231n 课程笔记

先特此声明,本文为转载博客,原博客详见深度学习斯坦福cs231n 课程笔记。 网上有很多有关斯坦福课程cs231n的笔记,笔者也是查看了一些,选出不错的分享给广大参阅者。笔者一直想看cs231n的原视频,但还未获取资源,若有参阅者有相关资料请分享我一份,在下在此是你万分感谢! 前言 对于...
  • Bixiwen_liu
  • Bixiwen_liu
  • 2016-10-28 10:22
  • 872

看cs231n课程时记录的一些小笔记(汇总, Updating...)

以前听说cs231n课程,稍微看了看,发现讲的很不错,故而记之,只记录本人认为有用的不准备分成多个博客了,全部杂糅放在这里得了。更新方式AdaGradcache += dx ** 2 x += -learning_rate * dx/(np.sqrt(cache)+1e-7)以前的SGD之类的,都是...
  • Hungryof
  • Hungryof
  • 2017-08-24 19:56
  • 627

【deep learning】斯坦福CS231n—深度学习与计算机视觉(资料汇总)

【deep learning】斯坦福CS231n—深度学习与计算机视觉(资料汇总)
  • qq_30214939
  • qq_30214939
  • 2017-08-29 15:07
  • 299

CS231n 笔记汇总

CS231n的全称是CS231n: Convolutional Neural Networks for Visual Recognition,即面向视觉识别的卷积神经网络。该课程是斯坦福大学计算机视觉实验室推出的课程。需要注意的是,目前大家说CS231n,大都指的是2016年冬季学期(一月到三月)的...
  • hduxiejun
  • hduxiejun
  • 2016-12-11 09:55
  • 3290

深度学习:CS231n官方笔记

作者:杜客 链接:https://zhuanlan.zhihu.com/p/21930884 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 CS231n简介 CS231n的全称是CS231n: Convolutional Neural Network...
  • wangxiaopeng0329
  • wangxiaopeng0329
  • 2016-10-25 10:30
  • 2979

CS231n课程笔记--图像分类

图像分类图像分类的任务,就是对于一个给定的图像,预测它属于的那个分类标签。RGB图像是三维数组,数组元素是取值范围从0到255的整数。一些具体的分类方法数据驱动方法我们采取的这种方法和教小孩看图识物类似,就是给计算机很多数据,然后实现学习算法,让计算机学习到每个类的外形,因此该方法的第一步就是收集已...
  • second24
  • second24
  • 2017-09-29 18:19
  • 108

CS231n课程笔记翻译系列之目录汇总

知乎上CS231n课程翻译系列 翻译的笔记非常好,为了方便查看,这里把所有目录列于此,并给出链接。 Python Numpy教程(全篇) Python 基本数据类型 容器(列表, 字典, 集合, 元组) 函数 类 Numpy 数组 访问数组 数据类型 数组计算 广播 SciPy 图像操作 M...
  • NNNNNNNNNNNNY
  • NNNNNNNNNNNNY
  • 2017-01-16 20:20
  • 9137

cs231n 卷积神经网络与计算机视觉 1 基础梳理与KNN图像分类

本导论主要介绍了图像分类问题及数据驱动方法。图像分类问题 image classification图像的分类问题简单来说就是对选择一个给定label的过程。如下图: 此图片为248×400像素的图片,对电脑来说他是一个248 x 400 x 3的3维数组,其中的3代表红绿蓝三色通道(...
  • bea_tree
  • bea_tree
  • 2016-05-23 23:07
  • 2662

CS231N 卷积神经网络课程学习笔记

CS21N 是斯坦福大学教授李菲菲的课程,主要讲卷积神经网络相关内容,为了更好的记忆,整理下笔记。文中有些不对的术语和理解还请大家指正。   一、卷积神经网络的结构     传统的神经网络一般由输入,点乘,非线性变换组成,由于每一层和前一层都是全连接,网...
  • erinchen92
  • erinchen92
  • 2015-08-21 14:59
  • 2844

斯坦福CS231n Spring 2017开放全部课程视频

微信公众号机器之心文章[斯坦福CS231n Spring 2017开放全部课程视频(附大纲)]内附CS231n Spring的课程, CS231n近几年一直是计算机视觉领域和深度学习领域最为经典的课程之一。而最近刚刚结课的CS231n Spring 2017 仍由李飞飞主讲,并邀请了Goodfe...
  • snwang_miss
  • snwang_miss
  • 2017-08-13 15:51
  • 635
    个人资料
    • 访问:19080次
    • 积分:576
    • 等级:
    • 排名:千里之外
    • 原创:39篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条