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

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矩阵 海森矩阵 ↩︎ ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

npm语义化版本和版本运算符

版本号组成 一个完整的版本号&#xff0c;由三部分组成&#xff1a;主版本号&#xff08;major&#xff09;、次版本号(minor)、修订版本号(patch)&#xff0c;简称X.Y.Z&#xff0c;具体含义&#xff1a; 主版本号&#xff08;major&#xff09;&#xff1a;项目&#xff08…

环境搭建---单机k8s

配置基础环境 关闭防火墙 [rootVM-20-14-centos ~]# systemctl stop firewalld && systemctl disable firewalld关闭selinux [rootVM-20-14-centos ~]# setenforce 0 && sed -i "s/SELINUXenforcing/SELINUXdisabled/g" /etc/selinux/config禁止s…

【Java】已解决java.lang.NullPointerException异常

文章目录 一、问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.lang.NullPointerException异常 一、问题背景 在Java编程中&#xff0c;java.lang.NullPointerException&#xff08;空指针异常&#xff09;是一种常见的运行时异常。当应…

封装音视频编解码和渲染的动态链接库编译和测试

1.动态链接库的编译 生成了以下几个文件 我们把生成的lib文件复制到lib文件夹中 其余三个文件不变动 2.进行测试看是否可以用生成的xcodec.lib库文件里的接口函数 以上是重新创建的新项目&#xff0c;导入了xcodec.lib&#xff0c;其他配置同以前项目 库测试结果 运行显示我们…

【Linux环境下Hadoop部署】— 报错“bash: myhadoop.sh: command not found“

项目场景&#xff1a; 执行 “myhadoop.sh stop” 命令。 问题描述 bash: myhadoop.sh: command not found 原因分析&#xff1a; 查看我们的系统配置&#xff0c;发现没有myhadoop.sh文件存放的路径。 解决方案&#xff1a; 1、执行 “sudo vim /etc/profile” 命令&#xff…

不入耳的蓝牙耳机平价推荐,五大爆款分析测评

开放式耳机在如今社会中已经迅速成为大家购买耳机的新趋势。它作为骨传导耳机&#xff0c;深受用户的喜爱&#xff0c;不仅可以随时感知周围环境&#xff0c;还提供了高质量的音效体验&#xff0c;对于热爱运动的人士而言&#xff0c;高品质的骨传导耳机无疑是首选。同时&#…

看完轻松解决家里灰尘毛絮多难题?除粉尘的空气净化器品牌分享

家里的空气中弥漫着灰尘和毛絮&#xff0c;让人呼吸不畅&#xff0c;也影响着家人的健康。灰尘中含有各种有害物质&#xff0c;如细菌、病毒、花粉等&#xff0c;长期吸入会导致呼吸道疾病、皮肤过敏等问题。尤其是对于有宠物、孩子、过敏人群来说&#xff0c;空气质量更是至关…

【Linux】进程间通信3——system V共享内存

1.system V进程间通信 管道通信本质是基于文件的&#xff0c;也就是说操作系统并没有为此做过多的设计工作&#xff0c;而system V IPC是操作系统特地设计的一种通信方式。但是不管怎么样&#xff0c;它们的本质都是一样的&#xff0c;都是在想尽办法让不同的进程看到同一份由操…

鸿蒙实现自定义Tabbar样式,显示数字红点提示

前言&#xff1a; DevEco Studio版本&#xff1a;4.0.0.600 Tabs的链接参考&#xff1a;OpenHarmony Tabs TabContent的链接参考&#xff1a;OpenHarmony TabContent 通过查看链接参考我们知道可以通过TabContent的tabBar来实现自定义TabBar样式&#xff08;CustomBuilder&…

SAP ABAP开发:如何读取物料主数据中的长文本?

在SAP ERP系统中&#xff0c;物料的基本描述可存储40个字符&#xff0c;见下图&#xff1a; 但长文本信息如何从系统中读取呢&#xff1f; 在SAP ABAP开发中&#xff0c;读取物料主数据&#xff08;Material Master Data&#xff09;中的基本视图&#xff08;Basic View&#…

