【论文阅读笔记】模型的相似性
文章目录
- The Platonic Representation Hypothesis
- 概述
- 表征收敛的依据
- 表征收敛的原因
- 实验依据
- 未来发展的局限性
- Similarity of Neural Network Representations Revisited
- 概述
- 问题背景
- 相似性度量s的性质
- 可逆线性变换不变性
- 正交变换不变性
- 各向同性缩放不变性
- 典型度量满足的性质
- 中心核对齐(CKA)
- 核心思想
- 数学表示
- 点积相似性
- 线性回归
- Hilbert-Schmidt Independence Criterion (HSIC):
- 典型相关分析(CCA)
- CKA的原理和关联
The Platonic Representation Hypothesis
原文链接
概述
论文提出了柏拉图表征假设(Platonic Representation Hypothesis),认为随着AI模型(特别是深度神经网络)的规模、数据和任务多样性增加,不同模型的表征方式正在收敛到一个共享的、反映现实统计模型的表征,称之为柏拉图表征。这种表征类似于柏拉图《洞穴寓言》中描述的理想现实,捕捉了生成观测数据的世界事件联合分布。
表征收敛的依据
(1)单模态收敛:不同架构、训练目标和数据集的神经网络表征趋于对齐。例如,研究通过模型拼接(model stitching)和核对齐度量(如CKA、互近邻)发现,训练于ImageNet和Places-365的视觉模型具有相似的表征。
(2)跨模态收敛:视觉模型和语言模型的表征在更大规模和更高性能下趋于对齐。例如,使用Wikipedia图像-文本数据集(WIT)测量,性能更强的语言模型与视觉模型的表征对齐度更高。
(3)与现实的对齐:神经网络的表征与人类视觉系统的表征表现出一致性,可能是因为两者面临相似的任务和数据约束。表征对齐度与下游任务性能(如Hellaswag、GSM8K)正相关,表明对齐的表征更接近现实的统计模型。
表征收敛的原因
随着数据和任务的扩展,满足这些约束的表示量必须按比例变小,模型被迫学习更通用的表征(Contravariance principle)
数据规模和模型性能之间存在幂律关系(Hestness等人,2017)。这意味着,有了足够的数据,表征应该收敛到一个具有不可约误差的非常小的解集。
多任务目标可能比单任务目标(例如ImageNet分类)更有效,因为它们对表示施加了更多的任务约束,导致更小、更高质量的解决方案空间
对比学习目标(如InfoNCE)通过学习点互信息(PMI)捕获数据间的统计结构,促进表征对齐现实分布。
一些假说:
(1)简单性偏差假说:较大的模型对拟合相同数据的所有可能方法的覆盖范围更大。然而,深度网络的隐含简单性偏差鼓励更大的模型找到这些解决方案中最简单的一个。
(2)容量假说:与较小的模型相比,较大的模型更有可能收敛到共享表示。
(3)Occam’s razor:如果有两个模型都能解释数据,优先选择更简单的那个(参数更少、假设更少)。简单模型通常泛化能力更强,减少过拟合风险。
实验依据
(1)视觉-视觉对齐实验 (Vision-Vision Alignment):验证不同视觉模型的表示是否趋同,以及这种趋同是否与模型性能相关。
(2)跨模态对齐实验 (Cross-Modal Alignment):验证视觉模型和语言模型的表示是否趋同,以及这种对齐是否随着模型性能提升而增强。
(3)颜色共现实验 (Color Cooccurrence Experiment):验证视觉和语言模型是否通过共现关系学习到相似的表示,具体以颜色表示为例。
(4)字幕密度实验 (Caption Density Experiment):验证更密集的图像字幕是否提高视觉-语言表示对齐。
未来发展的局限性
(1)模态差异:不同模态的传感器可能捕捉不同信息(如触觉无法捕捉颜色),可能限制完全趋同。
(2)任务特定性:某些任务可能需要特定的表示,阻碍通用表示的形成。
(3)实际约束:现实中数据和计算资源的有限性可能限制模型逼近柏拉图表示。
Similarity of Neural Network Representations Revisited
原文链接
概述
论文主要探讨了如何比较和分析深度神经网络的表示(representations),提出了一种新的相似性度量方法——中心核对齐(Centered Kernel Alignment, CKA),并将其与传统方法如canonical correlation analysis (CCA)进行了对比。
问题背景
给定两个神经网络的激活矩阵 X ∈ R n × p 1 X \in \mathbb{R}^{n\times p_1} X∈Rn×p1, Y ∈ R n × p 2 Y \in \mathbb{R}^{n\times p_2} Y∈Rn×p2, n n n是样本数, p 1 , p 2 p_1, p_2 p1,p2是神经元数。假设矩阵已中心化且 p 1 ≤ p 2 p_1 \le p_2 p1≤p2,目标是设计和分析一个标量相似性度量 s ( X , Y ) s(X, Y) s(X,Y),用于比较神经网络内部和跨网络的表示,以帮助可视化和理解深度学习中不同变因的影响。
相似性度量s的性质
在探索最合理的度量 s s s的过程中,科学家提出了许多 s s s应满足的性质的假设,并基于此提出了许多理论。然而,这些理论都有一定的局限性。
可逆线性变换不变性
定义:若相似性度量 s ( X , Y ) = s ( X A , Y B ) s(X,Y) = s(XA,YB) s(X,Y)=s(XA,YB),其中 A , B A,B A,B是任意满秩矩阵,则该度量对可逆线性变换不变。
直观理解:在全连接层 f ( X ) = σ ( X W + β ) f(X) = \sigma(XW+\beta) f(X)=σ(XW+β)中,激活 X X X右乘可逆矩阵 A A A,同时权重 W W W左乘 A − 1 A^{-1} A−1,不会改变网络输出。因此,某些研究(如Raghu et al., 2017)认为相似性度量应对可逆线性变换不变。
局限性:当表示维度 p ≥ n p \ge n p≥n时,度量无法区分高维表示的差异。许多神经网络(尤其是卷积网络)的层神经元数量远超训练数据点数量(如Springenberg et al., 2015);此外,神经网络训练对输入或激活的线性变换敏感。例如,梯度下降首先沿输入协方差矩阵的最大特征值方向收敛(LeCun et al., 1991),批归一化(Ioffe & Szegedy, 2015)也表明尺度信息对训练至关重要。因此,忽略尺度信息的度量(如CCA)会丢失关键信息。
正交变换不变性
定义:若 s ( X , Y ) = s ( X U , Y V ) s(X, Y)=s(XU, YV) s(X,Y)=s(XU,YV),其中 U , V U, V U,V是正交矩阵(满足 U T U = I U^TU=I UTU=I),则度量对正交变换不变。
解决的问题:
(1)正交变换保留欧几里得距离和标量积,适合捕捉表示的几何结构。
(2)当表示维度 p ≥ n p \ge n p≥n时,正交变换不变的度量仍然有效,克服了可逆线性变换不变性的局限。
(3)正交变换不变性包含排列不变性,适应神经网络的对称性(Chen et al., 1993)。
将 X , Y X,Y X,Y进行QR分解,即 X = Q X R X , Y = Q Y R Y X = Q_XR_X, Y=Q_YR_Y X=QXRX,Y=QYRY, Q ∈ R n × p Q \in \mathbb{R}^{n \times p} Q∈Rn×p是列正交矩阵( Q T Q = I Q^TQ=I QTQ=I), R X ∈ R p × p R_X \in \mathbb{R}^{p \times p} RX∈Rp×p是上三角矩阵。
我们可以构造新度量 s ′ ( X , Y ) = s ( Q X , Q Y ) s'(X,Y)=s(Q_X, Q_Y) s′(X,Y)=s(QX,QY),则 s ′ s' s′具有可逆线性变换不变性。
各向同性缩放不变性
定义:若 s ( X , Y ) = s ( α X , β Y ) s(X, Y)=s(\alpha X, \beta Y) s(X,Y)=s(αX,βY),其中 α , β ∈ R + \alpha, \beta \in \mathbb{R}^{+} α,β∈R+,则度量对各向同性缩放不变。
直观理解:各向同性缩放仅改变表示的整体尺度,不影响其相对结构,因此度量应对其不变。
若度量同时对正交变换和非各向同性缩放(即特征维度的独立缩放)不变,则等价于对可逆线性变换不变(由奇异值分解可推导)。因此,论文关注对各向同性缩放不变但对非各向同性缩放敏感的度量。
典型度量满足的性质
中心核对齐(CKA)
核心思想
论文提出与其直接比较两个表示 X ∈ R n × p 1 X \in \mathbb{R}^{n \times p_1} X∈Rn×p1和 Y ∈ R n × p 2 Y \in \mathbb{R}^{n \times p_2} Y∈Rn×p2的特征向量,不如比较它们各自的表示相似性矩阵(RSMs),即样本间的内积矩阵 X X T XX^T XXT和 Y Y T YY^T YYT。这种方法受神经科学的启发(Kriegeskorte et al., 2008a),通过样本间的相似性结构间接比较表示。
数学表示
点积相似性
样本间内积矩阵的元素 ( X X T ) i j (XX^T)_{ij} (XXT)ij表示第 i i i个样本和第 j j j个样本在表示 X X X中的相似性。比较 X X T XX^T XXT和 Y Y T YY^T YYT的相似性等价于比较特征间的内积:
⟨ vec ( X X ⊤ ) , vec ( Y Y ⊤ ) ⟩ = tr ( X X ⊤ Y Y ⊤ ) = ∥ Y ⊤ X ∥ F 2 \left\langle\operatorname{vec}\left(X X^{\top}\right), \operatorname{vec}\left(Y Y^{\top}\right)\right\rangle=\operatorname{tr}\left(X X^{\top} Y Y^{\top}\right)=\left\|Y^{\top} X\right\|_{F}^{2} ⟨vec(XX⊤),vec(YY⊤)⟩=tr(XX⊤YY⊤)= Y⊤X F2
其中 ∣ ∣ ⋅ ∣ ∣ F ||\cdot||_F ∣∣⋅∣∣F是Frobenius范数。
线性回归
R LR 2 = ∥ X ^ − X ∥ F 2 ∥ X ∥ F 2 R_{\text{LR}}^2 = \frac{\|\hat{X} - X\|_F^2}{\|X\|_F^2} RLR2=∥X∥F2∥X^−X∥F2
其中 X ^ \hat{X} X^是 Y Y Y对 X X X的线性拟合。
局限性:不对称,仅衡量单向拟合能力;对正交变换和各向同性缩放不变,但忽略双向相似性。
Hilbert-Schmidt Independence Criterion (HSIC):
HSIC(Gretton et al., 2005)是衡量两个核矩阵 K K K和 L L L相关性的统计量。对于线性核 K = X X T K=XX^T K=XXT和 L = Y Y T L=YY^T L=YYT,HSIC为:
HSIC ( K , L ) = 1 ( n − 1 ) 2 t r ( K H L H ) \text{HSIC}(K,L)=\frac{1}{(n-1)^2}tr(KHLH) HSIC(K,L)=(n−1)21tr(KHLH)
其中 H = I n − 1 n 1 1 T H=I_n - \frac{1}{n}11^T H=In−n111T是中心化矩阵。
对中心化的 X X X和 Y Y Y,HSIC等价于跨协方差矩阵的Frobenius范数的平方:
HSIC ( K , L ) = ∥ cov ( X ⊤ , Y ⊤ ) ∥ F 2 \text{HSIC}(K,L)=\left\|\text{cov}(X^{\top}, Y^{\top})\right\|_{F}^{2} HSIC(K,L)= cov(X⊤,Y⊤) F2
典型相关分析(CCA)
R CCA 2 = ∑ i = 1 p 1 ρ i 2 p 1 = ∥ Q Y ⊤ Q X ∥ F 2 p 1 , ρ ~ CCA = ∑ i = 1 p 1 ρ i p 1 = ∥ Q Y ⊤ Q X ∥ ∗ p 1 R_{\text{CCA}}^2 = \frac{\sum_{i=1}^{p_1} \rho_i^2}{p_1} = \frac{\|Q_Y^\top Q_X\|_F^2}{p_1}, \quad \tilde{\rho}_{\text{CCA}} = \frac{\sum_{i=1}^{p_1} \rho_i}{p_1} = \frac{\|Q_Y^\top Q_X\|_*}{p_1} RCCA2=p1∑i=1p1ρi2=p1∥QY⊤QX∥F2,ρ~CCA=p1∑i=1p1ρi=p1∥QY⊤QX∥∗
其中 ρ i \rho_i ρi是典型相关性(canonical correlations), ∥ ⋅ ∥ ∗ \|\cdot\|_* ∥⋅∥∗是核范数。
局限性:对可逆线性变换不变,忽略尺度信息;在高维表示或条件数大时不稳定(Golub & Zha, 1995)。
变体SVCCA通过截断奇异值分解保留固定方差比例的成分(Raghu et al., 2017),仅在保留子空间不变时对可逆线性变换不变,但仍受限于CCA的本质。
变体PWCCA对CCA进行加权,与线性回归密切相关,但不对称且鲁棒性有限。
ρ PW = ∑ i = 1 c α i ρ i ∑ i = 1 c α i , α i = ∑ j ∣ ⟨ h i , x j ⟩ ∣ \rho_{\text{PW}} = \frac{\sum_{i=1}^c \alpha_i \rho_i}{\sum_{i=1}^c \alpha_i}, \quad \alpha_i = \sum_j |\langle \mathbf{h}_i, \mathbf{x}_j \rangle| ρPW=∑i=1cαi∑i=1cαiρi,αi=∑j∣⟨hi,xj⟩∣
CKA的原理和关联
HSIC对各向同性缩放不不变,因此通过归一化得到CKA:
CKA ( K , L ) = HSIC ( K , L ) HSIC ( K , K ) HSIC ( L , L ) \text{CKA}(K, L) = \frac{\text{HSIC}(K, L)}{\sqrt{\text{HSIC}(K,K)\text{HSIC}(L, L)}} CKA(K,L)=HSIC(K,K)HSIC(L,L)HSIC(K,L)
CKA的值在 [ 0 , 1 ] [0,1] [0,1]内,1表示完全相似,0表示完全不相似。
对于线性核,CKA等价于:
CKA ( X X ⊤ , Y Y ⊤ ) = ∥ Y ⊤ X ∥ F 2 ∥ X ⊤ X ∥ F ∥ Y ⊤ Y ∥ F \text{CKA}(XX^\top, YY^\top) = \frac{\|Y^\top X\|_F^2}{\|X^\top X\|_F \|Y^\top Y\|_F} CKA(XX⊤,YY⊤)=∥X⊤X∥F∥Y⊤Y∥F∥Y⊤X∥F2
当 X X X与 Y Y Y中心化时,CKA与CCA有以下关系:
R CCA 2 = CKA ( Q X Q X ⊤ , Q Y Q Y ⊤ ) p 2 p 1 R_{\text{CCA}}^2 = \text{CKA}(Q_X Q_X^\top, Q_Y Q_Y^\top) \sqrt{\frac{p_2}{p_1}} RCCA2=CKA(QXQX⊤,QYQY⊤)p1p2
CKA通过特征值加权(反映方差贡献)改进了CCA,强调重要子空间的作用。
线性回归 R L R 2 R^2_{LR} RLR2与CKA的关系为:
R LR 2 = CKA ( X X ⊤ , Q Y Q Y ⊤ ) p 1 ∥ X ⊤ X ∥ F ∥ X ∥ F 2 R_{\text{LR}}^2 = \text{CKA}(XX^\top, Q_Y Q_Y^\top) \frac{\sqrt{p_1} \|X^\top X\|_F}{\|X\|_F^2} RLR2=CKA(XX⊤,QYQY⊤)∥X∥F2p1∥X⊤X∥F
CKA对称地处理两个表示,而线性回归是不对称的。
CKA的优越性有:
(1)对称性:平等对待两个表示。
(2)加权机制:通过特征值加权,强调重要子空间。
(3)灵活性:支持线性核和非线性核(如RBF核),适应不同表示结构。
(4)鲁棒性:在高维表示和数据点不足时仍有效。
(5)实践:实验证明,CKA能可靠识别不同初始化、不同架构和不同数据集下网络层的对应关系,准确率接近99%。
相关文章:
【论文阅读笔记】模型的相似性
文章目录 The Platonic Representation Hypothesis概述表征收敛的依据表征收敛的原因实验依据未来发展的局限性 Similarity of Neural Network Representations Revisited概述问题背景相似性度量s的性质可逆线性变换不变性正交变换不变性各向同性缩放不变性典型度量满足的性质 …...
MVC协同工作流程
1. 视图层(View)代码作用 核心代码示例(以JSP为例): <!-- register.jsp --> <form action"registerServlet" method"post">用户名: <input type"text" na…...
OpenGL shader开发实战学习笔记:第十章 法线贴图
1. 10 法线贴图 1.1. 什么是法线贴图 我们如果想要在盾牌上实现凹凸感,应该如何做?一种方法是添加更多的顶点来建模更多的细节,但是网格的顶点越多,渲染网格所需的顶点着色器计算就越多,网格占用的内存就越多。大多数…...
神经光子渲染:物理级真实感图像生成——从麦克斯韦方程到深度学习
一、技术背景与核心突破 2025年,神经光子渲染(Photonic Neural Rendering, PNR)技术通过物理光学方程与神经辐射场的深度融合,在AIGC检测工具(如GPTDetector 5.0)的识别准确率从98%降至12%。该技术突破性地…...
MCP 协议知识分享
MCP 协议知识分享 一、MCP 协议概述1.1 定义与背景1.2 核心价值1.3 与传统 API 的对比 二、技术架构与工作原理2.1 核心组件2.2 通信机制2.3 典型工作流程 三、关键技术与应用场景3.1 核心技术3.2 典型应用场景 四、与微软技术的集成4.1 Azure OpenAI 服务4.2 Playwright MCP 服…...
spring boot 文件下载
1.添加文件下载工具依赖 Commons IO is a library of utilities to assist with developing IO functionality. <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version> </depe…...
Redis --- 基本数据类型
Redis --- 基本数据类型 Redis Intro5种基础数据类型 Redis Intro Redis(Remote Dictionary Server)是一款开源的高性能键值存储系统,常用于缓存、消息中间件和实时数据处理场景。以下是其核心特点、数据类型及典型使用场景: 核心…...
随机IP的重要性:解锁网络世界的无限可能
IP地址不仅是连接互联网的“身份证”,更是企业、开发者和个人用户实现高效运营与安全防护的核心工具。然而,固定IP的局限性日益凸显——从隐私泄露到访问受限,从爬虫封禁到商业竞争壁垒,这些问题如何破解?答案就是随机…...
C#: 用Libreoffice实现Word文件转PDF
现实场景中要实现Word格式转PDF格式还是比较常见的。 如果要用开源的组件,只有用Libreoffice了。 一、下载安装Libreoffice 先进入如下链接,找到最新版本和匹配的操作系统来安装。 官网试过,下载是能下载,但安装了用不了&…...
客户验收标准模糊,如何明确
客户验收标准模糊往往会导致项目延迟、质量不符合期望或客户不满意,明确验收标准的关键在于与客户的充分沟通、制定清晰的文档、并确保双方对目标一致性达成共识。在项目的执行过程中,如果客户未能明确表达他们的验收标准,或者项目团队未能确…...
Halcon应用:九点标定-手眼标定
提示:若没有查找的算子,可以评论区留言,会尽快更新 Halcon应用:九点标定-手眼标定 前言一、Halcon应用?二、应用实战1、图形理解[eye-to-hand]:1.1、开始应用2 图形理解[eye-in-hand] 前言 本篇博文主要用…...
springboot3 cloud gateway 配置websocket代理转发教程
前言 最近微服务的项目,需要集成websocket的功能,我在其中的一个微服务模块中集成websocket代码实现,通过模块的端口测试正常,但是通过springboot cloud gateway的端口访问,连接失败!我通过各种百度、和AI…...
详解与FTP服务器相关操作
目录 什么是FTP服务器 搭建FTP服务器相关 编辑 Unity中与FTP相关的类 上传文件到FTP服务器 使用FTP服务器上传文件的关键点 开始上传 从FTP服务器下载文件到客户端 使用FTP下载文件的关键点 开始下载 关于FTP服务器的其他操作 将文件的上传,下载&…...
制作一款打飞机游戏教程8:抖动
我们讨论了爆炸效果,这是非常重要的内容。我们制作了一个可以改变大小的小圆点,并展示了一些微调,比如绘制的圆圈数量和颜色调整等。但我们也提到将要做一些重大改变,这些改变将涉及到颜色的使用方式。 颜色使用方式的改变 目前…...
Linux搭建环境:从零开始掌握基础操作(四)
您好,我是程序员小羊! 前言 软件测试第一步就是搭建测试环境,如何搭建好测试环境,需要具备两项的基础知识: 1、Linux 命令: 软件测试第一个任务, 一般都需要进行环境搭建, 一部分,环境搭建内容是在服…...
第2.4节:学会像AWK一样思考
1 第2.4节:学会像AWK一样思考 AWK的工作方式类似于工厂的流水线。文本数据就像流水线上的产品,AWK逐行读取这些文本,对每行文本进行分割处理,然后通过一系列的模式匹配和动作执行来完成特定的任务。下面我们详细介绍AWK的工作流程…...
内网穿透原理解析、使用网络场景、及如何实现公网访问步骤教程
不多废话,一文了解内网穿透原理解析、使用网络场景、及如何实现公网访问步骤教程。 一,内网穿透原理解析 内网穿透的核心原理是通过中间服务器端口数据转发或点到点技术建立端对端的直连通信通道,使外网设备能够访问内网设备和服务。 1&…...
购买电脑时,主要需要关注以下核心配置,它们直接影响性能、使用体验和价格。根据需求(办公、游戏、设计、编程等),侧重点会有所不同。看看Deepseek的建议
1. 处理器(CPU) 作用:电脑的“大脑”,影响整体运算速度和多任务处理能力。关键参数: 品牌与型号:Intel(酷睿i3/i5/i7/i9)或 AMD(锐龙R3/R5/R7/R9)。核心/线程…...
数据结构与算法[零基础]---4.树和二叉树
四、树和二叉树 (一)树 1.相关定义 树是由一个或多个结点组成的有限集T,它满足以下两个条件:第一个是有一个特定的结点,作为根结点;第二个其余的结点分成m(m>0)个互不相交的有限集T0,T1,.…...
Sklearn入门之数据预处理preprocessing
、 Sklearn全称:Scipy-toolkit Learn是 一个基于scipy实现的的开源机器学习库。它提供了大量的算法和工具,用于数据挖掘和数据分析,包括分类、回归、聚类等多种任务。本文我将带你了解并入门Sklearn下的preprocessing在机器学习中的基本用法。 获取方式…...
4.16学习总结 IO流综合练习
爬虫获取网站内的数据,获得完整姓名 网站一:姓氏 网站二:男生名字 网站三:女生名字 进行拼接,获取完整的男生女生姓名。 //导包 import org.apache.commons.io.FileUtils; import java.io.*; import java.io.IOEx…...
大模型全景解析:从技术突破到行业变革
目录 一、引言:人工智能的新纪元 二、大模型发展历史与技术演进 1. 早期探索期(2015-2017):从"人工智障"到初具规模 RNN/LSTM架构时代(2013-2017) Transformer革命(2017…...
充电宝项目中的MQTT(轻量高效的物联网通信协议)
文章目录 补充:HTTP协议MQTT协议MQTT的核心特性MQTT vs HTTP:关键对比 EMQX项目集成EMQX集成配置客户端和回调方法具体接口和方法处理处理类 补充:HTTP协议 HTTP是一种应用层协议,使用TCP作为传输层协议,默认端口是80…...
AgentOps - 帮助开发者构建、评估和监控 AI Agent
文章目录 一、关于 AgentOps二、关键集成 🔌三、快速开始 ⌨️2行代码中的Session replays 首类开发者体验 四、集成 🦾OpenAI Agents SDK 🖇️CrewAI 🛶AG2 🤖Camel AI 🐪Langchain 🦜…...
n8n 为技术团队打造的安全工作流自动化平台
AI MCP 系列 AgentGPT-01-入门介绍 Browser-use 是连接你的AI代理与浏览器的最简单方式 AI MCP(大模型上下文)-01-入门介绍 AI MCP(大模型上下文)-02-awesome-mcp-servers 精选的 MCP 服务器 AI MCP(大模型上下文)-03-open webui 介绍 是一个可扩展、功能丰富且用户友好的…...
MyBatis:SpringBoot结合MyBatis、MyBatis插件机制的原理分析与实战
🪁🍁 希望本文能给您带来帮助,如果有任何问题,欢迎批评指正!🐅🐾🍁🐥 文章目录 一、背景二、Spring Boot项目中结合MyBatis2.1 数据准备2.2 pom.xml依赖增加2.3 applicat…...
【数据结构】3.单链表专题
文章目录 单链表的实现0、准备工作1、链表的打印2、尾插3、头插4、尾删5、头删6、查找指定数据的位置7、在指定位置之前插入数据8、在指定位置之后插入数据9、删除指定位置的数据10、删除指定位置之后的数据11、单链表的销毁 单链表的实现 什么是单链表呢?单链表可…...
**Microsoft Certified Professional(MCP)** 认证考试
1. MCP 认证考试概述 MCP(Microsoft Certified Professional)是微软认证体系中的一项入门级认证,旨在验证考生在微软产品和技术(如 Windows Server、Azure、SQL Server、Microsoft 365)方面的技能。2020 年࿰…...
C++学习之游戏服务器开发git命令
目录 1.服务器需求分析 2.面向框架编程简介 3.ZINX框架初始 4.回显标准输入 5.VS结合GIT 6.完善readme范例 7.添加退出功能 8.添加命令处理类 9.添加日期前缀思路 10.添加日期前缀功能 1.服务器需求分析 zinx 描述 zinx 框架是一个处理多路 IO 的框架。在这个框架中提…...
Maven 多仓库与镜像配置全攻略:从原理到企业级实践
Maven 多仓库与镜像配置全攻略:从原理到企业级实践 一、核心概念:Repository 与 Mirror 的本质差异 在 Maven 依赖管理体系中,repository与mirror是构建可靠依赖解析链的两大核心组件,其核心区别如下: 1. Repositor…...
无锁队列--知识分享
目录 无锁队列 无锁队列是什么 为什么需要无锁队列 队列的类型 无锁队列的分类 ringbuffer(SPSC) ret_ring(MPMC) 无锁队列 无锁队列是什么 无锁队列通过原子操作来实现线程安全的队列,属于非阻塞队列 …...
Flask快速入门
1.安装 Flask 要使用 Flask,你需要先安装它。打开终端,运行以下命令: pip install flask 2.创建文件结构 3.app.py from flask import Flask:从 flask 库中导入 Flask 类。app Flask(__name__):创建一个 Flask 应…...
LeetCode -- Flora -- edit 2025-04-16
1.两数之和 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按…...
【Unity笔记】实现可视化配置的Unity按键输入管理器(按下/长按/松开事件 + UnityEvent绑定)
【Unity笔记】实现可视化配置的Unity按键输入管理器 适用于角色控制、技能触发的Unity按键输入系统,支持UnityEvent事件绑定、长按/松开监听与启用开关 一、引言 在 Unity 游戏开发中,处理键盘输入是最常见的交互方式之一。尤其是角色控制、技能释放、菜…...
SpringMVC学习(请求与响应。常见参数类型接收与响应。@RequestParam、@RequestBody的使用)(详细示例)
目录 一、请求与响应。(RequestMapping) (1)使用注解RequestMapping对业务模块区分。 StudentController。 TeacherController。 (2)Apifox请求与响应。 "/student/login"。 "/teacher/login"。 二、常见参数…...
springboot 切面拦截自定义注解
使用切面来拦截被该注解标记的方法 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>1. 定义自定义注解 import java.lang.annotation.ElementType; imp…...
QT —— 信号和槽(自定义信号和槽函数)
QT —— 信号和槽(自定义信号和槽函数) 自定义信号和槽函数一、自定义信号函数规范1. 声明位置2. 返回值与实现3. 参数与重载 二、自定义槽函数规范1. 声明位置(不同版本差异)2. 返回值与实现3. 参数与重载 三、信号发射规范1. 基…...
朋克编码以潮玩语言讲述中国文化|益民艺术馆展演东方潮力
朋克编码于广州益民艺术馆推出“艺术家潮玩”系列主题展,将传统文化元素融入 潮玩设计,并通过数字科技与空间场景创新,讲述中国故事、传递东方美学。 展览作品结合太空猿等原创 IP 与“中式元素”视觉符号,引发观众情感共鸣。“我…...
TA学习之路——2.2 模型与材质基础
1.模型基础 1.1 图形渲染管线 1.2 模型实现的原理 点连成线,线构成面,面构成模型。 1.2 UV UV例如一个正方体的纸盒展开,平铺在一个二维的坐标系中。 模型的每一个顶点在三维空间和二维空间中都能一 一对应。在二维坐标系中的顶点对应的位置就是顶点的纹理坐标。 因此…...
helm的go模板语法学习
1、helm chart 1.0、什么是helm? 介绍:就是个包管理器。理解为java的maven、linux的yum就好。 安装方法也可参见官网: https://helm.sh/docs/intro/install 通过前面的演示我们知道,有了helm之后应用的安装、升级、查看、停止都…...
Windows 图形显示驱动开发-WDDM 1.2功能—Windows 8 中的 DirectX 功能改进(一)
Windows 8包括 Microsoft DirectX 功能改进,使开发人员、最终用户和系统制造商受益。 功能改进在以下几个方面: 像素格式 (5551、565、4444) :在低功耗硬件配置下,DirectX 应用程序的性能更高。双精度着色器功能:高级…...
软件测试|App测试面试相关问题(2)
一、App 稳定怎么做的?Monkey 怎么用(App 稳定测试)? 稳定性这块,我们当时用的是SDK 自动的一个Monkey 工具进行测试的,其实Monkey工具主要通过模拟用户发送伪随机时间去操作软件,通过执行Monkey 命令,它会自动出报告ÿ…...
模拟电路需要了解的一些基础知识(部分)
基本的单路元件 1. 电阻;特性:阻碍电流流动,消耗电能并转化为热能(遵循欧姆定律)。是无源元件,应用:限流、分压、发热等; 2. 电容;特性:存储电荷和电场能&am…...
[特殊字符] MySQL MCP 开发实战:打造智能数据库操作助手
💡 简介:本文详细介绍如何利用MCP(Model-Control-Panel)框架开发MySQL数据库操作工具,使AI助手能够直接执行数据库操作。 📚 目录 引言MCP框架简介项目架构设计开发环境搭建核心代码实现错误处理策略运行和…...
软考备考(一)学习笔记
一、软考介绍 计算机软考,计算机技术与软件专业技术资格(水平)考试 一年考试两次: 一次上旬(5月底),下旬一次(11月初) 初级资格:程序员 中级资格: 软件设计师 高级资格: 系统架构设计师 初级: 科目一:计算机硬软件基础知识 150min 笔试、选择 科目二:程序设…...
Linux环境变量
目录 环境变量 基本概念 常见环境变量 查看环境变量方法 测试PATH 测试HOME 和环境变量相关的命令 环境变量的组织方式 通过代码如何获取环境变量 通过系统调用获取或设置环境变量 编辑 环境变量通常是具有全局属性的 实验 环境变量 基本概念 环境变量(environment variables…...
跨浏览器书签同步方案:WebDAV + Floccus插件实操指南
FloccusWebDAV能够帮助把多个不同浏览器书签统一私有化管理,以下是介绍: Floccus 是一个允许用户在不同浏览器和设备之间私密同步书签的扩展,开源地址:https://github.com/floccusaddon/floccusWebDAV是一种基于HTTP的协议&#…...
银河麒麟系统 达梦8 安装 dlask 框架后端环境
适配的一套环境为 dmPython2.5.8 dmSQLAlchemy1.4.39 Flask2.0.3 Flask-Cors3.0.10 Flask-SQLAlchemy2.5.1 SQLAlchemy1.4.54 Werkzeug2.2.2其中 # sqlalchemy-dm1.4.39 通过dmdbms目录内文件进行源码安装 (MindSpore) [ma-user python]$pwd /home/syl/dmdbms/drivers/python…...
代码随想录算法训练营Day31
力扣738.单调递增的数字【medium】 力扣968.监控二叉树【hard】 一、力扣738.单调递增的数字【medium】 题目链接:力扣738.单调递增的数字 视频链接:代码随想录 1、思路 先将整数转为字符串变成可迭代对象,再转为列表从后向前遍历ÿ…...
LeetCode Hot100 刷题笔记(10)—— ACM格式输入输出练习
目录 Trick: 1. 只有输出 2. 单组_AB 3. 多组_AB_EOF形式 4. 多组_AB_T组形式 5. 多组_AB_零尾形式 6. 单组_一维数组 7. 多组_二维数组_T组形式 8. 单组_二维数组 9. 多组_二维数组_T组形式 10. 单组_字符串 11. 多组_字符串_T组形式 12. 单组_二维字符数组 13. 多组_带空格的…...