从0开始学习计算机视觉--Day04--线性分类

从宏观来看,卷积网络可以看做是由一个个不同的神经网络组件组合而成,就像积木一样通过不同类型的组件搭建形成,其中线性分类器是一个很重要的组件,在很多卷积网络中都有用到,所以了解清楚它的工作原理对我们后续的学习会有很大的帮助。线性分类器是参数模型中最简单,最基础的例子,下面我们用输入图片输出图片分类的模型的例子来更进一步地了解它。

首先,我们输入一张图片到模型中,输入后我们就会得到f(x,W),x指的是参数,W指的是权重。紧接着通过模型的函数,将参数与权重带入后会输出10个数字,进而转为图片的类型。与之前用KNN算法进行图片分类不同的是,在这个模型的例子中,不需要将训练的数据集与测试集去一一比对找最相似的类别,相反我们只需要在测试时,有输入图片得到的参数和权重就可以知道图片所属的类型了,这也意味着这个模型可以适配在很多设备上,包括电脑甚至手机。对于深度学习的模型来说,函数的结构便是模型的核心功能,而在这个例子中,线性分类的函数形式就是最简单的让参数与权重相乘:F(X)=W*X。

那么,线性分类器的工作形式就很明显了,假设图片是22的图像,我们把它拉伸为一个拥有四个元素的列向量,而W权重矩阵是一个3*4的矩阵,将矩阵与列向量进行点乘的运算,再加上为了平衡模型数据集造成的偏差的偏差向量,最终得到了三个类别(假设模型训练时用的是三个类别的数据集)的得分,如下图所示:

当然这里的权重矩阵是需要反向传播和损失函数来确定的,这里只是为了方便理解线性分类器的过程而设置的一个随机的3*4的矩阵。也可以理解为,权重矩阵就是模型对于某类图片的认知,如果将W矩阵中的某个类比的行向量变形为输入图片的像素尺寸再可视化,就能观察到在模型眼里这类图片的“样子”,比如汽车的图片就是一片模糊中呈现一个类似于凸的轮廓。

线性分类器这种识别图片的方法,有点类似于模版匹配,即模型对该类别图片的理解来源于一个模版,如果给出的是货车的图片,模型会尝试求可能得模型的轮廓并得出一个每个类别变体的平均值来作为答案,但这也会导致该类的行向量去判断的准确率降低。如果把图片看作高位空间的一个点(类似于平面图中的一个点,在这里进行了一个同等的升维),线性分类器就是在尝试用线将图片区分开来,类似于在坐标系中,AX+B>0的范围属于A类图片。这样,就引出了它的弊端了,即存在很多不能分类的图片,比如最简单的在一个矩阵中,用横竖两条线切割成四块,斜对角的为一个类别,那么不管怎么划分线,一条线的另一端始终会有两个种类的图片。同样的,另一类的存在范围是以内切圆环或一个个圆的话,也是同样区分不了的。在现实中,这指向的是我们的数据是多模态数据,某个类别会在不同的领域出现。

学习来自于斯坦福课程:Stanford University CS231n: Deep Learning for Computer Vision

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

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

相关文章

基于ComfyUI与Wan2.1模型的本地化视频生成环境搭建指南

文章目录 前言1.软件准备1.1 ComfyUI1.2 文本编码器1.3 VAE1.4 视频生成模型2.整合配置3. 本地运行测试4. 公网使用Wan2.1模型生成视频4.1 创建远程连接公网地址5. 固定远程访问公网地址总结前言 各位小伙伴们,今天我们将为您展示一套创新的人工智能应用方案!本次教程将指导…

Vue 2 项目中内嵌 md 文件

推荐方案:raw-loader marked 解析 Markdown 第一步:安装依赖 npm install marked --save npm install raw-loader --save-dev第二步:配置 webpack 支持 .md 文件 打开 vue.config.js 或 webpack.config.js,添加以下配置&#…

Spring AI初识及简单使用,快速上手。

Spring AI简介 在当今这样一个快速发展的技术时代,人工智能(AI)已经成为各行各业的一种标配。而作为一款主流的Java应用开发框架Spring,肯定会紧跟时代的潮流,所以,推出了Spring AI框架。 官网描述&#…

Flask中的render_template与make_response:生动解析与深度对比

文章目录 Flask中的render_template与make_response:生动解析与深度对比一、🌟 核心概念速览二、� render_template - 网页内容的主厨特点与内部机制适用场景高级用法示例 三、🎁 make_response - 响应的包装专家核心功能解析适用…

WordPress目录说明

在WordPress建站过程中,理解服务器目录结构是非常重要的。以下是一个基础的WordPress服务器目录指南: /wp-admin/ :这个目录包含了WordPress网站的所有管理功能,包括用于处理网站后台的所有PHP文件。 /wp-includes/ :…

HTTP面试题——缓存技术

目录 HTTP缓存技术有哪些? 什么是强制缓存? 什么是协商缓存? HTTP缓存技术有哪些? 对于一些具有重复性的HTTP请求,比如每次请求得到的数据都是一样的,我们可以把这对 请求-响应的数据都缓存在本地&#x…

virtual box 不能分配 USB设备 IFX DAS JDS TriBoard TC2X5 V2.0 [0700] 到虚拟电脑 win10

