20240616日志:大模型压缩方法DMS

news2024/11/24 13:08:35

Location: Beijing

1 大模型剪枝

在这里插入图片描述

Fig. 1.1大模型压缩-剪枝

剪枝的理论来源基于彩票假设(Lottery Ticket Hypothesis),指在神经网络中存在一种稀疏连接模式,即仅利用网络的一小部分连接(彩票)就足以实现与整个网络相当的性能。

2 神经网络结构搜索(NAS)

首先介绍这个论文的一些基础

2.1 引言

神经网络(Fig. 2.1)的超参数有两类,分别是Architecture和Algorithm,对于Architecture比如神经网络的层数、每层神经元个数、激活函数、卷积核的大小等;对于Algorithm如用的算法种类,算法学习率、batch_size、Epochs数量等。这些超参数怎么自动调是个问题。
在这里插入图片描述

Fig. 2.1 神经网络架构

以CNN为例,Architecture超参数有:
1.卷积层的数量和全连接层的数量;
2.每个卷积层中卷积核数量大小和步长;
3.全连接层的宽度。
如果手动调节这些超参数,工作量是巨大的,而且有点捞。自动调节算法呼之欲出:神经网络结构搜索(NAS)

2.2 NAS(神经网络结构搜索)

NAS1的基本思想是使用搜索算法在给定的搜索空间中探索各种可能的网络结构,并根据预定义的目标或约束进行评估和比较。搜索空间可以包括不同的网络层类型(卷积层、循环层等)、层数、宽度、连接模式等。搜索算法可以采用随机搜索、进化算法、强化学习等方法。
比如,我们想做一个20层的卷积神经网络,其中卷积核的搜索空间如Fig. 2.2
在这里插入图片描述

Fig. 2.2 卷积核的搜索空间

理想状态下算法会给20层卷积遍历所有搜索空间,有 ( 4 × 3 × 2 ) 20 (4×3×2)^{20} (4×3×2)20种不同的选择。

2.3 随机搜索

通过交叉验证的方法找出较优解
在这里插入图片描述

Fig. 2.3 卷积核的搜索空间

可以看出NAS的难点,每次抽取一组超参数都需要经历“搭建模型-模型初始化-训练-评估”的过程,每一组代价都很大,更何况是从 ( 4 × 3 × 2 ) 20 (4×3×2)^{20} (4×3×2)20种方案中找到最优解。
这里需要指出一点,比如给定一个不复杂的分类任务,那神经网络的结构就不会复杂,说明结构最优解并不是完全随机分布在搜索空间的。我们使用val acc来评价生成的CNN网络的好坏,然而可以看到,搜索空间中的变量并不是val acc的可微变量,故而不能用反向传播的方法来找到最优解,这种不可微的问题往往可以使用强化学习的方法来寻找最优解。然而根据论文2的基于RNN寻找最优网络架构,不光要训练不同结构的CNN还要训练一个RNN,简直是脱裤子放屁。

2.4 可微NAS

仍然以上面搭建一个20层的CNN的神经网络,我们对每一层提供9个备选方案,然后再然后再剔除八个较差方案,那就从一定概率上找的了较优解,这种思想叫Super-net。
在这里插入图片描述

Fig. 2.4 Super-net

挺像图搜索算法的。其中Super-net的每个layer如下图
在这里插入图片描述

Fig. 2.5 Super-net子块