UNetMultiLane 多车道线、车道线类型识别【训练+部署】

基于UNet 分割模型增加了检测头来识别车道线的类型&#xff08;单实线、双黄线等10种&#xff09;&#xff0c;同时可以识别出"所在车道"和"车道线类型"。 训练代码【训练练手代码】 1 数据说明 基于开源数据集 VIL100。其中数据标注了所在的六个车道的车…

《python程序语言设计》2018版第5章第49题l利用turtle绘制乘法口诀表,结果放在最后

2024.06.09 05.49.01version 2024.06.10 05.49.02 经历了一天的奔波&#xff0c;发了两篇博客 开始来到这道题。已经22点了 turtle.penup() turtle.goto(-80, 0) turtle.pendown() turtle.write("Multiplication Table\n", font("", 18, "")) t…

005-OSPF基本配置

OSPF基本配置 OSPF (Open Shortest Path First) 是一种链路状态路由协议&#xff0c;它属于内部网关协议&#xff08;IGP&#xff09;类别&#xff0c;用于在自治系统&#xff08;AS&#xff09;内部路由 IP 数据包。OSPF 通过使用 Dijkstra 算法计算最短路径树来确定到达每个…

SpringBoot + thymeleaf 修改文件,刷新页面不能实时展示修改后的内容问题解决

修改页面后文件后&#xff0c;刷新页面&#xff0c;内容不变&#xff0c;是因为项目没有编译&#xff0c;没有将新的页面文件编译&#xff0c;以下方法可以完美解决次问题 具体内容请查看&#xff1a;http://www.haozgx.top/blog/article/2

三星S20以上手机中的动态相片及其分解

三星S20以后的相机&#xff0c;相机拍出来的图片&#xff0c;用三星手机自带的“相册”打开之后&#xff0c;还会有“查看动态照片”的选项&#xff0c;点击之后就能查看拍照片时前后2秒左右的视频&#xff01; 不知道这个功能是不是三星独有的。 这样得到的图片非常大。因为…

Netty中Reactor线程的运行逻辑

Netty中的Reactor线程主要干三件事情&#xff1a; 轮询注册在Reactor上的所有Channel感兴趣的IO就绪事件。 处理Channel上的IO就绪事件。 执行Netty中的异步任务。 正是这三个部分组成了Reactor的运行框架&#xff0c;那么我们现在来看下这个运行框架具体是怎么运转的~~ 这…

mysql8.x安装教程,window版本

mysql8.x安装教程&#xff0c;window版本 1. 安装步骤 1. 安装步骤 下载暗安装包&#xff0c;https://dev.mysql.com/downloads/file/?id528489 双击安装包&#xff0c;然后按照下述步骤操作 选择custom&#xff0c;然后点击next 如图选中&#xff0c;mysql server和mysq…

【一生一芯】chisel学习

香山处理器敏捷开发方法与工具

Autodesk Inventor 机械三维设计软件下载安装,Inventor 专业的三维制图软件

Inventor&#xff0c;它的一大亮点在于能够将三维尺寸、标注以及尺寸公差直接融入三维模型中&#xff0c;使得这些关键信息能够无缝对接下游应用&#xff0c;极大地提升了设计流程中的连贯性和一致性。 谈及Inventor的尺寸公差功能&#xff0c;更是让人赞不绝口。在复杂的设计过…

‘引爆增长·赋能十堰’第一届学习峰会在十堰东方汉宫国际酒店成功举办

‘引爆增长赋能十堰’第一届学习峰会在十堰东方汉宫国际酒店成功举办 2024年6月 17 至18 日&#xff0c;为期两天的“引爆增长赋能十堰”第一届学习交流峰会在湖北十堰东方汉宫国际酒店一号盛大举行&#xff0c;学习峰会现场&#xff0c;来自十堰地区及邻边地市的上百位实体企业…