当前位置: 首页 > news >正文

PCA降维算法详细推导

关于一个小小的PCA的推导

文章目录

    • 关于一个小小的PCA的推导
      • 1 谱分解 (spectral decomposition)
      • 2 奇异矩阵(singular matrix)
      • 3 酉相似(unitary similarity)
      • 4 酉矩阵
      • 5 共轭变换
      • 6 酉等价
      • 7 矩阵的迹的计算以及PCA算法推导
      • 8 幂等矩阵(idempotent matrix)
      • 9 Von Neumann's 迹不等式 [wiki链接](https://en.wikipedia.org/wiki/Trace_inequality#Von_Neumann.27s_trace_inequality)
      • 10 矩阵相似
      • 11 矩阵的特征值与特征向量
      • 12 正规矩阵
      • 13 正定矩阵、半正定矩阵
        • 正定矩阵
      • 参考文献

如果有概念不懂,请从目录中查找,或者直接检索。
如果想直入主题,请从第7小节开始看。

1 谱分解 (spectral decomposition)

矩阵中有一个概念叫做谱分解。

定理2.5.3

在这里插入图片描述

所以根据定理2.5.3的(a)(b)可知:**正规矩阵(请看第12条)都是酉可对角化(unitarily diagonalizable)**的,形式为:存在一个酉矩阵V使得A = V Λ V ∗ V \Lambda V^* VΛV, 并且 Λ = d i a g ( λ 1 , … , λ n ) \Lambda = diag (\lambda_1,\dots,\lambda_n) Λ=diag(λ1,,λn).

定理2.2.2 酉相似的两个矩阵的元素平方和相等。

在这里插入图片描述

由于酉相似的两个矩阵的元素平方和相等,所以自然就可以得到性质c.

根据舒尔三角化定理,任何复方阵都酉相似于一个三角阵,该三角阵的对角元素为其特征值。则写出它的舒尔分解形式:

A = U T U ∗ A = UTU^* A=UTU, 其中 U = [ u 1 , … , u n ] U = [u_1,\dots, u_n] U=[u1,,un]是一个酉矩阵, T = [ t i j ] ∈ M n T = [t_{ij}]\in M_n T=[tij]Mn是一个上三角矩阵。这样一个分解可以写成AU = UT,即A [ u 1 , … , u n ] [u_1,\dots,u_n] [u1,,un] = [ u 1 , … , u n ] [u_1,\dots,u_n] [u1,,un]T, 而T是对角阵,所以$Au_i = t_{ii}u_i $ for each i = 1 , … , n i = 1,\dots,n i=1,,n, 因此 U U U的n个列是A的标准正交的特征向量。

根据矩阵分析第134页首次出现谱分解给出的定义来看,谱分解的定义可以这么写:

其中酉矩阵的n个列向量就是A的特征向量。

一个正规矩阵可以表示成一个酉矩阵、一个对角矩阵、以及该酉矩阵的共轭转置的乘积。这样一个分解称作该正规矩阵谱分解。

谱分解中对角矩阵的对角元便是其特征值,酉矩阵的列向量便是其对应的特征向量。

2 奇异矩阵(singular matrix)

一个线性变换或者矩阵被称之为nonsingular(非奇异)(不奇怪),如果这个变换仅对0这个输入产生0的输出,否则它就是被称作singular(奇异)

对于这个概念,我觉得很有意思。singular这个英文单词百度百科上的英文意思是:奇怪的,独特的,独一无二的。根据上面的定义,如果某个变换将一个非零的东西映射成了0,则这个变换是很奇怪的,是异常的。

我觉得称之为非比寻常也是可以的,说明这样的变换具有一种超能力,能将非零的东西变成零,以至于独孤求败,无人可比(如果它是方阵,则没有与之对应的逆矩阵)。

方阵中,哪些矩阵不平常呢?

如果A是一个方阵,则下列条件是等价的。

A是非奇异矩阵, 等价于该矩阵存在逆矩阵 ,

等价于 Ax =0的有唯一解零向量 ,

等价于 0肯定不是A的特征值(因为矩阵的特征值的定义中需要从非零向量映射,而非奇异矩阵无法将非零向量映射到零向量,故0断然不是A的一个特征值)

3 酉相似(unitary similarity)

定义:对于酉矩阵来说,酉矩阵的共轭转置即为其逆矩阵。所以存在一个相似变换其对应的矩阵为酉矩阵,则称变换前后的两个矩阵是酉相似的。

