课时4 数据驱动的图像分类:K最邻与线性分类器(上)

图像分类之前,我们需要将图片转换成一张巨大的数字表单,然后从所有种类中,给这个表单选定一个标签。

为什么分类问题是个困难的问题:图像分类难点是,当你想要处理这表单中数以百万计的数字并对其进行分类,这个问题是相当的复杂的,另外,相机是可以进行旋转和缩放的,并且旋转、平移、聚焦点选取等操作都会让图片样式不同。再考虑下相机高度的调整,这些所有的相机调整会使图片看起来完全不一样,我们对所有这些调整都具有鲁棒性;还有一些其他的挑战,例如光纤问题,我们对干扰也要具有强健的鲁棒性;还有形变的问题,也要对这种干扰具有鲁棒性;还有遮蔽的问题,有时候我们不能看到物体的全貌;背景杂斑问题,要检测的物体可能融入背景之中;同类演变问题。任何一个独立的问题都是十分复杂的。

我们构建一个三维空间,将x轴上的值定为种类标签值(没有任何一种显式的编程方法能实现这样的分类器),有一种算法例如排序算法能够实现这样的分类器。

近邻算法分类器

近邻算法:分类器的工作方式是高效的得到本联合训练集。在一段训练时间内,我们只需记住所有的训练数据,所以我们得到了 我们刚刚输入的全部训练数据,并且我们记住了他们。现在当你给我们一张测试图像时,我们要做额就是对测试图像和之前看过得每一张训练集中的图像进行一一对比,然后我们会传送相应的标签。

我们要如何定义距离的度量

其中最简单的方式可能就是曼哈顿距离算法,L1距离算法,该算法的内容是你有一个测试图像,认为我们需要一个单一的训练图像来比较该图像,基本上我们需要做的就是我们将逐元素比较,所有的像素值,形成绝对值的差,然后我们将差值全部相加。就是说只要观察每一个像素的位置,得到同一个空间位置的像素差,将其全部相加就得到了相似性。

欧式距离(L2距离)不是计算绝对值差的和,而是计算这些图像间差值的平方和。一个用来进行控制的离散选择,这个距离的选择我们称为超参数

对于近邻算法分类器有一个问题

他的速度如何取决于训练数据的大小?当训练数据的规模增大时将会发生什么?会变慢吗?是的,事实上他减慢的速度是线性的。因为我们只是独立地比较每一个训练样本,所以他会线性地减慢。

近邻算法是一个即时的训练方法,但同时他又是一个昂贵的测试方法,不管你的训练集有多大,我们对于每一张测试实例进行分类的计算量都将是恒定的。

能使近邻算法分类器速度加快的方法:近似近邻算法。

最邻近规则分类器KNN:检查每一张测试图像,事实上,单一邻近的训练实例 将检索几个最邻近的实例,我们将它们在所有的类中做多数的表决,从而对每一个测试实例进行分类。当K值变大,会发现边界变得平滑。  对于K值的选择是一个超参数 ,采用了不同的测量标准,效果最好的便是我所需要的。如果数据过少,可以使用交叉验证法,在选择中反复选择测试验证折,在所有可能的测试折的选择中选出效果最好的。但是KNN很少被采用的原因是效率低。

不同的方法会有不同的泛化方式

卷积神经网络CNN可用于机器视觉,循环神经网络RNN非常适用于排序问题。

斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时4的更多相关文章

  1. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时3

    课时3 计算机视觉历史回顾与介绍下 ImageNet有5000万张图片,全部都是人工清洗过得,标注了超过2万个分类. CS231n将聚焦于视觉识别问题,图像分类关注的是大图整体:物体检测告诉你东西具体 ...

  2. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时1

    课时1 计算机视觉历史回顾与介绍上 CS231n:这一一门关于计算机视觉的课程,基于一种专用的模型架构,叫做神经网络(更细一点说,是卷积神经网络CNN).计算机视觉是人工智能领域中发展最为迅猛的一个分 ...

  3. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时26&&27

    课时26 图像分割与注意力模型(上) 语义分割:我们有输入图像和固定的几个图像分类,任务是我们想要输入一个图像,然后我们要标记每个像素所属的标签为固定数据类中的一个 使用卷积神经,网络为每个小区块进行 ...

  4. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时24&&25

    课时24 深度学习开源库使用介绍(上) Caffe 被用于重新实现AlexNet,然后用AlexNet的特征来解决其他事情 用C++书写的,可以去GitHub上面读取源代码 主要四个类: Blob可以 ...

  5. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时8&&9

    课时8 反向传播与神经网络初步(上) 反向传播在运算连路中,这是一种通过链式法则来进行递推的计算过程,这个链路中的每一个中间变量都会对最终的损失函数产生影响. 链式法则通常包含两部分,局部梯度和后一层 ...

  6. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时12&&13

    课时12 神经网络训练细节part2(上) 训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样.然后我们 ...

  7. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时11

    课时11 神经网络训练细节part1(下) 2010年,Glorot等人写的论文,我们称之为Xavier初始化,他们关注了神经元的方差表达式.他们推荐一种初始化方式,那就是对每个神经元的输入进行开根号 ...

  8. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时10

    课时10 神经网络训练细节part1(上) 没有大量的数据也不会有太多影响,只需要找一个经过预训练的卷积神经网络然后进行调整 从数据集中抽样一小批数据, 将数据运入卷积神经网络中来计算损失值 通过反向 ...

  9. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时7

    课时7 线性分类器损失函数与最优化(下) 我们为什么要最大化对数概率而非直接最大化概率? 你在做逻辑斯蒂回归时,如果你只是想要最大化概率,那你使用log是无意义的.因为log函数是单调函数,最大化概率 ...

  10. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时14&&15

    课时14 卷积神经网络详解(上) CNN处理的是一些数据块,在这之间有很多层,一系列的层将输入数据变换为输出数据,所以完成操作的中间量不仅是NN时候讲的那些向量,而是立体结构,有宽,高和深度,在整个计 ...

随机推荐

  1. Android应用开发 WebView与服务器端的Js交互

    最近公司再添加功能的时候,有一部分功能是用的html,在一个浏览器或webview中展示出html即可.当然在这里我们当然用webview控件喽 WebApp的好处: 在应用里嵌套web的好处有这么几 ...

  2. 如何通过SQL注入获取服务器本地文件

    写在前面的话 SQL注入可以称得上是最臭名昭著的安全漏洞了,而SQL注入漏洞也已经给整个网络世界造成了巨大的破坏.针对SQL漏洞,研究人员也已经开发出了多种不同的利用技术来实施攻击,包括非法访问存储在 ...

  3. insserv: warning: script 'lampp' missing LSB tags and overrides

    https://ubuntuforums.org/showthread.php?t=2327011 1.方法一,编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚 ...

  4. SolidEdge如何绘制阵列之后取消掉某一些

    在最后一步点击"抑制事件",然后可以在被阵列的圆形上单击,被抑制的圆形变成灰色                    

  5. C#获取电脑的相关信息

    /* 创建者:菜刀居士的博客  * 创建日期: 2014年08月31号  * 功能:获取电脑的相关信息  *  */ namespace Net.String.ConsoleApplication { ...

  6. mvc5新特性RouteAttribute特征路由

    mvc5新特性RouteAttribute特征路由,本文讲述如何开启mvc5的RouteAttribute路由功能并附上一个实例说明RouteAttribute是怎么工作的 mvc5新特性RouteA ...

  7. Cocos2d-x 精灵碰撞检測(方法一)

    声明函数碰撞检測函数,两个精灵和重写update bool isCollision( CCPoint p1,CCPoint p2,int w1,int h1,int w2,int h2 ); CCSp ...

  8. Web优化 --利用css sprites降低图片请求

    sprites是鬼怪,小妖精,调皮鬼的意思,初听这个高端洋气的名字我被震慑住了,一步步掀开其面纱后发觉非常easy的东西.作用却非常大 什么是CSS Sprites CSS Sprites是指把网页中 ...

  9. 【hdu】Mayor's posters(线段树区间问题)

    须要离散化处理,线段树的区间改动问题. 须要注意的就是离散化的时候,由于给的数字是一段单位长度,所以须要特殊处理(由于线段的覆盖和点的覆盖是不一样的) 比方:(1,10)(1,4) (6,10) 离散 ...

  10. v-model指令及其修饰符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...