其中 X X X指这一层的输入, B l o c k i Block \mathcal{i} Blocki指的是候选模块, w w w指的是候选模块的权重, f i \mathcal{f}_i fi指输入经过候选模块后的结果,对所有 f \mathcal{f} f做加权平均得到 z z z,权重用 α i \alpha_{i} αi表示( α i \alpha_{i} αi用softmax求得,目的是让其和为1。其中Super-net的学习目标就是学习这些 α i \alpha_{i} αi,最终确定保留哪个备选块。
这样Super-net就变成了可微函数,可以用来反向传播。
这里需要指出的是,当考虑到模型部署到资源受限的设备时,并非模型的性能越小越好,还需要限制模型的复杂程度,这样可以考虑在损失函数中添加资源约束,以满足要求。如此一来,损失函数就由两部分组成:任务损失和资源约束损失,这与正则化的思想极其相似。

2.5 小节

最后依据NAS方法将其搜索策略分为两类:随机搜索方法和基于梯度的方法
在这里插入图片描述

Fig. 2.6 NAS分类

3 DMS

基于2.4小节,虽然Super-net是可微模型,但也只是对 α i \alpha_{i} αi可微,按道理来说,对于一个“解决模型结构超参数”的模型,应该直接对超参数可微才对。(加粗的“直接”与下文的“直接和可微”中的“直接”对应)
DMS3(Differentiable Model Scaling using Differentiable Topk,基于可微Topk的可微模型缩放)期望能够找到直接和可微的模式来梯度下降,
引入了一个完全可微的topk算子,以直接可微的方式建模模型的深度(网络的深度指的是网络中层数的数量,即网络中堆叠的层的数量)和宽度(网络的宽度指的是网络中每一层的神经元数量),每个可微topk算子都有一个可学习参数,表示深度或宽度结构超参数,可以基于任务损失和资源约束损失(2.4有提到)进行优化。

3.1 可微topk

假设有一个结构超参数 k k k(k<N), k k k表示元素的数量;使用 c ∈ R N c\in\mathbb{R}^{N} cRN来代表元素的重要度, c c c越大,元素越重要;可微topk的目标是输出一个掩膜器(mask) m ∈ [ 0 , 1 ] N m\in[0,1]^{N} m[0,1]N,代表top k的重要元素。
以往的topk算子是设立一个阈值 a a a,当元素的重要度 c [ i ] c[i] c[i]大于 a a a,保留该元素, a a a是个可学习参数, k = ∑ i = 1 N 1 [ c i > a ] k=\sum_{i=1}^N1[c_i>a] k=i=1N1[ci>a]。这个公式1每一块都需要用到,可表示为
m i = f ( a ) ≈ { 1 if c i > a 0 otherwise (1) m_i=f(a)\approx\begin{cases}1&\text{if} c_i>a\\0&\text{otherwise}\end{cases}\tag{1} mi=f(a){10ifci>aotherwise(1)
从公式1可以看出 f f f是个分段函数,不可微,往往采用梯度估计的方法来实现反向传播。对 a a a使用完全可微的 f f f的难点是通道重要度 c [ i ] c[i] c[i]的分布不均匀。比如 c [ i ] c[i] c[i]不均匀的分布在[0,100],假设 a a a在每次迭代中加1,当 c [ i ] c[i] c[i] c [ i + 1 ] c[i+1] c[i+1]跨度很大, a a a需要很多次迭代来跨越 c [ i ] c[i] c[i] c [ i + 1 ] c[i+1] c[i+1]。当 c [ i ] c[i] c[i] c [ i + 1 ] c[i+1] c[i+1]差异很小, a a a可能一步中跨越多个元素。因此,当元素的重要度 c [ i ] c[i] c[i]不均匀时,以完全可区分的方式优化 a a a很难。
为了解决这个问题,采用了一个重要度 c [ i ] c[i] c[i]标准化过程,强制将不均匀分布的重要度 c [ i ] c[i] c[i]转换为均匀分布的值,使topk函数光滑,易于以可微的方式优化。综上,可微topk有两个步骤:重要度 c [ i ] c[i] c[i]归一化和软掩模生成。

3.1.1 重要度 c [ i ] c[i] c[i]及其归一化

重要度的评价方法有指数度量、SNIP、Fisher和泰勒4重要度分析(第四章介绍),本文使用泰勒重要度分析+移动基准线,可用以下公式2表示,原因是移动基准线可以提高泰勒重要度的性能,至于为什么不用SNIP和Fisher,文章指出用泰勒重要度分析性能已经足够。
c i t + 1 = c i t × d e c a y + ( m i t × g i ) 2 × ( 1 − d e c a y ) (2) c_i^{t+1}=c_i^t\times decay+(m_i^t\times g_i)^2\times(1-decay)\tag{2} cit+1=cit×decay+(mit×gi)2×(1decay)(2)
式中, t t t表示训练步骤, g i g_i gi m i m_i mi对训练损失的梯度, d e c a y decay decay是指衰减率,初始值 c i 0 c_i^0 ci0设为零,衰减率设为0.99。
将所有元素的重要度映射到从0到1的均匀分布的值,根据经验,往往 c i c_i ci c j c_j cj
c i ′ = 1 N ∑ j = 1 N 1 [ c i > c j ] (3) c'_i=\frac{1}{N}\sum_{j=1}^N1[c_i>c_j]\tag{3} ci=N1j=1N1[ci>cj](3)
如此一来, a a a也就有了一个新定义:剪枝比。

3.1.2 软掩模生成

归一化后,基于剪枝比 a a a的相对大小和归一化元素重要性 c ′ c' c,使用光滑可微函数公式4生成软掩模 m m m
m i = f ( a ) = S i g m o i d ( λ ( c i ′ − a ) ) = 1 1 + e − λ ( c i ′ − a ) (4) m_i=f(a)=\mathrm{Sigmoid}(\lambda(c_i'-a))=\frac{1}{1+e^{-\lambda(c_i'-a)}}\tag{4} mi=f(a)=Sigmoid(λ(cia))=1+eλ(cia)1(4)
式中, λ \lambda λ是一个超参数,用来控制从公式3到一个硬掩模函数的逼近程度,通常 λ = N \lambda=N λ=N,这意味着除了中间几个重要度,其他都接近0或1,误差小于0.05。

4 泰勒重要度分析

给定一个神经网络权重参数 W = { w 0 , w 1 , . . . , w M } \mathbf{W}=\{w_0,w_1,...,w_M\} W={w0,w1,...,wM},一个数据集 D = { ( x 0 , y 0 ) , ( x 1 , y 1 ) , . . . , ( x K , y K ) } \mathcal{D} = \{(x_{0},y_{0}),(x_{1},y_{1}),...,(x_{K},y_{K})\} D={(x0,y0),(x1,y1),...,(xK,yK)},其中 x i x_i xi是输入, y i y_i yi是输出,训练的目的是使误差 E E E最小, E E E的表达式如公式5
min ⁡ W E ( D , W ) = min ⁡ W E ( y ∣ x , W ) (5) \min_\mathbf{W}E(\mathcal{D},\mathbf{W})=\min_\mathbf{W}E(y|x,\mathbf{W})\tag{5} WminE(D,W)=WminE(yx,W)(5)
在剪枝的情况下,为了保证矩阵的稀疏性,这里添加一个稀疏化项,如公式6
min ⁡ W E ( D , W ) + λ ∣ ∣ W ∣ ∣ 0 (6) \min_\mathbf{W}E(\mathcal{D},\mathbf{W})+\lambda||\mathbf{W}||_0\tag{6} WminE(D,W)+λ∣∣W0(6)
式中, λ \lambda λ是一个缩放系数, ∣ ∣ ⋅ ∣ ∣ 0 ||·||_0 ∣∣0指非零元素的 ℓ 0 \ell_{0} 0范数,事实上,并没有具体的方法来实现最小化 ℓ 0 \ell_{0} 0范数,因为它是非凸的, 且NP-hard。
一种方法是在原始优化公式(5)收敛后,从完整的参数 W W W开始,逐渐将该参数 W W W每次减少几个参数。在这个增量设置中,可以通过单独考虑每个参数的重要性,假设参数的独立性来决定删除哪些参数。我们将这种对全组合搜索的简化近似称为贪婪一阶搜索。
一个参数的重要度可以通过去除它所引起的误差来量化。在一个i.i.d.下假设,该误差可以为有和没有参数( w m w_m wm)的预测误差的平方差:
I m = ( E ( D , W ) − E ( D , W ∣ w m = 0 ) ) 2 (7) \mathcal{I}_m=\left(E(\mathcal{D},\mathbf{W})-E(\mathcal{D},\mathbf{W}|w_m=0)\right)^2\tag{7} Im=(E(D,W)E(D,Wwm=0))2(7)
计算神经网络中每个参数的 I m \mathcal{I}_m Im代价很大,可以通过二阶泰勒展开来近似 W W W附近的 I m \mathcal{I}_m Im
I m ( 2 ) ( W ) = ( g m w m − 1 2 w m H m W ) 2 (8) \mathcal{I}_m^{(2)}(\mathbf{W})=\left(g_mw_m-\frac12w_m\mathbf{H}_m\mathbf{W}\right)^2\tag{8} Im(2)(W)=(gmwm21wmHmW)2(8)
式中 g m = ∂ E ∂ w m g_m=\frac{\partial E}{\partial w_m} gm=wmE是梯度 g g g中的元素, H i , j = ∂ 2 E ∂ w i ∂ w j H_{i,j}=\frac{\partial^2E}{\partial w_i\partial w_j} Hi,j=wiwj2E是Hessian5 H H H(第五章展开讲Hessian矩阵)中的元素, H m H_m Hm H H H中的第 m m m行,式中的平方不是泰勒展开的平方,平方项是保证误差结果非负,实际上是对 E ( D , W ) E(\mathcal{D},\mathbf{W}) E(D,W) E ( D , W ∣ w m = 0 ) E(\mathcal{D},\mathbf{W}|w_m=0) E(D,Wwm=0)分别展开做差再取平方,甚至可以利用一阶展开式计算了一个更紧凑的近似,并简化为
I m ( 1 ) ( W ) = ( g m w m ) 2 (9) \mathcal I_m^{(1)}(\mathbf{W})=\left(g_mw_m\right)^2\tag{9} Im(1)(W)=(gmwm)2(9)
一阶泰勒近似的是非常好处理的,因为梯度 g g g就在反向传播中。本文后面的内容都来自一阶泰勒展开,下面公式10可以看到一阶重要度近似的集合
I ( 1 ) ( W ) = { I 1 ( 1 ) ( W ) , I 2 ( 1 ) ( W ) , . . . , I M ( 1 ) ( W ) } (10) \mathbf{I}^{(1)}(\mathbf{W}) = \{\mathcal{I}_1^{(1)}(\mathbf{W}),\mathcal{I}_2^{(1)}(\mathbf{W}),...,\mathcal{I}_M^{(1)}(\mathbf{W})\}\tag{10} I(1)(W)={I1(1)(W),I2(1)(W),...,IM(1)(W)}(10)
为了表示一组权重 W S \mathbf{W}_\mathcal{S} WS(比如一个卷积核)的重要度(这里我们命名叫联合重要度),可以将其定义为联合重要度公式11,或者直接对这个剪枝群的重要度求和为联合重要度如公式12
I S ( 1 ) ( W ) ≜ ( ∑ s ∈ S g s w s ) 2 (11) \mathcal{I}_{\mathcal{S}}^{(1)}(\mathbf{W})\triangleq\left(\sum_{s\in S}g_sw_s\right)^2\tag{11} IS(1)(W)(sSgsws)2(11)
I ^ S ( 1 ) ( W ) ≜ ∑ s ∈ S I s ( 1 ) ( W ) = ∑ s ∈ S ( g s w s ) 2 (12) \widehat{\mathcal{I}}_{\mathcal{S}}^{(1)}(\mathbf{W})\triangleq\sum_{s\in\mathcal{S}}\mathcal{I}_{s}^{(1)}(\mathbf{W})=\sum_{s\in\mathcal{S}}(g_{s}w_{s})^{2}\tag{12} I S(1)(W)sSIs(1)(W)=sS(gsws)2(12)
这两个公式只是对联合重要度一种个人定义,并无具体深层次的数学含义,式中, S \mathcal{S} S表示剪枝 w w w的集合,这里的 s \mathcal{s} s与前面公式里的下标的 m \mathcal{m} m指向相同。可以从公式11和12看出,联合重要度只是先单独去掉一个一个的权重,再以某种方式求和。
为了深入了解这两种方法,并简化计算,论文在网络中添加了“门控机制”, z = 1 M z = 1^M z=1M,权重为1,维数等于神经元的数量 M M M( W \mathbf{W} W的元素个数)。门控层使重要度计算更容易,因为它们不参与优化;而且有一个常数值,因此允许 W W W不用经过公式8-12计算。如果一个门控 z m z_m zm遵循一个由权值 W s ∈ S m W_{s∈S_m} WsSm参数化的神经元,那么重要性近似 I m ( 1 ) \mathcal{I}_m^{(1)} Im(1)为:
I m ( 1 ) ( z ) = ( ∂ E ∂ z m ) 2 = ( ∑ s ∈ S m g s w s ) 2 = I S m ( 1 ) ( W ) (13) \mathcal{I}_m^{(1)}(\mathbf{z})=\left(\frac{\partial E}{\partial\mathbf{z}_m}\right)^2=\left(\sum_{s\in\mathcal{S}_m}g_sw_s\right)^2=\mathcal{I}_{\mathcal{S}_m}^{(1)}(\mathbf{W})\tag{13} Im(1)(z)=(zmE)2=(sSmgsws)2=ISm(1)(W)(13)
式中, S S S表示计算前一层输出所需的内部维度,例如线性层的输入维度,或卷积层的空间维度和输入维度。可以看到,门的重要性等价于参数群体对前一层参数的贡献。
通过一些操作,可以将上述所提出的方法与信息论联系起来。让 h m = ∂ E ∂ z m = g s ∈ S m T W s ∈ S m \mathbf{h}_{m}=\frac{\partial E}{\partial\mathbf{z}_{m}}=\mathbf{g}_{s\in\mathcal{S}_{m}}^{T}\mathbf{W}_{s\in\mathcal{S}_{m}} hm=zmE=gsSmTWsSm,并观察 h m \mathbf{h}_{m} hm的方差(假设在收敛时有 E ( h m ) 2 = 0 \mathbb{E}(\mathbf{h}_m)^2=0 E(hm)2=0):
V a r ( h m ) = E ( h m 2 ) − E ( h m ) 2 = I ( 1 ) ( z ) (14) \mathrm{Var}(\mathbf{h}_m)=\mathbb{E}(\mathbf{h}_m^2)-\mathbb{E}(\mathbf{h}_m)^2=\mathbf{I}^{(1)}(\mathbf{z})\tag{14} Var(hm)=E(hm2)E(hm)2=I(1)(z)(14)
式中方差是通过观测值来计算, I \mathbf{I} I表示重要度的集合。
如果选择对数似然函数作为误差函数 E ( ⋅ ) E(·) E(),则假设梯度估计为 h x = ∂ ln ⁡ p ( x ; z ) ∂ z \mathbf{h}_{x}={\frac{\partial\ln p(x;\mathbf{z})}{\partial\mathbf{z}}} hx=zlnp(x;z),借鉴信息论中的概念,得到:
V a r x ( h ) = E x { h x h x T } = J ( h ) (15) \mathrm{Var}_x(\mathbf{h})=\mathbb{E}_x\left\{\mathbf{h}_x\mathbf{h}_x^T\right\}=J(\mathbf{h})\tag{15} Varx(h)=Ex{hxhxT}=J(h)(15)
其中, J J J为期望的Fisher信息矩阵(第五章重点讲)。我们得出结论,梯度的方差是梯度的外积的期望,并且等于期望的费雪信息矩阵。因此,所提出的度量 I ( 1 ) I^{(1)} I(1)可以解释为方差估计和Fisher信息矩阵的对角线。

5 海森Hessian矩阵与Fisher信息量

5.1 Hessian矩阵

Hessian5矩阵存储了函数的二阶导数或偏微分信息,如 f ( x ) = x T A x f(\mathbf{x})=\mathbf{x}^TA\mathbf{x} f(x)=xTAx,其海森矩阵可以表示为
H ( f ) = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 ⋯ ∂ 2 f ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 1 ∂ 2 f ∂ x n ∂ x 2 ⋯ ∂ 2 f ∂ x n 2 ] (16) \mathbf{H}(f) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix}\tag{16} H(f)= x122fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fxn22f (16)
可以证明 H ( f ) = A + A T \mathbf{H}(f)=A+A^T H(f)=A+AT,Hessian矩阵可以用来对 f ( x ) f(\mathbf{x}) f(x)泰勒展开,比如 f ( x ) f(\mathbf{x}) f(x) x = a \mathbf{x}=\mathbf{a} x=a处泰勒展开
f ( x ) = f ( a ) + ∑ i = 1 n ∂ f ∂ x i ( a ) ( x i − a i ) + 1 2 ! ∑ i = 1 n ∑ j = 1 n ∂ 2 f ∂ x i ∂ x j ( a ) ( x i − a i ) ( x j − a j ) + ⋯ (17) f(\mathbf{x}) = f(\mathbf{a}) + \sum_{i=1}^{n} \frac{\partial f}{\partial x_i}(\mathbf{a}) (x_i - a_i) + \frac{1}{2!} \sum_{i=1}^{n} \sum_{j=1}^{n} \frac{\partial^2 f}{\partial x_i \partial x_j}(\mathbf{a}) (x_i - a_i)(x_j - a_j) + \cdots\tag{17} f(x)=f(a)+i=1nxif(a)(xiai)+2!1i=1nj=1nxixj2f(a)(xiai)(xjaj)+(17)
其中 1 2 ! \frac{1}{2!} 2!1哪一项后面就是Hessian矩阵。

