关于深度学习局部视野与全局视野的一些思考
关于深度学习局部视野与全局视野的一些思考
最近,我在学习一个基于Transformer的网络模型时,注意到了一些局部特征和全局特征的概念。引发了一些疑问:
- 为什么说CNN只能看到局部区域,而transformer能看到全局区域?
- 什么是token? 对于图像中又指代什么?
- 一个卷积核只看它覆盖的小区域(patch),无法直接“看到”整张图。 但卷积核划过整幅图,为什么说只看到局部特征?
- CNN通过堆了多层,比如三层 3×3 卷积,来扩大感受野 ,为什么堆积多层就会提高感受野?
- 关于全局语义增强后的图像特征序列, 这些特征是体现在数值上的改变么?
- encoder,decoder做了什么?
第一个问题:为什么说CNN只能看到局部区域,而transformer能看到全局区域?
我们都知道,CNN是通过卷积核来提取图像特征的,直观上来看,最让人注意到的就是通过卷积之后图像变小了,这就像是将一个大的图像压缩成一个小的特征图,我之前更多关注的是,这样做降低了计算压力。
现在来理解为什么说CNN只能看到局部区域,假如有一个33大小的卷积核,以步长为1的方式划过整幅图像。在结果图中,第一次卷积的结果只跟它看到的33像素大小的区域有关。这就有点像盲人摸象,有个盲人去摸大象来判断是什么样子的。第一次摸到鼻子,就说大象像一条蛇,第二次摸到耳朵,就说大象有两个翅膀,可能会飞。以下图为例,结果图中的5,4,5,5这四次卷积得到的特征结果是相对独立的。
而在transformer中,通过将5,4,5,5并排展开成序列,通过注意力机制,就是为了使相对独立的结果块与其他结果块相互比较,加权来建立联系。通过这种方式,我们认为transformer看到了全局区域,能够学习全局的特征。
第二个问题:什么是token? 对于图像中又指代什么?
在语言文字模型中,token代表一个单词,而在图像中,token代表图像的一个个切块(patch),就比如256256的图像,通过一串卷积后得到了16161024特征图。 其中1616特征图中的每个像素值,都代表着对应于图像的一个个小切块(patch),这个小切块是卷积看到的区域。每个 token 对应的是图像上的一个小区域的位置,并且它的值就是这个区域的特征向量(1024维)
第三个问题:一个卷积核只看它覆盖的小区域(patch),无法直接“看到”整张图。 但卷积核划过整幅图,为什么说只看到局部特征?
虽然卷积核确实会划过整幅图像,但每次滑动只关注一个3*3的小区域,输出的一个数值(向量),仅代表这个小区域的特征;虽然划过了整幅图,但每个输出值只跟那一小块区域有关,有联系。
第四个问题:CNN通过堆了多层,比如三层 3×3 卷积,来扩大感受野 ,为什么堆积多层就会提高感受野?
感受野(Receptive Field)指的是 输出特征图中某一个神经元在输入图像中所“看见”的区域大小。
用直白一点的话说:一个输出位置能“看到”输入图像的多大范围。
假设有一个 3×3 的卷积核,它在输入图像上滑动,那么这个卷积核一次只看输入图像的 一个 3×3 小块,所以,输出特征图中的每个点,感受野就是 3×3。当使用连续堆叠的三层3*3卷积(无池化,步幅为1,padding为1),来看它是怎么让感受野变大的。
第1层:输出的每个像素来自输入的 3×3 区域→ 感受野是 3×3
第2层:它的输入是上一层的输出。上一层的输出的每个点“看到”3×3 → 所以这一层的卷积核,其实在最初输入图像上“看”到了 5×5 的区域。
第3层:继续类推,它的输出每个点能“看到”上层输入中的 3×3→ 上层输入的每个点又看到 5×5→ 最终这个输出的每个点可以看到原图中的 7×7 区域。
堆叠多层卷积层,相当于在原图上间接建立了更大范围的信息融合路径,从而扩大感受野,让模型能提取更“全局”的信息。这里大胆推测CNN网络的发展为了叠加多层,就是为了扩大感受野。
但对于transformer来说,他不用经历艰难的堆叠来一点点扩大感受野,通过自注意力及交叉注意力就能获得包含全局信息的特征。
第四个问题:关于全局语义增强后的图像特征序列, 这些特征是体现在数值上的改变么?
全局语义增强后的图像特征序列通常体现在数值上的改变。具体来说,图像的每个特征向量(通常是卷积网络中的输出)表示了图像的某个局部区域的信息。在通过全局语义增强时,这些特征向量会根据全局信息(比如整个图像的上下文、长程依赖等)进行调整或更新。这些改变可以是通过以下方式进行的:
特征加权:全局语义增强方法可能会通过某种机制(比如自注意力机制)对每个特征加权,使得某些特征在增强后变得更加突出,或者根据其与全局上下文的关系进行调整。这种加权操作会改变特征向量中的数值。
上下文信息融合:通过考虑图像中远离当前区域的信息,特征向量会融入更多的上下文信息。这种信息融合使得原本局部的特征能够获得更多全局信息的影响,进而改变其数值表示。
特征变换:例如通过变换网络(如 Transformer、图卷积等)进行的操作,可能通过非线性函数或者线性映射来调整特征数值,使得它们更能代表图像中的全局语义信息。
因此,经过全局语义增强后,每个特征的数值通常会有所变化,反映出该特征与全局语义的关系增强或调整。这种数值变化有助于更好地捕捉图像中的高层次语义信息,提升后续任务(如分类、目标检测、分割等)的性能。
encoder,decoder做了什么?
简单说,encoder,decoder都是通过query,key,value;注意力机制来完成的。encoder更多的是为了输出包含全局信息的value.
而decoder,会根据query信息,生成与query信息反应强烈的对应value值,通过解码value值,就可以得到预测的结果。
相关文章:
关于深度学习局部视野与全局视野的一些思考
关于深度学习局部视野与全局视野的一些思考 最近,我在学习一个基于Transformer的网络模型时,注意到了一些局部特征和全局特征的概念。引发了一些疑问: 为什么说CNN只能看到局部区域,而transformer能看到全局区域?什么是token? 对于图像中…...
Asp.NET Core WebApi 配置文件
在 ASP.NET Core Web API 中,配置文件(如 appsettings.json)是管理应用程序设置的核心部分。ASP.NET Core 提供了一套灵活的配置系统,允许开发者从多种来源加载配置数据,并根据需要使用这些配置。 以下是关于如何在 A…...
免费的AI原创文章批量生成工具,站长内容更新工具推荐
说到AI生成文章,现在已经不是什么热门话题了,因为国内有很多的AI模型现在也越来越成熟了,那么科技工具的出现就是为人民服务的,我们要合理的用好它。 今天给大家推荐的是一款很厉害的站长网站内容更新工具,它可以利用…...
在ASP.NET Core 中实现幂等API和WinForms客户端防重提交实践
前言 大家好,欢迎关注dotnet研习社。今天,我想和大家聊聊在 ASP.NET Core 中如何实现幂等 API,这是我们在实际项目开发中非常重要、但又常常被忽略的一个话题。 什么是幂等性? 幂等性(Idempotency)指的是…...
Vue如何利用Postman和Axios制作小米商城购物车
小编最近太忙了,没来得及更新博客!上一条博客我们写了小米商城购物车的简版,今天我们就在简版的基础之上来增加一些功能,写一下数量的加减、总价、删除(批量删除)、全选取消全选等功能。如果上一条博客没有…...
使用Windows工具进行内存取证(不进行完全内存转储)
内存取证是分析易失性内存以发现恶意活动、恶意软件行为或系统异常的强大技术。一般情况下调查员会转储全部物理内存,并使用Volatility等工具对其进行分析。然而在许多实际场景中,由于系统限制、安全策略或紧迫性等原因,完全转储可能并不可行…...
大厂文章阅读
1.异步任务处理系统,如何解决业务长耗时、高并发难题? 1)任务失败如何处理(CAS失败也可用):1.指数退避,匹配下游任务执行系统的处理能力。比如收到下游任务执行系统的流控错误,或者感知到任务执行成为瓶颈,需要指数退…...
ubuntu 服务器版本常见问题
一、系统安装与初始化 1. 安装过程中断或失败 原因:镜像损坏、硬件兼容性、磁盘分区错误。 解决: 验证 ISO 文件的完整性(计算 SHA256 校验和)。 检查 BIOS/UEFI 设置(禁用 Secure Boot)。 使用手动分区模式,确保根分区(/)和 EFI 分区(如有)正确配置。 2. 系…...
第十五届蓝桥杯大赛软件赛省赛Python 大学 B 组试做(下)【本期题单: 缴纳过路费, 纯职业小组】
本期题单:缴纳过路费,纯职业小队 文章目录 缴纳过路费题目思路分析代码 纯职业小组题目思路分析 感谢大伙观看,别忘了三连支持一下大家也可以关注一下我的其它专栏,同样精彩喔~下期见咯~ 缴纳过路费 题目 题目链接:缴…...
【Hadoop入门】Hadoop生态之Oozie简介
1 什么是Oozie? Oozie是Apache基金会下的一个开源工作流调度系统,专门设计用于管理Hadoop作业。作为一个基于工作流的调度服务器,它能够在复杂的任务依赖关系中协调Hadoop MapReduce、Pig、Hive等任务的执行,是大数据平台中任务编…...
【Amazon EC2】为何基于浏览器的EC2 Instance Connect 客户端连接不上EC2实例
文章目录 前言📖一、报错先知❌二、问题复现😯三、解决办法🎲四、验证结果👍五、参考链接🔗 前言📖 这篇文章将讲述我在 Amazon EC2 上使用 RHEL9 AMI 时无法连接到 EC2 实例时所遇到的麻烦😖 …...
【大模型系列篇】最强检索增强技术GraphRAG基本原理详解
GraphRAG是一种结合了知识图谱(Knowledge Graph)和大型语言模型(Large Language Model, LLM)的检索增强生成(Retrieval-Augmented Generation, RAG)技术。它通过引入图结构化的知识表示和处理方法ÿ…...
【高阶数据结构】第二弹---图的深度解析:从基本概念到邻接矩阵的存储与操作
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【高阶数据结构】 目录 1、图的基本概念 2、图的存储结构 2.1、邻接矩阵 2.1.1、基本结构 2.1.2、图的创建 2.1.3、获取顶点下标…...
【Java实战】——手撕斐波那契数列
🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:【Java】内容概括 这里写目录标题 1.什么是斐波那契数列?2.代码实现2.1 递归实现2.2 迭代实现 3.执行结果 …...
Python数据可视化-第7章-绘制3D图表和统计地图
环境 开发工具 VSCode库的版本 numpy1.26.4 matplotlib3.10.1 ipympl0.9.7教材 本书为《Python数据可视化》一书的配套内容,本章为第7章 绘制3D图表和统计地图 本章首先介绍了使用mplot3d工具包绘制3D图表,然后介绍了使用animation模块制作动画&#…...
操作系统 4.2-键盘
键盘中断初始化和处理 提取的代码如下: // con_init 函数,初始化控制台(包括键盘)的中断 void con_init(void) {set_trap_gate(0x21, &keyboard_interrupt); } // 键盘中断处理函数 .globl _keyboard_interrupt _keyboard…...
24.0.2 双系统ubuntu 安装显卡驱动黑屏,系统启动界面键盘失灵
问题描述:通过run文件在ubuntu 界面版安装nvidia 驱动后,忽然黑屏,再次启动时,键盘鼠标失灵无法选择系统,只能进入ubuntu界面。第二个问题是ubuntu 也无法用户登录,左上角光标闪烁。 查询方案,…...
探索多领域免费API资源库:打造数据查询利器
在当今信息爆炸的时代,获取各种领域的数据已成为许多人的需求。而免费API资源库的出现为我们提供了便捷的途径,让我们可以轻松地获取所需数据。本文将介绍涵盖20领域的免费API资源库,通过代码示例展示其功能,帮助读者更好地理解和…...
jenkins项目发布-安装k8s(rancher)客户端kubectl
找一台Linux 上安装 kubectl 以下是通过国内镜像源快速安装 kubectl 的方法,适合国内网络环境。 1. 下载 kubectl 通过国内镜像源下载指定版本的 kubectl: 使用阿里云镜像源下载: curl -LO "https://dl.k8s.io/release/$(curl -L -…...
【2025年认证杯数学中国数学建模网络挑战赛】C题 数据预处理与问题一二求解
目录 2025认证杯网络挑战赛A题 数据预处理与问题一求解三、数据预处理及分析3.1 数据可视化3.2 滑动窗口相关系数统计与动态置信区间耦合分析模型3.3 耦合关系分析结果 四、问题一代码数据预处理问题一 2025认证杯网络挑战赛 A题 数据预处理与问题一求解 三、数据预处理及分析…...
天玑AI开发套件2.0模型库数量激增3.3倍,让AI开发选择更自由
AI终端能力的升级,从不止步于硬件性能的提升,更有赖于软硬一体的系统化能力建设。在MDDC 2025大会上,联发科整合发布AI游戏两大核心场景下的开发平台:Neuron Studio打通模型开发全流程;Dimensity Profiler从多个维度提…...
edge 更新到135后,Clash 打开后,正常网页也会自动跳转
发现了一个有意思的问题:edge 更新135后,以前正常使用的clash出现了打开deepseek也会自动跳转: Search Resultshttps://zurefy.com/zu1.php#gsc.tab0&gsc.qdeepseek ,也就是不需要梯子的网站打不开了,需要的一直正…...
Socket多路复用网络编程应用总结
Socket多路复用网络编程应用总结 概述 • 传统I/O模型的局限性:传统阻塞式I/O模型每次仅在一个文件描述符(File Descriptor, FD)上执行I/O操作,导致程序需等待单个操作完成,无法高效处理多连接场景(如高并…...
APT攻击阶段划分,每个阶段分区方法
根据现有资料,APT(高级持续性威胁)攻击的阶段划分主要基于两种主流模型:洛克希德-马丁的杀伤链模型和生命周期模型。以下是分阶段详解及分区依据: 一、洛克希德-马丁杀伤链模型(7阶段) 核心逻辑…...
图像颜色空间对比(Opencv)
1. 颜色转换 import cv2 import matplotlib.pyplot as plotimg cv2.imread("tmp.jpg") img_r cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_g cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_h cv2.cvtColor(img, cv2.COLOR_BGR2HSV) img_l cv2.cvtColor(img, cv2.C…...
【NLP 58、利用trl框架训练LLM】
孤独总比忍受傻逼好得多 —— 25.4.11 源代码网页: 项目文件预览 - trl:Train transformer language models with reinforcement learning. - GitCode TRL —— 变压器强化学习 trl:一个用于后训练基础模型的全面库 1.概述 TRL 是一个利用监督微调&a…...
数据仓库元数据的管理
元数据(Meta Date),主要记录数据仓库中模型的定义、各层级间的映射关系、监控数据仓库的数据状态 及ETL的任务运行状态。一般会通过元数据资料库(Metadata Repository)来统一地存储和管理元数据,其主要 目的…...
MySQL逻辑架构有什么?
1. MySQL逻辑架构分层 MySQL的逻辑架构可分为三层(自上而下): 连接层(Client Layer)服务层(Server Layer)存储引擎层(Storage Engine Layer) -----------------------…...
蓝桥杯 web 常用到的一些知识点
reduce 方法遍历数组、将数组元素累计 ①reduce接收两个参数,一个回调函数,一个初始值 ②回调函数传递了两个参数,一个是累加值,另一个是当前值 reduce的写法: arrays.reduce((a,cÿ…...
构建高可靠C++服务框架:从日志系统到任务调度器的完整实现
构建高可靠C服务框架:从日志系统到任务调度器的完整实现 一、深度解析示例代码技术体系 1.1 日志系统的进阶应用 示例代码中的ZRY_LOG_XXX宏展示了基础日志功能,但在生产环境中我们需要更完善的日志系统: 推荐技术栈组合: sp…...
<C#>在 C# .NET 中,使用 LoggerExtensions方法创建日志
在 C# .NET 中,LoggerExtensions 是 Microsoft.Extensions.Logging 命名空间下的一组扩展方法,它们为 ILogger 接口提供了便捷的日志记录方式。借助这些扩展方法,你能轻松记录不同级别的日志,如调试信息、信息、警告、错误等。下面…...
微服务与Spring Cloud Alibaba简介
微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。本单元主要介绍微服务架构的定义、微服务的特征、微服务架构面临的挑战、Spring Cloud 定义、Spring Cloud 核心组件、Spring C…...
元生代品牌建设:平台实现工作流(comfyui)创建与技术文档说明
本文摘要:蓝耘科技自2004年成立以来,从传统IT系统集成业务转型为聚焦GPU算力云服务的科技公司。其发布的元生代平台,是一个集算力调度、应用市场和AI协作开发为一体的智算云平台。用户可在蓝耘平台使用ComfyUI进行AI绘图,通过添加…...
无线通信网
1.2.4G相邻信道间有干扰,5G相邻信道几乎无干扰 2.2.4G频段的优点是信号强,衰减小,穿墙强,覆盖距离远;缺点是带宽较窄,速度较慢,干扰较大。 5G频段的优点是带宽较宽,速度较快&#…...
WMware虚拟机Ubuntu磁盘扩容
VMware中操作: 选择要扩容的虚拟机,点击编辑虚拟机设置 打开后点击磁盘——>点击扩展(注意:如果想要扩容的话需要删除快照) 调整到你想要的容量 点击上图的扩展——>确定 然后我们进到虚拟机里面 首先&#…...
vscode头文件自由跳转
文章目录 1. 安装c/c扩展2. 建.vscode文件夹 当你想要ctl鼠标左击跳转到三方库的定义的时候请往下看。 1. 安装c/c扩展 2. 建.vscode文件夹 在.vscode文件夹下新建c_cpp_properties.json {"configurations": [{"name": "Linux","include…...
BUG:Cannot find implementation for xxx. database. xxx. xxx_Impl does not exist
问题背景 使用Jetpack Compose将数据存储在room本地数据库时,编译报错: java. lang. RuntimeException: Cannot find implementation for com. example. androidproject. practice. roomdmeo. database. AppDatabase. AppDatabase_Impl does not exist …...
基于PySide6与pyCATIA的工程图智能文本替换工具开发指南
一、需求背景与实现价值 在汽车、航空等制造领域,CATIA工程图的文本标注管理常面临批量修改需求。传统手工操作存在效率低、易出错等问题。本文实现的文本替换工具具有以下行业价值: 提升图纸修订效率(单次操作可处理数千个文本对象&#x…...
MCP协议下人工智能康复理疗智械融合编程方向分析
一、引言:AI 康复时代的技术革新 在全球人口老龄化进程加速以及慢性病发病率持续走高的双重背景下,康复医疗领域正面临着前所未有的需求增长压力。据世界卫生组织(WHO)相关数据表明,预计到 2050 年,全球 60 岁及以上老年人口数量将激增至 21 亿,这一庞大群体中,绝大多…...
【嵌入式硬件】LAN9253说明书(中文版)
目录 1.介绍 1.1总体介绍 1.2模式介绍 1.2.1微控制器模式: 1.2.2 扩展模式 1.2.3 数字IO模式 1.2.4 各模式图 2.引脚说明 2.1 引脚总览 2.2 引脚描述 2.2.1 LAN端口A引脚 2.2.2 LAN端口B引脚 2.2.3 LAN端口A和、B电源和公共引脚 2.2.4 SPI/SQI PINS 2.2.5 分布式时…...
Java学习手册:Java基本语法与数据类型
Java语言以其简洁明了的语法和强大的数据类型系统而闻名。掌握Java的基本语法和数据类型是成为一名合格Java开发者的第一步。本文将深入探讨Java的基本语法结构和数据类型,帮助读者打下坚实的基础。 Java的基本语法 Java语言的语法设计简洁而强大,强调…...
操作系统 3.4-段页结合的实际内存管理
段与页结合的初步思路 虚拟内存的引入: 为了结合段和页的优势,操作系统引入了虚拟内存的概念。虚拟内存是一段地址空间,它映射到物理内存上,但对用户程序是透明的。 段到虚拟内存的映射: 用户程序中的段首先映射到虚…...
金融简单介绍及金融诈骗防范
在当今社会,金融学如同一股无形却强大的力量,深刻影响着我们生活的方方面面。无论是个人的日常收支、投资理财,还是国家的宏观经济调控,都与金融学紧密相连。 一、金融学的概念 金融学,简单来说,是研…...
基于docker搭建redis集群环境
在redis目录下创建redis-cluster目录,创建docker-compose.yml文化和generate.sh文件 【配置generate.sh文件】 for port in $(seq 1 9); \ do \ mkdir -p redis${port}/ touch redis${port}/redis.conf cat << EOF > redis${port}/redis.conf port 6379 …...
CSS 中常见的布局相关属性及其功能分类
一、块级布局(Block Layout) 1. display 作用:定义元素的显示方式。常用值: block:块级元素,默认独占一行。inline:行内元素,与其他内容在同一行显示。inline-block:兼…...
用css画一条弧线
ui里有一条弧线,现在用css实现 关键代码 border-bottom-left-radius: 100% 7px 两个参数分别代表横向和纵向的深度border-bottom-right-radius: 100% 7px...
CesiumForUnreal 本地矢量文件的加载,支持 shp/geojson 等常用格式
实现效果 Cesium for Unreal 集成 GDAL、LibPng 实现加载本地矢量文件 实现步骤 添加依赖在 cesium-unreal 中 extern -> cesium-native -> CMakeLists.txt 中的 57 行添加依赖库,代码如下: set(PACKAGES_PRIVATEabseil draco ktx modp-base64 meshoptimizer openssl …...
面向基于发布-订阅的物联网网络的匿名 MQTT 分析
中文标题: 面向基于发布-订阅的物联网网络的匿名 MQTT 分析 英文标题: An Analysis of Anonymous MQTT for Publish-Subscribe-Based IoT Networks 作者信息 Yudai Fukushima:东京都立大学电气工程与计算机科学系硕士生,研究方向…...
<C#> 详细介绍.NET 依赖注入
在 .NET 开发中,依赖注入(Dependency Injection,简称 DI)是一种设计模式,它可以增强代码的可测试性、可维护性和可扩展性。以下是对 .NET 依赖注入的详细介绍: 1. 什么是依赖注入 在软件开发里࿰…...
批量给文件编排序号,支持数字序号及时间日期序号编排文件
当我们需要对文件进行编号的时候,我们可以通过这个工具来帮我们完成,它可以支持从 001 到 100 甚至更多的数字序号编号。也可以支持按照日期、时间等方式对文件进行编号操作。这是一种操作简单,处理起来也非常的高效文件编排序号的方法。 工作…...