CS231n-2017 Lecture2图像分类笔记

图像分类问题

定义:

在已有固定的分类标签集合的前提下,能够对输入的图像进行识别处理,从集合中找到该图像所对应的标签。

对于计算机而言,图像并非直观的图像,而是一个n\times m的像素集合,对于每个像素,其又有RBG三个颜色通道。因此,一张图片可以被认为是一个n \times m \times 3 的三维数组,数组内每个元素都是在[0,255] 范围内的整型。而计算机图像分类的任务,就是将这样的一个三维数组映射到其对应的标签上

困难点:

Viewpoint variation:对于同一个物体,图片可能从多个角度来展现

Scale variation:由于摄影距离的远近、物体尺寸大小不同,物体的可视大小通常是变化的

Deformation:同一个物体可能以不同的形态出现,会发生形变

Occlusion:目标物体可能会被无关物体挡住,只有部分可见

Illumination conditions:光照会极大程度地影响同一个形状物品的RGB值

Background clutter:物体可能会混入背景中,难以被分辨

Intra-class variation:同一类物体的外观差异可能也会较大

流程:

1.输入:输入是包含N个图像的集合,每个图像的标签是K种标签的一种,我们把这个图像集合成为训练集

2.模型学习/训练分类器:使用训练集来学习每个标签具体长什么样

3.评价:使用分类器来给其从未见过的图像打标签,并以此正确率来评价分类器

Nearest Neighbor分类器

原理:

对于输入的图像,我们将其与训练集中的所有图像进行差异比较,找到与输入图像差异最小的图像,并将这个图像的标签作为输入图像的标签

差异的量化:

假设我们需要比较图片p_1 和图片p_2,则我们先将这个两个三维数组分别展开成为向量I_1 和 I_2 ,然后将这两个向量的L1距离作为差异的量化标准,即

d_1(I_1,I_2) = \sum_p|I_1^p-I_2^p|

即将两个向量每对元素的差的绝对值求和

我们也可以选择L2距离作为量化的标准,即

d_2(I_1,I_2) = \sqrt{\sum_p(I_1^p-I_2^p)^2} 

L1与L2距离的使用情景其实并没有区分的很清楚,更多的是要实际去尝试哪个更好

缺点:

每次对输入图像进行预测时,如果图片的尺寸很大,像素很多(称为高维数据),则需要耗费大量的时间进行比较,这对使用带来了极大的不便,虽然这种缺点可以通过PCA降维的方法进行弥补(但PCA也只能够提取线性相关的主成分)。再者,仅通过像素来比较图像之间的差异是完全不够的,这更像是对图片按颜色分布进行分类,而不是按照图片的语义来进行分类

K-Nearest Neighbor分类器

对于上述的Nearest Neighbor分类器而言,只选1个最相近的图片可能会出现较大偏差,因此,我们可以选择k个最相近的图片,然后再在这k个图片中选出频数最高的标签作为输入图像的标签

优点:

选取更高的k值,可以使得分类的决策边界(在选取差异最小的图片的时候,相当于是寻找输入图片应当落入哪片合适的分类标签区间)更加平滑,对于异常点的处理能力更强,使得分类器针对测试数据的泛化(generalization)能力更好

但K-Nearest Neighbor分类器会存在一些空白区间,它不属于任何分类标签,这是由于这些区间内的点到多种标签的频数相同导致的

Hyperparameter:

对于上文提到的K-Nearest Neighbor分类器,其中出现了k这个参数,而这个参数是我们人为提前预设好的,不同的k值会影响分类器的正确率,以及对差异量化的距离函数的选择,是L1距离还是L2距离,都会影响分类器的性能。所有这些选择,被称为超参数(Hyperparameter)

超参数调优与验证集(validation set):

想要找到使分类器性能最好的超参数,通常的办法就是在一定范围内尝试多个不同的超参数的值,并验证它的好坏,那么关键问题就是如何去评价一个超参数的好坏

做法:

将数据集合分为三部分,分别是训练集(training set),验证集(validation set),和测试集(test set)

在训练时,我们使用training set进行训练,并使用validation set来对超参数进行调优,找到最合适的超参数,然后使用test set来检验分类器的最终性能,这样可以有效减少模型对训练集、验证集的过拟合现象

交叉验证:

当训练集数量较少时,(通常不用于深度学习),我们将训练集分为n份,第i轮训练时,我们按顺序地选取其第i份作为validation set,剩下的n-1份作为training set,来得到验证结果i,最后取i次验证结果的平均值作为模型的评价

优点是能够使用少量数据进行训练,缺点是会耗费大量的计算资源,因为需要训练的轮数变得很多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89880.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Typecho博客Ajax评论功能实现全攻略

文章目录 Typecho实现Ajax评论功能的完整指南 引言 一、技术选型与准备工作 1.1 技术栈分析 1.2 环境准备 二、前端实现方案 2.1 基础HTML结构 2.2 JavaScript处理逻辑 三、后端处理实现 3.1 创建插件处理Ajax请求 3.2 错误处理增强 四、安全性考虑 4.1 CSRF防护 4.2 输入过滤 …

【计算机考研(408)- 数据结构】树与二叉树

树与二叉树 树的定义及相关概念 树是n(n≥0)个结点的有限集合,n 0时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足: 1)有且仅有一个特定的称为根的结点。 2)当n > 1时…

MacOS:如何利用终端来操作用户

MacOS:如何利用终端来操作用户MacOS:如何利用终端来操作用户1. 创建用户并赋予管理员权限步骤:2. 取消用户的管理员权限解释:3. 查看组成员查看 admin 组成员:查看 users 组成员:4. 其他常见的用户管理命令…