5.2 Fisher信息量

Fisher信息量(Fisher Information)是统计学中的一个重要概念,度量了在一组观测数据中包含关于某个未知参数的信息量,简单来说,在一组观测数据中,Fisher信息量越大,对未知参数的估计就越准确。Fisher信息量在参数估计理论中扮演着核心角色,尤其是在评估估计量的效率方面。
对于一个随机变量 X X X和一个参数 θ \theta θ的概率密度函数(连续变量)或概率质量函数(离散变量) p ( x ∣ θ ) p(x∣\theta) p(xθ) ,Fisher信息量 I I I关于参数 θ \theta θ定义为
I ( θ ) = − E [ ∂ 2 ∂ θ 2 log ⁡ p ( X ∣ θ ) ] (18) I(\theta) = -\mathbb{E}\left[ \frac{\partial^2}{\partial \theta^2} \log p(X | \theta) \right]\tag{18} I(θ)=E[θ22logp(Xθ)](18)
这里, E \mathbb{E} E 表示期望值,第二项是关于 θ \theta θ的对数似然函数的二阶导数的期望值。

特点

Fisher信息量是非负的,它提供了关于参数估计的下界信息;Fisher信息量越大,表示观测数据提供关于参数 θ \theta θ 的信息越多,估计量越可靠;Fisher信息量可以用来评估估计量的性能,例如,Cramér-Rao不等式表明,对于无偏估计量,其方差至少为Fisher信息量的逆。

