Lecture1:从图像分类引出概念

news2024/11/22 17:07:54

目录

1.我们如何处理图像分配这个任务

2.图像分类远古方法----利用曼哈顿距离:L1距离

3.图像分类远古方法----利用欧几里得距离:L2距离

4.超参数 


1.我们如何处理图像分配这个任务

        我们要给计算机一张图片,让它识别出这是一只猫?

        通过我之前写的机器学习博客我们知道,系统是知道一些预定信息(标签信息)的,这些可能是狗、猫、卡车或飞机等...,计算机的工作就是根据这张图片的输入并为其分配这些固定类别标签中的一个。

        这似乎对于人类是个非常简单的问题,因为我们大脑在帮我们做这些事情,但是当计算机看到这张图片时会看到什么呢?它肯定不会得到你看到的猫的整体概念。

         计算机将图像表达为如上图一样巨大的数字网格,也就是像素,每个像素由三个数字(RGB)表示,并且很难从中提取出猫的特性,我们将这个问题成为语义鸿沟。猫的这个概念,或者猫这个标签是我们分配给这个图像的语义标签。猫的语义概念和计算机实际看到的这些像素值之间存在巨大差距。


        这是一个非常困难的问题,因为我们可以以非常细微的方式更改图片。这将导致该像素网格完全改变。        

        比如我们将相机转到另一个角度拍摄猫。我们的算法需要对此具有鲁棒性


        另外,照明、猫的喜怒都不影响猫就是猫,我们的算法需要对此具有鲁棒性

          同时,猫的“变形”、物体遮挡、背景杂乱、类内变异....这些都是机器视觉应该考虑到的问题。         

2.图像分类远古方法----利用曼哈顿距离:L1距离

         为了对比训练集和测试集,我们引入L1距离:

d_{1}(I_{1},I_{2})=\sum_{p}^{}|I_{1}^{p}-I_{2}^{p}|

        在测试时,我们将获取我们的图像,然后使用这个L1距离函数将我们的测试图像与这些训练示例中的每一个进行比较,并在训练集中找到最相似的示例。

         但是我们有如下问题:

         首先,如果我们的训练集中有N个示例,那么我们期望训练和测试的速度有多快?因为我们真的要做任何事情,训练的时间复杂度为O(1),测试的时间复杂度为O(N)。因为在测试时,我们需要将我们的测试图像与数据集中的N个训练示例中的每一个进行比较。
        但是,在实践中我们希望训练很慢,预测很快,能满足实时性,这样的方法是不可行的。

3.图像分类远古方法----利用欧几里得距离:L2距离

         为了对比训练集和测试集,我们引入L2距离:

d_2(I_{1},I_{2})=\sqrt{\sum_{p}^{}(I_{1}^{p}-I_{2}^{p})^2}

        选择不同的距离度量实际上是一个非常有趣的话题,因为不用的距离度量对你在空间中所期望的底层几何或拓扑做出不同的假设。
        其实,旋转图像是可以改变点与点之间的L1距离的坐标系,虽然改变L2距离的坐标系
并不重要,但不管你的坐标系是什么,都是一样的。也许如果你的输入特征如果你的向量中的各个条目对你的任务有一些重要的意义,那么也许L1可能更是适合,但是如果它只是某个空间中的一个通用向量并且你不知道哪些不同的元素的实际含义,那么L2可能会适合一些。

         对于k近邻算法,选择不同的距离度量产生的结果也会不一样。边界的形状实际上在两个指标之间发生了相当大的变化。因此,当您查看L1时,这些决策边界往往会遵循坐标轴。
这又是因为L1取决于我们选择的坐标系,L2并不真正关心坐标轴,它只是将边界放在它们应该自然落下的地方。 

4.超参数 

          一旦您实际尝试在实践中使用此算法,需要做出几个选择。我们讨论了选择不同的K值。我们讨论了选择不同的距离度量。问题变成,你怎么为你的问题去选择这些参数?
        所以,这些选择,比如K和距离度量,我们称之为超参数。因为它们不一定是从训练数据中去学习的,而是你提前做出的关于你的算法的选择。
        选择超参数的基准:

        ①为训练数据提供最佳准确性或最佳性能(会有过拟合现象,不推荐)
        ②将数据分为训练集和测试集,选择在测试集上运行好的超参数(不好的策略,因为对于新的数据我们不知道结果如何)

        ③将数据分为训练集、验证集和测试集,现在我们通常做的是在训练集上使用许多不同的超参数选择来训练我们的算法,在验证集上进行评估,然后选择在验证集上表现最好的超参数集。在完成了所有的开发之后,你将在验证集上使用表现最好的分类器在测试集上运行一次。(good )
 

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

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

相关文章

【区块链 | 预言机】从零开始使用Chainlink预言机(2)- 智能合约中使用更安全的随机数-代码实战

智能合约中使用更安全的随机数(代码实战篇) Chainlink最近推出一款革命性的产品,VRF—Verifiable Random Function可验证随机数,给智能合约带来了真正安全的随机数。本文我们就来介绍一下如何在智能合约中使用VRF吧。 我们先简要介绍一下Chainlink VFR的工作流程。 首先,…

科普:什么是ChatGPT?(文末有彩蛋)

科普:什么是ChatGPT?(文末有彩蛋) ChatGPT介绍 ChatGPT是OpenAI开发的一个大型预训练语言模型。它是GPT-3模型的变体,GPT-3经过训练,可以在对话中生成类似人类的文本响应。ChatGPT 旨在用作聊天机器人,我们可以对其进…

STM32F103定时计算方法

//TIM2时钟配置 void TIM2_Configuration(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //定时器TIM2初始化 TIM_TimeBaseStructure.TIM_Period 499; //装载值(4991)500us TIM_TimeBaseStructure.TIM_Prescaler 63; //预分频&am…