性质

  • 如果两个矩阵酉相似,则两个矩阵的元素平方和相等,即二者的共轭转置与原矩阵的乘积的迹相等。 tr ⁡ B ∗ B = tr ⁡ A ∗ A \operatorname{tr} B^* B=\operatorname{tr} A^* A trBB=trAA

  • 如果某个矩阵酉相似于一个对角矩阵,则称该矩阵是酉可对角化的。

舒尔定理

可能基本矩阵理论中最有用的一个事实要归于舒尔的一个定理:任何复方阵酉相似于一个三角阵,该三角阵的对角元素是矩阵的特征值,可以以任意特定的顺序排列。这就是大名鼎鼎的舒尔形式、舒尔三角化:任何一个方阵都酉相似于一个对角线元素为该方阵的特征值的上三角矩阵。

4 酉矩阵

定义:酉矩阵的逆矩阵是其共轭转置。

说明:酉矩阵这一类矩阵的逆矩阵的形式简单,就是其共轭转置。求共轭转置比求逆更加简单。

性质

  • 酉矩阵是非奇异矩阵,其逆矩阵就是其共轭转置。酉矩阵的行向量组和列向量组均是标准正交的。酉矩阵这个线性变换对向量是保持距离的,即向量 x x x和向量 U x Ux Ux有相同的欧式范数。
  • 两个酉矩阵的乘积(如果可以相乘)仍为酉矩阵。

5 共轭变换

通过一个非奇异矩阵以及它的共轭转置来对一个矩阵进行映射,这样的变换称作共轭变换,形如: A → S ∗ A S A \rightarrow S^* A S ASAS

6 酉等价

定义:将一个矩阵,通过两个酉矩阵变换到一个新的矩阵,这样一个变换称作酉等价。

性质:

  • 每一个矩阵均酉等价于一个非负的对角阵,该对角阵的元素为矩阵的奇异值。这些奇异值很重要。

7 矩阵的迹的计算以及PCA算法推导

在矩阵理论推导过程中,经常会使用到矩阵的迹的计算方法,所以掌握该类计算方法对于理论推导是大有裨益的。

B ∈ R d , n B \in \mathbb{R}^{d, n} BRd,n , D ∈ R d , d D\in \mathbb{R}^{d,d} DRd,d, 求 B T D B B^T D B BTDB的迹。

用到的一个技术叫做 分块矩阵中的列分块。

(将矩阵进行分块,可以简化计算。当然在分块计算时,要先检查矩阵的行数与列数,判断是否可以进行相乘)

这里需要补充分块矩阵的相关知识。

https://baike.baidu.com/item/%E5%88%86%E5%9D%97%E7%9F%A9%E9%98%B5/10234479 (分块矩阵,百度百科链接)

首先将B进行列分块, B = [ b 1 , … , b n ] , b i ∈ R d B = [b_1,\dots, b_n], b_i\in \mathbb{R}^d B=[b1,,bn],biRd

然后

在这里插入图片描述

在这里插入图片描述

看到这里,就可以来进行PCA算法的证明了。

PCA算法是一个降维算法,方法是使用一个线性变换将原来的高维空间的向量映射到一个低维空间。目标是找到这样一个线性变换,即一个矩阵。要求是不仅能够将原始向量从高维空间映射到低维空间,还要能够从低维空间映射回来,所以这就又需要一个变换,即又一个矩阵,并且要求映射回来的向量与原始向量尽可能的逼近。

x 1 , … , x m x_1,\dots, x_m x1,,xm R d \mathbb{R}^d Rd中的 m m m个向量, 我们要将其映射到 R n \mathbb{R}^n Rn中(n<d). 我们需要一个矩阵 W ∈ R n , d W \in \mathbb{R}^{n, d} WRn,d将其映射过去:
x ↦ W x \mathbf{x} \mapsto W \mathbf{x} xWx
然后还需要一个矩阵 U ∈ R d , n U \in \mathbb{R}^{d, n} URd,n,可以用来恢复每一个向量的压缩版本,即对于一个压缩后的向量 y = W x \mathbf{y}=W \mathbf{x} y=Wx, 我们可以构造 x ~ = U y \tilde{\mathbf{x}}=U \mathbf{y} x~=Uy,使得 x ~ = U y \tilde{\mathbf{x}}=U \mathbf{y} x~=Uy位于原始高维空间 R d \mathbb{R}^d Rd, 且尽可能与原始向量之间的平方距离尽可能小,就是下面这样一个优化问题:
argmin ⁡ W ∈ R n , d , U ∈ R d , n ∑ i = 1 m ∥ x i − U W x i ∥ 2 2 \underset{W \in \mathbb{R}^{n, d}, U \in \mathbb{R}^{d, n}}{\operatorname{argmin}} \sum_{i=1}^m\left\|\mathbf{x}_i-U W \mathbf{x}_i\right\|_2^2 WRn,d,URd,nargmini=1mxiUWxi22
首先,我们证明解集一定满足下面这种形式:

U U U的列向量组是标准正交的,且 W W W U U U的转置矩阵。

在这里插入图片描述

证明可参见矩阵分析引理23.1,由于时间关系,先放一放。

上述结论说明,解集是引理23.1中满足条件的U,W组成的集合的子集。

于是,上述优化问题可以将搜索范围进一步缩小:
argmin ⁡ U ∈ R d , n : U ⊤ U = I ∑ i = 1 ∥ x i − U U ⊤ x i ∥ 2 2 . \underset{U \in \mathbb{R}^{d, n}: U^{\top} U=I}{\operatorname{argmin}} \sum_{i=1}\left\|\mathbf{x}_i-U U^{\top} \mathbf{x}_i\right\|_2^2 . URd,n:UU=Iargmini=1 xiUUxi 22.
上述目标函数可以化为:
在这里插入图片描述

由于矩阵的迹是一个线性算子,所以累加符号可以与迹运算进行交换,进一步将上述问题转化为:
argmax ⁡ U ∈ R d , n : U ⊤ U = I trace ⁡ ( U ⊤ ∑ i = 1 m x i x i ⊤ U ) \underset{U \in \mathbb{R}^{d, n}: U^{\top} U=I}{\operatorname{argmax}} \operatorname{trace}\left(U^{\top} \sum_{i=1}^m \mathbf{x}_i \mathbf{x}_i^{\top} U\right) URd,n:UU=Iargmaxtrace(Ui=1mxixiU)
A = ∑ i = 1 m x i x i ⊤ A=\sum_{i=1}^m \mathbf{x}_i \mathbf{x}_i^{\top} A=i=1mxixi, 那么问题则转化为:
argmax ⁡ U ∈ R d , n : U ⊤ U = I trace ⁡ ( U ⊤ A U ) \underset{U \in \mathbb{R}^{d, n}: U^{\top} U=I}{\operatorname{argmax}} \operatorname{trace}\left(U^{\top} A U\right) URd,n:UU=Iargmaxtrace(UAU)
如何求解该优化问题?首先要能够对目标函数进行计算:

可以验证矩阵A是对称矩阵,而对称矩阵是正规矩阵,正规矩阵又可以进行谱分解,写出其谱分解形式 A = V D V T A = VDV^T A=VDVT, 其中 D D D为对角阵,对角元素为 A A A的特征值, V V V为酉矩阵,即 V V T = V T V = I VV^T = V^TV = I VVT=VTV=I, 且 V V V的列向量组为 A A A的特征向量。


trace ⁡ ( U ⊤ A U ) = trace ⁡ ( U ⊤ V D V T U ) \operatorname{trace}\left(U^{\top} A U\right) =\operatorname{trace}\left(U^{\top}VDV^T U\right) trace(UAU)=trace(UVDVTU)

进行一个变量代换,令 B = V T U ∈ R d , n B = V^T U \in \mathbb{R}^{d,n} B=VTURd,n

于是,便有了下面的推导:

注:经过一下演算(通过半正定二次型的定义),可知 A A A是半正定矩阵,所以矩阵D的对角元素均非负。

主要思路是通过Von Neumann提出的埃尔米特半正定复方阵乘积的迹不等式。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

8 幂等矩阵(idempotent matrix)

若一个矩阵是方阵,且矩阵的平方仍为自己,则称该方阵为幂等矩阵。(顾名思义,取幂仍为自己的矩阵称为幂等矩阵)

性质:

  • 幂等矩阵的迹等于幂等矩阵的秩。
  • 幂等矩阵要么相似于对角元全为1或者0的对角阵。(即对角阵的对角元的元素只能是0,1,不会出现其他值)。

9 Von Neumann’s 迹不等式 wiki链接