应用

1.参数估计:Fisher信息量可以用来评估参数估计量的效率,即估计量的方差下界。
2.模型选择:在模型选择中,如AIC(赤池信息量准则)和BIC(贝叶斯信息量准则)中,Fisher信息量的概念被用来衡量模型的拟合优度和复杂度。
3.统计推断:在构建置信区间和假设检验中,Fisher信息量可以提供关于参数不确定性的信息。

Cramér-Rao不等式

Cramér-Rao不等式是Fisher信息量的一个重要应用,它提供了无偏估计量方差的下界。对于无偏估计量 θ ^ \hat{\theta} θ^,其方差 V a r ( θ ^ ) \mathrm{Var}(\hat{\theta}) Var(θ^)至少为:
V a r ( θ ^ ) ≥ 1 I ( θ ) (19) \mathrm{Var}(\hat{\theta})\geq\frac{1}{I(\theta)}\tag{19} Var(θ^)I(θ)1(19)
这意味着如果一个估计量的方差达到了Cramér-Rao下界,那么它被认为是效率最高的无偏估计量。

Fisher信息矩阵

Fisher信息矩阵(Fisher Information Matrix)是多元统计分析中的一个概念,它是对Fisher信息量的推广。当涉及到多个参数时,Fisher信息矩阵提供了一个多维参数空间中的信息度量。
假设我们有一个多参数的概率模型,其联合概率密度函数(连续变量)或概率质量函数(离散变量)为 p ( x ∣ θ ) p(x∣\theta) p(xθ) x \mathbf{x} x是观测向量, θ \boldsymbol{\theta} θ k k k维参数向量,Fisher信息量 I I I关于参数 θ \theta θ定义为
I ( θ ) = − E [ ∂ ∂ θ log ⁡ p ( X ∣ θ ) ⊙ ∂ ∂ θ log ⁡ p ( X ∣ θ ) ] (20) \mathbf{I}(\boldsymbol{\theta})=-\mathbb{E}\left[\frac\partial{\partial\boldsymbol{\theta}}\log p(\mathbf{X}|\boldsymbol{\theta})\odot\frac\partial{\partial\boldsymbol{\theta}}\log p(\mathbf{X}|\boldsymbol{\theta})\right]\tag{20} I(θ)=E[θlogp(Xθ)θlogp(Xθ)](20)
⊙ \odot 表示Hadamard积,即元素乘积如公式22。
fisher信息矩阵为
I ( θ ) = [ I 11 ( θ ) I 12 ( θ ) ⋯ I 1 k ( θ ) I 21 ( θ ) I 22 ( θ ) ⋯ I 2 k ( θ ) ⋮ ⋮ ⋱ ⋮ I k 1 ( θ ) I k 2 ( θ ) ⋯ I k k ( θ ) ] (21) \mathbf{I}(\boldsymbol{\theta})=\begin{bmatrix}I_{11}(\theta)&I_{12}(\theta)&\cdots&I_{1k}(\theta)\\I_{21}(\theta)&I_{22}(\theta)&\cdots&I_{2k}(\theta)\\\vdots&\vdots&\ddots&\vdots\\I_{k1}(\theta)&I_{k2}(\theta)&\cdots&I_{kk}(\theta)\end{bmatrix} \tag{21} I(θ)= I11(θ)I21(θ)Ik1(θ)I12(θ)I22(θ)Ik2(θ)I1k(θ)I2k(θ)Ikk(θ) (21)
I i j ( θ ) I_{ij}(\theta) Iij(θ)表示 θ i \theta_i θi θ j \theta_j θj之间的信息量:
I i j ( θ ) = − E [ ∂ ∂ θ i log ⁡ p ( X ∣ θ ) ∂ ∂ θ j log ⁡ p ( X ∣ θ ) ] (22) I_{ij}(\theta)=-\mathbb{E}\left[\frac\partial{\partial\theta_i}\log p(\mathbf{X}|\boldsymbol{\theta})\frac\partial{\partial\theta_j}\log p(\mathbf{X}|\boldsymbol{\theta})\right]\tag{22} Iij(θ)=E[θilogp(Xθ)θjlogp(Xθ)](22)
在模型选择过程中,Fisher信息矩阵可以用来评估不同模型的性能。
reference


  1. ShusenWang 2021 神经网络结构搜索 ↩︎

  2. ICLR 2017 Neural architecture search with reinforcement learning ↩︎

  3. ICML 2024 Differentiable Model Scaling using Differentiable Topk ↩︎

  4. CVPR 2019 Importance Estimation for Neural Network Pruning ↩︎

  5. 弓长德帅97 2020 快速学懂Hessian矩阵 海森矩阵 ↩︎ ↩︎

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

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