基于SpringBoot+MyBatis+MySQL+VUE实现的医疗挂号管理系统(附源码+数据库+毕业论文+答辩PPT+项目部署视频教程+项目所需软件工具)

摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对医疗挂号信息管理的提升&#x…

学成在线项目

黑马程序员学成在线项目学习过程记录 解决跨域问题

Shell脚本-grep工具

一、前言在 Linux/Unix 系统中,grep 是一个非常强大且常用的文本搜索工具,它可以帮助我们快速从文件或标准输入中查找匹配特定模式的内容。无论是查看日志、调试脚本,还是进行自动化数据提取,grep 都扮演着至关重要的角色。本文将…

深入解析Ext2文件系统架构

要在硬盘上存储文件,必须先将硬盘格式化为特定类型的文件系统。文件系统的主要功能就是组织和管硬盘中的文件。在Linux系统中,最常见的文件系统是Ext2系列,其早期版本为Ext2,后续又发展出Ext3和Ext4。虽然Ext3和Ext4对Ext2进行了功…

商业秘密保护:从法律理论到企业实战

作者:邱戈龙、柯坚豪深圳商业秘密律师广东长昊律师事务所在商业竞争中,商业秘密就像企业的"隐形护城河"。从法律角度看,它的保护路径经历了三次重要升级:从最初的"合同约定"到后来的"财产保护"&…

AI产品经理面试宝典第36天:AI+旅游以及行业痛点相关面试题的指导

一、AI如何解决旅游行业核心痛点? 面试官提问: "请结合具体案例说明AI在旅游行业的应用价值,以及它如何解决传统旅游服务的痛点?" 你的回答: 以腾讯"一部手机游云南"为例,AI技术通过四大核心体系重构旅游体验: 数字身份体系:通过人脸识别与用户…

【conda】Linux系统中部署Conda环境

目录 一、安装 Miniconda 1.1 下载 Miniconda 安装脚本 1.2 运行安装脚本 1.3 初始化 Conda: 安装完成后,初始化 Conda 环境 1.4 验证安装 二、设置虚拟环境默认存放路径(可选) 三、conda创建虚拟环境 3.1 创建 Conda 环境…

Spring Boot 解决跨域问题

在 Spring Boot 中解决跨域问题(CORS)主要有三种常用方式,下面详细说明每种实现方法: 方案一:全局配置(推荐) 在配置类中实现 WebMvcConfigurer 接口,统一配置所有接口的跨域规则&am…

Softhub软件下载站实战开发(十九):软件信息展示

上一篇文章中我们上线了软件分离展示&#xff0c;本篇文章我们聚焦软件信息展示 软件列表信息展示 点击一级分类查询该分类下所以软件分类切换要有动画效果分页支持 核心实现 <transition-grouptag"div"class"software-grid"before-enter"before…

[HDLBits] Cs450/gshare

Branch direction predictor 分支方向预测器 A branch direction predictor generates taken/not-taken predictions of the direction of conditional branch instructions. It sits near the front of the processor pipeline, and is responsible for directing instructio…

[学习] 双边带调制 (DSB) 与单边带调制 (SSB) 深度对比

双边带调制 (DSB) 与单边带调制 (SSB) 深度对比 文章目录双边带调制 (DSB) 与单边带调制 (SSB) 深度对比**数学原理****调制表达式与频谱****时域特性****频域特性****Python 仿真代码****仿真结果分析****工程应用建议**数学原理 设基带信号为 m(t)m(t)m(t)&#xff08;带宽为…

Gitee 提交信息的规范

在使用 git push 命令将代码推送到 Gitee&#xff08;或任何 Git 平台&#xff09;时&#xff0c;引号中的信息通常指的是 提交信息&#xff08;Commit Message&#xff09;。提交信息是对本次代码修改的简要描述&#xff0c;规范的提交信息有助于团队协作和版本管理。 Gitee 提…

C 语言经典编程题实战:从基础算法到趣味问题全解析

在 C 语言学习过程中&#xff0c;通过实战编程题巩固知识点是非常有效的方式。本文整理了一系列经典 C 语言编程题&#xff0c;涵盖基础计算、逻辑判断、图形打印等多个维度&#xff0c;并附上完整代码与解析&#xff0c;适合初学者参考学习上机题1.计算n以内所有正奇数的和 ?…

Chapter 3 Design of Switching Power Regulators

Chapter 3 Design of Switching Power Regulators Power Management Techniques for Integrated Circuit Design by Ke-Horng Chen 这本书比较深, 简单介绍基本概念后, 就直接抛出大段公式和结论, 一章讲其他书几章内容, 适合有一定基础, 想进一步做电源系统的人查阅. 优点是不…

算法题(176):three states

审题&#xff1a; 本题需要我们找到最佳铺设道路&#xff0c;将三个国家联通起来&#xff0c;然后输出最佳铺设道路的铺设数量&#xff0c;若没有联通方法则输出-1 思路&#xff1a; 首先我们正面思考&#xff1a;只需从某个点出发然后搜索到三个国家即可&#xff0c;最后对比所…

BIOS+MBR微内核加载loader程序实现过程

上一篇讲到的微内核程序是由BIOS例程自动加载到内存中运行的,而且大小有限,能做的事情有限。我们知道内核程序大小是可以扩展的不能只有512字节,同时在加载运行内核前还需要完成一些必要的实模式下才能做的准备工作。所以单纯在实模式下只使用微内核程序是不太够的,就有了加…

使用Proxy设计模式来增强类的功能:ToastProxy和DesktopToast的设计关系

使用代理模式来增强类的功能&#xff1a;ToastProxy和DesktopToast Documentation: v1.0.0 Specified for Version v1.12.0&#xff0c;First Release in 2025/7/12 Documenation belongs to Projects: Charliechen114514/CCIMXDesktop: This is a Simple Desktop with Common …