对于两个埃尔米特的n阶半正定复方阵A, 和B, 它们的特针织现在按照递减的顺序进行排列分别为 a 1 ≥ a 2 ≥ ⋯ ≥ a n a_1\ge a_2\ge\dots\ge a_n a1a2an b 1 ≥ ⋯ ≥ b n b_1\ge\dots\ge b_n b1bn,

则有 Tr ⁡ ( A B ) ≤ ∑ i = 1 n a i b i \operatorname{Tr}(A B) \leq \sum_{i=1}^n a_i b_i Tr(AB)i=1naibi

10 矩阵相似

如果两个矩阵相似,则这两个矩阵有相同的特征值。

11 矩阵的特征值与特征向量

对于一个n阶矩阵A来说,如果一个标量 λ \lambda λ和一个非零向量 x x x满足
A x = λ x , x ∈ C n , x ≠ 0 , λ ∈ C Ax = \lambda x, x\in C^n, x\ne 0, \lambda \in C Ax=λx,xCn,x=0,λC
λ \lambda λ称为A的一个特征值, x x x称为A属于 λ \lambda λ的特征向量。 ( λ , x ) (\lambda, x) (λ,x)是矩阵 A A A的一个特征对。

特征值和特征向量从来都是成对出现的。

12 正规矩阵

正规矩阵是非常重要的一类矩阵:它包括

酉矩阵、埃尔米特矩阵、斜埃尔米特矩阵(skew Hermitian)、实正交矩阵、实对称矩阵、实斜对称矩阵。

正规矩阵的定义: 如果一个n维矩阵A满足它和它的共轭转置矩阵是可交换的,则称该矩阵是正规矩阵。

正规矩阵的性质:

13 正定矩阵、半正定矩阵

有一类埃尔米特矩阵,它们有一个特殊的正的性质,它们自然地出现在很多应用中。带有这种正性的埃尔米特矩阵也将正数推广到了矩阵上。这个观察经常为正定矩阵的应用和性质提供了新的视角。下面一些例子也展现了这种特殊的埃尔米特矩阵的出现的方式。

例如 Hessian矩阵、协方差矩阵等。

正定矩阵

定义:称一个埃尔米特矩阵是正定的,如果对于任意的复数域上的非零向量,其二次型均为正数,则称该矩阵是正定矩阵。

同理,如果二次型为非负数,则称该矩阵为半正定矩阵。

参考文献

[1] https://math.stackexchange.com/questions/1902421/prove-that-the-trace-of-the-matrix-product-uau-is-maximized-by-setting-us

相关文章:

PCA降维算法详细推导