相关文章

论坛产品选型,需要关注哪些点?

论坛社区是一个经久不衰的行业&#xff0c;比如我们常见的宠物社区&#xff0c;校园社区&#xff0c;游戏社区、企业内部社区&#xff0c;品牌社区&#xff0c;本地同城、私域社区项目、付费社群、问答社区等等&#xff0c;可以说是覆盖了各行各业&#xff0c;那么如果我们要搭…

设备档案包括哪些内容

设备档案通常包括以下内容和要求&#xff1a; 1. 设备基本信息&#xff1a;包括设备名称、型号、规格、生产厂商、出厂日期、购买日期等。 2. 设备安装信息&#xff1a;包括设备的安装位置、安装日期、安装人员等。 3. 设备维护信息&#xff1a;包括设备的维护保养记录&#xf…

构建基于 LlamaIndex 的RAG AI Agent

I built a custom AI agent that thinks and then acts. I didnt invent it though, these agents are known as ReAct Agents and Ill show you how to build one yourself using LlamaIndex in this tutorial. 我构建了一个自定义的AI智能体&#xff0c;它能够思考然后行动。…

C/C++ string模拟实现

1.模拟准备 1.1因为是模拟string&#xff0c;防止与库发生冲突&#xff0c;所以需要命名空间namespace隔离一下&#xff0c;我们来看一下基本内容 namespace yx {class string{private://char _buff[16]; lunix下小于16字节就存buff里char* _str;size_t _size;size_t _capac…