VirtualBox: Failed to attach the USB device to the virtual machine – Bytefreaks.net ISSUE: virtual box 不能分配 USB设备 IFX DAS JDS TriBoard TC2X5 V2.0 [0700] 到虚拟电脑 win10. USB device IFX DAS JDS TriBoard TC2X5 V2.0 with UUID {91680aeb-e1…

Deepoc大模型重构核工业智能基座:混合增强架构与安全增强决策技术​

面向复杂系统的高可靠AI赋能体系构建 Deepoc大模型通过多维度技术突破&#xff0c;显著提升核工业知识处理与决策可靠性。经核能行业验证&#xff0c;其生成内容可验证性提升68%&#xff0c;关键参数失真率<0.3%&#xff0c;形成覆盖核能全链条的定制化方案&#xff0c;使企…

第12章:冰箱里的CT扫描仪——计算机视觉如何洞穿食材的“生命密码“

第11章:冰箱里的CT扫描仪——计算机视觉如何成为食材健康的"超级诊断官" “糟了!冰箱里草莓长出了白色绒毛,鸡胸肉渗出了可疑的粉红色液体!” 这揭示了厨房生存的更基本挑战:如何像经验丰富的主厨一样,一眼洞穿食材的健康密码? 本章将揭示计算机视觉技术如何赋…

虚幻基础:窗口——重定向

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 重定向&#xff1a;给骨架添加兼容骨架。使得不同模型间复用动画资源 重定向&#xff1a;给骨架添加兼容骨架。使得不同模型间复用动画资源

CSS 逐帧动画

CSS 逐帧动画实现指南 逐帧动画(frame-by-frame animation)是一种通过快速连续显示一系列静态图像来创造运动效果的技术。以下是使用CSS实现逐帧动画的几种方法。 1. 使用 steps() 计时函数 这是实现逐帧动画最常用的方法&#xff0c;通过animation-timing-function的steps(…

高版本IDEA如何开发低版本jdk项目

问题描述 我这个人比较喜欢新的东西&#xff0c;比如使用idea的时候&#xff0c;我就喜欢最新版本。 但是有个问题&#xff0c;最新版本的idea好像不支持jdk1.6&#xff0c;导致我无法去用新版本idea开发项目。 直到有一天&#xff0c;idea给了我一个提示如下&#xff0c;之…

Java设计模式->责任链模式的介绍

目录 1、责任链模式概念 1.1、定义介绍 1.2、流程图 1.3、优缺点 2、实现 3、应用场景 3.1、Springmvc流程 3.2、mybatis的执行流程 3.3、Spring的过滤器和拦截器 3.4、sentinel限流熔断 3.5、aop的加载和使用 4、举例 前言 是一种 行为型设计模式&#xff0c;它通…

【Bluedroid】蓝牙启动之 btm_acl_device_down 流程源码解析

本文详细分析Android蓝牙协议栈在设备故障时的处理流程。当蓝牙设备发生硬件故障或系统异常时,协议栈通过btm_acl_device_down触发多层次的资源清理和状态重置,包括ACL连接终止、L2CAP通道释放、SCO连接清理、BLE拓扑更新、设备数据库重置等关键操作,确保系统安全恢复。 一、…

随记:WebMvcConfigurationSupport 和WebMvcConfigurer 的区别

WebMvcConfigurationSupport &#xff08;抽象类&#xff09; 他是一个完整的 MVC 配置基类&#xff0c;他会禁用所有自动配置。默认静态资源映射也没有了。默认消息转换器&#xff08;json、xml&#xff09;也没有了。错误处理页默认的error也没有了。 WebMvcConfigurer &am…

npm run dev报错

1. 引言 1.1 什么是npm run dev npm run dev 是一个在 Node.js 项目中常用的命令&#xff0c;它允许开发者运行一个预定义的脚本&#xff0c;通常用于启动开发服务器或者执行开发环境的构建任务。这个命令是通过 package.json 文件中的 scripts 部分定义的&#xff0c;例如&…

Kotlin环境搭建与基础语法入门

目标&#xff1a;完成开发环境配置&#xff0c;编写第一个Kotlin程序&#xff0c;理解变量、数据类型和基本输出。 1. 环境搭建 步骤1&#xff1a;安装JDK 下载并安装 JDK 17&#xff08;Kotlin兼容性最佳版本&#xff09;。 配置环境变量 JAVA_HOME&#xff0c;并在终端验证…

CLion开发Qt桌面程序_git的简单使用_小团体

OS&#xff1a;Windows Qt&#xff1a;6.8.1&#xff08;6.x&#xff09; Eg&#xff1a;学生信息管理系统 前言 Qt Creator编写代码不是太方便&#xff0c;使用CLion编写代码或许是个不错的主意&#xff0c;CLion在此处主要是用于后端和测试的开发&#xff0c;界面方面还是…

C语言专题:8.函数指针(Function Pointer)

​ 在 C 语言中&#xff0c;函数也是一种“对象”&#xff0c;它在内存中有地址。因此可以定义指向函数的指针&#xff0c;用于动态调用、回调处理、构建函数表等。 掌握函数指针是理解 C 语言“底层抽象”与“模块化编程”的关键。 一、函数指针的基本概念 ​ 函数指针是一个变…

快速傅里叶变换(FFT)是什么?

快速傅里叶变换(FFT)是什么&#xff1f; 快速傅里叶变换&#xff08;FFT&#xff09; 本质上是一种极其高效的算法&#xff0c;用来计算**离散傅里叶变换&#xff08;DFT&#xff09;**及其逆变换。它是数字信号处理、科学计算和工程应用中最重要的算法之一。 要理解 FFT&…