关于一个小小的PCA的推导 文章目录 关于一个小小的PCA的推导1 谱分解 (spectral decomposition)2 奇异矩阵(singular matrix)3 酉相似(unitary similarity)4 酉矩阵5 共轭变换6 酉等价7 矩阵的迹的计算以及PCA算法推导8 幂等矩阵(idempotent matrix)9 Von Neumanns 迹不等式 [w…...

C++ 基础思维导图(一)

目录 1、C基础 IO流 namespace 引用、const inline、函数参数 重载 2、类和对象 类举例 3、 内存管理 new/delete 对象内存分布 内存泄漏 4、继承 继承权限 继承中的构造与析构 菱形继承 1、C基础 IO流 #include <iostream> #include <iomanip> //…...

Excel文件恢复教程:快速找回丢失数据!

Excel文件恢复位置在哪里&#xff1f; Excel是微软开发的电子表格软件&#xff0c;它为处理数据和组织工作提供了便捷。虽然数据丢失的问题在数字时代已经司空见惯&#xff0c;但对于某些用户来说&#xff0c;恢复未保存/删除/丢失的Excel文件可能会很困难&#xff0c;更不用说…...

人脑处理信息的速度与效率:超越计算机的直观判断能力

人脑处理信息的速度与效率&#xff1a;超越计算机的直观判断能力 关键词&#xff1a; #人脑信息处理 Human Brain Information Processing #并行处理 Parallel Processing #视觉信息分析 Visual Information Analysis #决策速度 Decision Speed #计算机与人脑比较 Computer v…...

Spring Boot 中的 classpath详解

Spring Boot 中的 classpath 详解 在开发 Spring Boot 应用时&#xff0c;理解 classpath 的概念对于配置、资源管理以及构建项目非常重要。特别是当我们使用 Maven 打包工具时&#xff0c;项目的资源文件在不同的阶段会被放置到不同的目录。本文将深入探讨 Spring Boot 中的 …...

标准库以及HAL库——按键控制LED灯代码

按键控制LED本质还是控制GPIO,和点亮一个LED灯没什么区别 点亮一个LED灯&#xff1a;是直接控制输出引脚&#xff0c;GPIO初始化推挽输出即可 按键控制LED&#xff1a;是按键输入信号从而控制输出引脚&#xff0c;GPIO初始化推挽输出一个引脚以外还得加一个GPIO上拉输入 但是…...

Spring Cloud (四、服务熔断降级-HyStrix)

spring cloud 概述 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系&#xff0c;每个依赖关系在某些时候将不可避免地失败。 服务雪崩 多个微服务之间调用的时候&#xff0c;假设微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调用其它的…...

【C语言】如何插入并播放音频文件

在 C 语言中处理音频文件可以是一个有趣且挑战性的任务&#xff0c;尤其是在嵌入式开发或多媒体程序开发中。尽管 C 语言本身并不直接支持音频处理&#xff0c;但可以通过集成第三方库来处理音频文件的解码和播放。本篇博客将介绍如何在 C 语言中插入并播放音频文件&#xff0c…...

图书项目:整合SSM

步骤&#xff1a; pom文件&#xff1a;导包&#xff0c;写入静态资源导出配置&#xff0c;连接数据库 建包&#xff1a;controller dao/mapper pojo service 配置文件&#xff1a;mybatis-config.xml applicationContext.xml&#xff08;Spring的配置文件&#xff09; datab…...

C#OPC(下)

安装 OPC UA SDK 通过 NuGet 包管理器&#xff0c;在 Visual Studio 中右键单击项目名称&#xff0c;选择 “管理 NuGet 程序包”&#xff0c;在搜索框中输入 “OPCFoundation.NetStandard.Opc.Ua”&#xff0c;找到对应的 OPC UA SDK 包后点击 “安装”&#xff0c;将其集成到…...

STLG_01_05_程序设计C语言 - 数据类型概念解析

一、典型例题 下面这些示例&#xff0c;将能够更熟练地运用C语言中的数据类型&#xff0c;加深对数据存储和处理的理解&#xff1a; 示例&#xff1a;确定变量a、b、c和d的数据类型&#xff0c;并说明它们的存储大小和取值范围 short int a -1000; unsigned int b 50000; f…...

使用工厂+策略模式实现去除繁琐的if else

使用工厂策略模式实现去除繁琐的if else 在中间有一个mapstruct的bug&#xff0c;即在修改实体类中的类型时&#xff0c;或者修改属性名字&#xff0c;mapstruct都无法进行转换&#xff0c;会报错&#xff0c;此时需要maven cleanmaven compile即可 前言 在这次的开发中&#…...

Apache MINA 反序列化漏洞CVE-2024-52046

漏洞描述&#xff1a; Apache MINA 是一个功能强大、灵活且高性能的网络应用框架。它通过抽象网络层的复杂性&#xff0c;提供了事件驱动架构和灵活的 Filter 链机制&#xff0c;使得开发者可以更容易地开发各种类型的网络应用。 Apache MINA 框架的 ObjectSerializationDeco…...

SpringSpringBoot常用注解总结

Spring&SpringBoot常用注解总结 1.SpringBootApplication 这个注解是 Spring Boot 项目的基石&#xff0c;创建 SpringBoot 项目之后会默认在主类加上。 SpringBootApplication public class SpringSecurityJwtGuideApplication {public static void main(java.lang.Str…...

设计模式 创建型 原型模式(Prototype Pattern)与 常见技术框架应用 解析

原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;其核心思想在于通过复制现有的对象&#xff08;原型&#xff09;来创建新的对象&#xff0c;而非通过传统的构造函数或类实例化方式。这种方式在需要快速创建大量相似对象时尤为高效&#x…...

cnPuTTY 0.82.0.1—PuTTY Release 0.82中文版本简单说明~~

2024-11-27 官方发布PuTTY 0.82主要包含如下变化&#xff1a; 1.Unicode处理进行了重大重构&#xff0c;以允许使用系统默认配置的字符集/代码页之外的Unicode字符。仅部分实现&#xff0c;其他尚未完成。 2.Unicode版本进行更新&#xff1a;所有字符分析均已更…...

TypeScript 常用类型

文章目录 1. 类型注解2. 原始类型3. 数组类型4. 联合类型5. 类型别名6. 函数类型7. 对象类型8. 接口类型8.1 接口声明8.2 接口继承 9. 元组类型10. 类型断言11. 字面量类型12. 枚举类型12.1 数字枚举12.2 字符串枚举 13. any 类型14. typeof 运算符 1. 类型注解 前言&#xff1…...

综合能源建模:理论、方法与实践

一、引言 随着全球能源需求的持续增长以及对能源安全、环境保护和可持续性发展的日益关注&#xff0c;综合能源系统&#xff08;Integrated Energy System&#xff0c;IES&#xff09;作为一种能够整合多种能源资源、实现能源高效利用和协同优化的解决方案&#xff0c;正逐渐成…...

《摄影艺术创作》慕课期末答案

《摄影艺术创作》慕课期末考试答案 题数 100 人们常说&#xff0c;“百闻不如一见”、“一图胜千言”&#xff0c;这强调的是 的表现力。 A视觉形象 B文字语言 C音响元素 D有声语言 “绘画是加法&#xff0c;摄影是减法”&#xff0c;主要是指无论摄影和绘画&#xff0c;都要…...

MySQL实用SQL示例

创建数据库 CREATE DATABASE zq-cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;创建表 CREATE TABLE regulatory_firm_category (category_id int NOT NULL AUTO_INCREMENT COMMENT 分类id&#xff0c;自增主键,parent_id int NOT NULL COMMENT 父级id,category_…...

MySQL日志

MySQL日志 文章目录 MySQL日志binlogredoundoredo vs undo binlog binlog日志也就是二进制日志&#xff0c;把对于数据库的写入操作以二进制的形式保存到磁盘中。binlog日志是mysql的逻辑日志&#xff0c;可以理解为记录的是sql日志&#xff0c;由mysql的服务层进行记录&#…...

双目的一些文章学习

文章1 PSMNet https://arxiv.org/pdf/1803.08669PSMNet文章博客PSMNet文章中牵涉到的一些知识&#xff0c;空洞卷积&#xff0c;SPPNet网络&#xff0c;计算视差时用soft argmin代替argmin文章中引入了空洞卷积和SPPNet网络来融合多尺度的信息&#xff0c;又引入3D卷积来增加模…...

国产文本编辑器EverEdit - 批量转码转换行符

1 批量转码&转换行符 1.1 应用场景 如果用户批量在Windows编辑文件&#xff0c;要上传到异构系统&#xff0c;如&#xff1a;Linux&#xff0c;则需要批量转换编码和换行符&#xff0c;此时可以使用EverEdit的批量转码功能。 1.2 使用方法 选择主菜单文档 -> 批量转码…...

NextCloud服务安装与配置教程

NextCloud服务安装与配置教程 什么是 NextCloud: Nextcloud 是一款开源的私有云存储和协作平台,允许用户在自己的服务器上托管数据并管理团队协作。它可以作为一个功能丰富、安全可靠的替代方案,与商业云服务(如 Google Drive、Dropbox)相比提供更多控制和隐私保护。简单来…...

查看 SSD能承载的每秒随机IO次数

查看 SSD能承载的每秒随机IO次数 通常给大家的一个建议就是对于数据库部署的机器&#xff0c;一定要采用SSD固态硬盘&#xff0c;而不要使用机械 硬盘&#xff0c;因为SSD固态硬盘最强大的地方&#xff0c;就是他的随机IO性能非常高。 其次&#xff0c;光是用SSD还不够&#x…...

C# 设计模式(结构型模式):享元模式

C# 设计模式&#xff08;结构型模式&#xff09;&#xff1a;享元模式 (Flyweight Pattern) 在软件开发中&#xff0c;尤其是在处理大量对象时&#xff0c;我们常常会面临内存和性能上的挑战。当多个对象具有相似的状态时&#xff0c;通常会占用大量的内存资源&#xff0c;从而…...

使用Python,networkx构造有向图及无向图以及图合并等api

使用Python&#xff0c;networkx构造有向图及无向图以及图合并等api 源码图的构造、节点及边的添加等有向图及无向图及多重图 参考 方法名方法作用subgraph(G, nbunch)返回包含nbunch节点的子图union(G, H[, rename])合并G和H图disjoint_union(G, H)合并G和H图cartesian_produc…...

【SOC 芯片设计 DFT 学习专栏 -- 测试向量生成 ATPG (Automatic Test Pattern Generation) 】

文章目录 OverviewATPG 的基本功能ATPG 的工作流程ATPG 应用场景示例示例 1&#xff1a;检测单个信号的 Stuck-at Fault示例 2&#xff1a;针对 Transition Fault 的 ATPG ATPG 工具与常用工具链ATPG 优化与挑战 Overview 本文主要介绍 DFT scan 中的 ATPG 功能。在 DFT (Desi…...

uniapp本地加载腾讯X5浏览器内核插件

概述 TbsX5webviewUTS插件封装腾讯x5webview离线内核加载模块&#xff0c;可以把uniapp的浏览器内核直接替换成Android X5 Webview(腾讯TBS)最新内核&#xff0c;提高交互体验和流畅度。 功能说明 下载SDK插件 1.集成x5内核后哪些页面会由x5内核渲染&#xff1f; 所有plus…...

树莓派之旅-在wsl-x86-64 上进行树莓派的交叉编译

前情提要&#xff1a; 想把自己花里胡哨的终端丢到树莓派上去&#xff0c;可是树莓派算力不够&#xff0c;编译时间过于漫长 交叉编译 定义网上有&#xff0c;懒得复制了&#xff0c;大概就是在本机电脑上编译目标平台的可执行文件 这里的目标平台是树莓派 使用 uname -m …...

JavaScript中Map与Object的区别

在JavaScript中&#xff0c;Map和Object是用于存储键值对数据的两种不同的数据结构&#xff08;Map是ES6新增的数据结构&#xff09;&#xff0c;它们在构造方式、键的类型以及原型继承等方面存在区别。 一、主要区别 1.构造方式 Map&#xff1a;Map只能通过构造函数new Map…...

基于嵌入式无人机UAV通信系统的实时最优资源分配算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于嵌入式无人机UAV通信系统的实时最优资源分配算法matlab仿真。具体参考文献&#xff1a; 考虑使用UAV作为中继辅助节点的设备到设备&#xff08;D2D&#xff09;无线信息和…...

计算机网络 (20)高速以太网

一、发展背景 随着计算机技术和网络应用的不断发展&#xff0c;传统的以太网速率已逐渐无法满足日益增长的带宽需求。因此&#xff0c;高速以太网应运而生&#xff0c;它以提高数据传输速率为主要目标&#xff0c;不断推动着以太网技术的发展。 二、技术特点 高速传输&#xff…...

element ui 组件 时间选择器出现转换问题的解决办法

在使用时间选择器添加数据是会出现转换失败问题 vue中代码为&#xff1a; 解决办法&#xff1a; 在el-date-picker中添加 format 和 value-format...

当知识图谱遇上文本智能处理,会擦出怎样的火花?

目前以理解人类语言为入口的认知智能成为了人工智能发展的突破点&#xff0c;而知识图谱则是迈向认知智能的关键要素。达观数据在2018AIIA人工智能开发者大会承办的语言认知智能与知识图谱公开课上&#xff0c;三位来自企业和学术领域的专家分别从不同角度讲述的知识图谱的应用…...

SpringBootWeb案例-1

文章目录 SpringBootWeb案例1. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建 1.2 开发规范 2. 部门管理2.1 查询部门2.1.1 原型和需求2.1.2 接口文档2.1.3 思路分析2.1.4 功能开发2.1.5 功能测试 2.2 前后端联调2.3 删除部门2.3.1 需求2.3.2 接口文档2.3.3 思路…...

在正则表达式中,\1 是用来引用第一个捕获组的内容的。捕获组是用括号 () 包裹的部分

在正则表达式中&#xff0c;\1 是用来引用第一个捕获组的内容的。捕获组是用括号 () 包裹的部分&#xff0c;它们会保存正则表达式匹配到的内容。在替换操作中&#xff0c;\1 就是对第一个捕获组内容的引用&#xff0c;表示你希望将捕获组中的内容放到替换文本中的某个位置。 …...

免费下载 | 2024年具身大模型关键技术与应用报告

这份报告的核心内容涉及具身智能的关键技术与应用&#xff0c;主要包括以下几个方面&#xff1a; 具身智能的定义与重要性&#xff1a; 具身智能是基于物理身体进行感知和行动的智能系统&#xff0c;通过与环境的交互获取信息、理解问题、做出决策并实现行动&#xff0c;产生智…...

[API测试] Karate 之独立运行方式

在 Karate 介绍与快速示例(API测试自动化、模拟、性能测试与UI自动化工具) 这一篇中介绍了如何在Maven项目中,如何结合JUnit 运行 Karate的API测试, 如果是专职的QA人员来测试, 对Java语言或者Maven完全不熟悉的话要怎么来运行 Karate的测试呢? 答案就是使用Karate的独立运…...

WeNet:面向生产的流式和非流式端到端语音识别工具包

这篇文章介绍了WeNet&#xff0c;一个面向生产的开源端到端&#xff08;E2E&#xff09;语音识别工具包。WeNet的主要特点和贡献如下&#xff1a; 统一流式和非流式识别&#xff1a;提出了一种名为U2的两阶段框架&#xff0c;能够在单一模型中同时支持流式和非流式语音识别&…...

《我在技术交流群算命》(二):QGraphicsItem怎么写自定义信号啊(QObject多继承顺序问题)

某位群友突然无征兆的抛出以下问题&#xff1a; QGraphicsItem怎么写自定义信号啊 看到这个问题的时候我是比较疑惑的&#xff0c;按鄙人对 Qt 的了解&#xff0c;自定义信号只需: 继承QObject类中加入Q_OBJECT宏声明一个信号并使用 但该群友毕竟也不是一个Qt新手&#xff0…...

实践深度学习:构建一个简单的图像分类器

引言 深度学习在图像识别领域取得了巨大的成功。本文将指导你如何使用深度学习框架来构建一个简单的图像分类器&#xff0c;我们将以Python和TensorFlow为例&#xff0c;展示从数据准备到模型训练的完整流程。 环境准备 在开始之前&#xff0c;请确保你的环境中安装了以下工…...

实践:事件循环

实践&#xff1a;事件循环 代码示例 console.log(1); setTimeout(() > console.log(2), 0); Promise.resolve(3).then(res > console.log(res)); console.log(4);上述的代码的输出结果是什么 1和4肯定优先输出&#xff0c;因为他们会立即方式堆栈的执行上下文中执行&am…...

基于Python的医院预约挂号与诊断系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

计算机网络基础

文章目录 名词含义1.应用层1.1网络应用原理1.1.1网络应用体系1.1.2进程通信1.1.3可供程序使用的运输服务1.1.4因特网的运输服务1.1.5应用层协议 1.2WEB和HTTP1.2.1HTTP概述1.2.2持续与非持续连接1.2.3报文格式 名词含义 ISP(Internet Service Provider&#xff0c;因特网服务提…...

Rabbitmq追问1

如果消费端代码异常&#xff0c;未手动确认&#xff0c;那么这个消息去哪里 2024-12-31 21:19:12 如果消费端代码发生异常&#xff0c;未手动确认&#xff08;ACK&#xff09;的情况下&#xff0c;消息的处理行为取决于消息队列的实现和配置&#xff0c;以下是基于 RabbitMQ …...

基于SpringBoot和OAuth2,实现通过Github授权登录应用

基于SpringBoot和OAuth2&#xff0c;实现通过Github授权登录应用 文章目录 基于SpringBoot和OAuth2&#xff0c;实现通过Github授权登录应用0. 引言1. 创建Github应用2. 创建SpringBoot测试项目2.1 初始化项目2.2 设置配置文件信息2.3 创建Controller层2.4 创建Html页面 3. 启动…...

python数据分析:使用pandas库读取和编辑Excel表

使用 Pandas&#xff0c;我们可以轻松地读取和写入Excel 文件&#xff0c;之前文章我们介绍了其他多种方法。 使用前确保已经安装pandas和 openpyxl库&#xff08;默认使用该库处理Excel文件&#xff09;。没有安装的可以使用pip命令安装&#xff1a; pip install pandas ope…...

SpringCloud源码分析-Lettue Redis

redis connection异步发送 底层是nio channel...

Linux(13)——网络概述

目录 一、TCP/IP 网络模型&#xff1a; 1、应用层&#xff08;Application&#xff09;&#xff1a; 2、传输层&#xff08;Transport&#xff09;&#xff1a; 3、互联网层&#xff08;Internet or network&#xff09;&#xff1a; 4、链路层&#xff08;Link&#xff0…...