文字炫酷祝福 含魔法代码

效果下图&#xff1a;&#xff08;可自定义显示内容&#xff09; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…

深度学习(十)——神经网络:非线性激活

一、Padding Layers简介 nn.ZeroPad2d&#xff1a;在输入的tensor数据类型周围用0进行填充 nn.ConstantPad2d&#xff1a;在输入的tensor数据类型周围用常数进行填充 这个函数的主要作用是对输入的图像进行填充&#xff0c;但里面所有功能都能用nn.Conv2d实现。 二、Non-li…

CAD二次开发(10)-单行文字的添加+图形修改

1. 单行文字的添加 第一步&#xff1a; 首先在CAD中新增中文样式 输入ST命令&#xff1a; 第二步&#xff1a;代码开发 /// <summary>/// 添加文本信息/// </summary>[CommandMethod("AddText")]public void AddText(){var doc Application.DocumentM…

分析医药零售数据该用哪个BI数据可视化工具?

数据是企业决策的重要依据&#xff0c;可以用于现代企业大数据可视化分析的BI工具有很多&#xff0c;各有各擅长的领域。那么哪个BI数据可视化工具分析医药零售数据又好又快&#xff1f; 做医药零售数据分析首推奥威BI数据可视化工具&#xff01; 奥威BI数据可视化工具做医药…