WuThreat ITDR 可以快速构建多场景的身份认证与威胁检测能力

什么是WuThreat身份安全云? WuThreat 身份安全云融入身份认证和身份威胁检测与响应(ITDR)的技术,快速为企业的Web、APP等业务构建一体化多身份场景的认证与安全解决方案。WuThreat在身份认证与威胁检测领域是全球的创新领导者&am…

servletContext 对象的解释

大家好,今天来分享一下servletContext 作用 关于 servletContext 对象, 他代表是整个web 项目,他可以和servlet 或者程序的容器进行通信 同时也可以管理web项目 当一个web项目当中有很多servlet, 那这些servlet之间需要通信 就…

第二证券|六大券商热议“第三支箭”:再融资重启修复市场预期

房地产利好方针接连出台,“第三支箭”为商场再添强心针。上星期,证监会决定在房地产股权融资方面调整优化五项办法。上市房企纷繁呼应,已有近10家房企火速筹划再融资。 时隔多年,监管再度重启房企股权融资,对房地产商场…

Java搭建宝塔部署实战基于RuoYi开源博客管理系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Java开发的RuoYi开源博客管理系统源码,是一个朋友发来给我,让我帮他测试怎么在宝塔搭建部署的,顺便录制出一个视频教程出来,搭建的方法还是比较简…

【基础算法】几种特殊数(素数、公约数、完全数、亲密数) C++实现

●素数 素数又称为质数,它指在一个大于1的自然数中,除了1和它自身外,没法被其他自然数整除的数。比1大,但不是素数的数称为合数。0和1既不是素数,也不是合数。因为素数的分布没有明显的规律,所以在程序中一…

争议不断的AI绘画,如今成为了顶流?

今年以来,AIGC迅速崛起。所谓AIGC,即AI-Generated Content,指的是利用人工智能来生成内容,被认为是继专业产出内容(PGC)、用户产出内容(UGC)后的新型内容创作方式。不久前掀起热议的…

「小白学Python」Windows安装Python

前言 Python下载地址 https://www.python.org/ Python下载 打开上面的链接,打开 Python 的下载页面,如下图所示: 我们把鼠标放到 Downloads 上,然后点击 Windows,此时界面如下图所示: 这里,我…

使用python批量的转换图片的格式并保存

使用cv2.dnn实现GoogleNet图像分类 Face-recognition实现人脸识别 Opencv实现信用卡识别 Opencv实现停车位识别 DlibOpencv库实现疲劳检测 Dlib库实现人脸关键点检测(Opencv实现) OpencvYOLO-V3实现目标跟踪 YOLO-V3实时检测实现(open…

str(n)cpy的注意事项以及memset的简单使用

目录 strcpy strncpy memset 前言:因为C语言不能像C的string那样重载、等运算符,所以C语言提供了用于字符串拷贝的函数strcpy与strncpy,但是这两个函数都存在着一些问题; 我们需要先知道,字符串的结束标志是\0&…

五年数据库专家,带你深入高性能 MySQL 架构系统,不要等到面试再追悔莫及

MySQL 作为互联网中非常热门的数据库,在高并发业务场景下,一条好的 MySQL 语句能为企业节省大量的运作时间和成本,这也是为何互联网大厂面试官最爱考察数据库底层和性能调优的原因。因此,了解其底层原理和架构的设计非常重要&…

2022年全球城市变迁研究报告

第一章 全球城市概述 全球城市 (Global City),又称为世界城市 (World City)、国际大都市或国际都会城市,是指在财富、社会、经济、文化及政治层面直接影响全球事务的城市。近年来,随着全球化的扩张,城市文明与软实力的影响达到鼎…

redis的key过期事件不建议实现延时消息的原因

官网的解释 https://redis.io/docs/manual/keyspace-notifications/#timing-of-expired-events 简单的意思就是不能保证时效性,key过期事件可能会往后推个几分钟才触发,特别是数据量越来越大的时候。 而且一旦客户端处理失败,这个事件也不…

Linux 将 /home 目录与 / 根目录磁盘合并

1. Linux 下的 /home 目录与 / 目录 一般情况下进入 Linux 系统下的 / 目录,会看到如下目录列表。 [rootlocalhost /]# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var可以看到其中包含 home 目录&…

SpringBoot实现WebSocket

一、什么是websocket WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议) 它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的 Websocket是一个持久化的协议 二、新建SpringBoot工…

STM32读保护的解除和出现的原因,使用串口和ST-LINK Utility解除读保护

STM32读保护的解除和出现的原因,使用串口和ST-LINK Utility解除读保护STM32读保护读保护保护出现的现象出现的原因读保护解决方法1、重新下载CH340驱动2、FlyMcu串口下载软件接触读保护使用STM32 ST-LINK Utility软件解除读保护注意STM32读保护 读保护保护出现的现…

4-(1,2,2-三苯基乙烯基)苯甲醛;​CHO醛基偶联AIE材料

中文名 4-(1,2,2-三苯基乙烯基)苯甲醛 英文名 4-(1,2,2-triphenylvinyl)benzaldehyde 4-(1,2,2-三苯基乙烯基)苯甲醛物理化学性质 分子式 C27H20O 分子量 360.455 质量 360.151428 AIE聚集诱导发光材料的特点: 1.在固态下有强发光特性(粉末或高浓度&am…

【Linux03-基本工具之GCC】Linux下的C语言编译器

前言 接上篇,继续学习基本工具。 三、gcc 是什么 Linux下的C语言编译器(C的编译器是g,用法选项基本一样)。 既然是编译器,我们就再来加点餐…… 链接其实分为两种类型:静态链接和动态链接&#xff0…