c++实现二叉搜索树(下)

好久不见啊&#xff0c;baby们&#xff0c;小吉我又回归了&#xff0c;发完这一篇小吉将会有两周时间不会更新blog了&#xff08;sorry&#xff09;&#xff0c;在小吉没有发blog的日子里大家也要好好学习数据结构与算法哦&#xff0c;还有就是别忘了小吉我❤️  这篇博客是二…

新火种AI|Sora发布半年之后,AI视频生成领域风云再起

作者&#xff1a;一号 编辑&#xff1a;美美 AI视频最近有些疯狂&#xff0c;Sora可能要着急了。 自OpenAI的Sora发布以来&#xff0c;AI视频生成技术便成为了科技界的热门话题。尽管Sora以其卓越的性能赢得了广泛关注&#xff0c;但其迟迟未能面向公众开放&#xff0c;让人…

计算机网络——传输层重要协议(TCP、UDP)

一、常见名词解释 IP地址&#xff1a;IP地址主要用于标识网络主机、其他网络设备&#xff08;如路由器&#xff09;的网络地址&#xff0c;即IP地址用于定位主机的网络地址&#xff1b; IP地址是一个32位的二进制数&#xff0c;通常被分割为4个 8位⼆进制数&#xff08;也就是…

C++之std::type_identity

目录 1.简介 2.C20的std::type_identity 3.使用 type_identity 3.1.阻止参数推导 3.1.1.模板参数推导过程中的隐式类型转换 3.1.2.强制显式实例化 3.2.阻止推断指引 3.3.类型保持 3.4.满足一些稀奇古怪的语法 4.示例 5.总结 1.简介 std::type_identity 是 C17 引入的…

运算放大器共模抑制比(CMRR)

目录 运算放大器共模抑制比(CMRR) 三运放共模抑制比电路 运算放大器共模抑制比(CMRR) 如果信号均等施加至运算放大器的两个输入端&#xff0c;使差分输入电压不受影响&#xff0c;则输出也不应受影响。实际上&#xff0c;共模电压的变化会引起输出变化。运算放大器共模抑制比…

鸿蒙实现金刚区效果

前言&#xff1a; DevEco Studio版本&#xff1a;4.0.0.600 所谓“金刚区"是位于APP功能入口的导航区域&#xff0c;通常以“图标文字”的宫格导航的形式出现。之所以叫“金刚区”&#xff0c;是因为该区域会随着业务目标的改变&#xff0c;展示不同的功能图标&#xff…

SpringMVC—RequestMapping注解

一、RequestMapping注解 RequestMapping注解&#xff1a;是Spring MVC框架中的一个控制器映射注解&#xff0c;用于将请求映射到相应的处理方法上&#xff0c;具体来说&#xff0c;他可以将指定URL的请求绑定到一个特定的方法或类上&#xff0c;从而实现对请求的处理和响应。 …

充电学习—7、BC1.2 PD协议

BC1.2&#xff08;battery charging&#xff09;充电端口识别机制&#xff1a; SDP、CDP、DCP 1、VBUS detect&#xff1a;vbus检测 PD&#xff08;portable device&#xff0c;便携式设备&#xff09;中有个检测VBUS是否有效的电路&#xff0c;电路有个参考值&#xff0c;高…

高级算法复习指南

自用 如果帮到了你就点个关注和赞吧&#xff01; 1.算法知识回顾 求两个不全为0的非负整数m和n的最大公约数 数据结构回顾 数组 连续内存分配、静态大小、类型一致、索引访问、访问时间相同、边界检查 多维数组&#xff1a;数组的数组&#xff0c;可以是连续的&#xff0c…

不重新安装Anaconda找回不见的Anaconda Prompt

找回Anaconda Prompt只需三步 系统&#xff1a;win11 x641.cd Anaconda的安装目录2. Anaconda Prompt又回来了 系统&#xff1a;win11 x64 1.cd Anaconda的安装目录 winR 输入cmd 进入命令行&#xff0c;进入到Anaconda的安装目录 eg&#xff1a;我的Anaconda安装在&#xff…

Ptrade和QMT的区别,怎么获取合适的量化交易软件?

​Ptrade和QMT的适用人群 交易活跃用户 量化爱好者已经专业量化投资者 高净值个人或机构 Ptrade和QMT的区别 回测和交易频率 Ptrade回测和交易只支持分钟级和日线级别的频率&#xff0c;而QMT支持tick级、分钟级、5分钟级、10分钟级、日线、周线、月线等。 使用QMT进行回…