OBD&OBS:给神经网络做个外科手术

核心要点

OBD:引入二阶导数信息对神经网络进行最小损失剪枝。

OBS:引入删除权重补偿概念,使得剪枝损失降到更小。

提出问题

随着神经网络的发展,神经网络在现实世界中解决了越来越多的问题,但随之而来的是模型变的越来越大,结构变得越来越复杂,推理时间变的越来越长,部署起来也越来越不方便,并且随着参数逐渐变多,导致过拟合的风险也越来越大,所以我们就提出了下面这个问题:

如何选择性得删除一些权重来减小网络大小的同时不要引入太多的误差呢?

解决方法

理论推导

为了解决这一问题,我们需要定义什么是删除权重带来的误差呢?

目标函数在机器学习中起着核心作用,因此定义一个参数的显著性是指删除该参数所导致的目标函数的变化。但是通过暂时删除每个参数并重新评估目标函数来从这个定义中评估显著性将是极其繁琐的。

不过,可以构建一个错误函数的局部模型并分析地预测扰动参数向量的影响。我们用对目标函数 E E E进行泰勒展开。对参数向量的扰动 δ U \delta U δU对目标函数的影响如下式所示。
δ E = ∑ i g i δ u i + 1 2 ∑ i h i i δ u i 2 + 1 2 ∑ i ≠ j h i j δ u i δ u j + O ( ∥ δ U ∥ 3 ) \begin{equation} \delta E=\sum_i g_i \delta u_i+\frac{1}{2} \sum_i h_{i i} \delta u_i^2+\frac{1}{2} \sum_{i \neq j} h_{i j} \delta u_i \delta u_j+O\left(\|\delta U\|^3\right) \end{equation} δE=i∑giδui+21i∑hiiδui2+21i=j∑hijδuiδuj+O(∥δU∥3)

其中有 g i = ∂ E ∂ u i and h i j = ∂ 2 E ∂ u i ∂ u j g_i=\frac{\partial E}{\partial u_i} \quad \text { and } \quad h_{i j}=\frac{\partial^2 E}{\partial u_i \partial u_j} gi=∂ui∂E and hij=∂ui∂uj∂2E, g i g_i gi是 U U U对 E E E的梯度, h i j h_{ij} hij是 U U U对 E E E的海森矩阵的元素。

有了上面的误差函数,我们接下来的目标就是找到一组参数,使得这个 δ E \delta E δE最小,但由于 H H H太大了,所以这个问题几乎无法解决,所以我们需要对这个函数做出一些近似。

a. Diagonal \text{Diagonal} Diagonal: 我们假设由于删除多个参数导致的E增量等于分别删除每个参数导致的E增量之和,换句话说就是对于参数的删除导致误差是独立的,参数之间不会有相互影响,所以我们可以把交叉项 1 2 ∑ i ≠ j h i j δ u i δ u j \frac{1}{2} \sum_{i \neq j} h_{i j} \delta u_i \delta u_j 21∑i=jhijδuiδuj忽略

b. Extremal \text{Extremal} Extremal: 我们假设网络是已经完美收敛了,此时我们的参数 U U U就是对于 E E E的局部最小值处,换句话说,就是 U U U对 E E E的梯度 g i g_i gi等于$$$$,所以我们可以把第一项 ∑ i g i δ u i \sum_i g_i \delta u_i ∑igiδui忽略。

c. Quadratic \text{Quadratic} Quadratic: 我们假设这个 δ E \delta E δE就是一个二次的函数,更高次的项我们不考虑,所以我们可以把最后一项 O ( ∥ δ U ∥ 3 ) O\left(\|\delta U\|^3\right) O(∥δU∥3)忽略。

最终,经过一系列的优化,我们可以得到如下所示对于损失的一个近似表示
δ E = 1 2 ∑ i h i i δ u i 2 \begin{equation} \delta E=\frac{1}{2} \sum_i h_{i i} \delta u_i^2 \end{equation} δE=21i∑hiiδui2

具体实现

具体怎么计算海森矩阵我们到下一章进行描述

对于OBD来说,具体流程如下图所示:其中saliency有 s k = h k k u k 2 / s_k=h_{k k} u_k^2 / sk=hkkuk2/

再提出问题

我们这种直接把它置零的方法是足够好的吗,有没有更好的缩减误差的方法?

再提出方案

Introducing OBS(Optimal Brain Surgeon).

In addition to cutting out weights, changing the strengths of other weights.

和上面一样,我们考虑训练到局部最小误差的网络。相对于权重扰动 δ w \delta \mathbf{w} δw的的Loss函数的泰勒展开为:
δ E = ( ∂ E ∂ w ) T ⋅ δ w ⏟ ≈ 0 + 1 2 δ w T ⋅ H ⋅ δ w + O ( ∥ δ w ∥ 3 ) ⏟ ≈ 0 \begin{equation} \delta \mathrm{E}=\underbrace{\left(\frac{\partial \mathrm{E}}{\partial \mathbf{w}}\right)^{\mathrm{T}} \cdot \delta \mathbf{w}}{\approx 0}+\frac{1}{2} \delta \mathbf{w}^{\mathrm{T}} \cdot \mathbf{H} \cdot \delta \mathbf{w}+\underbrace{O\left(\|\delta \mathbf{w}\|^3\right)}{\approx 0} \end{equation} δE=≈0 (∂w∂E)T⋅δw+21δwT⋅H⋅δw+≈0 O(∥δw∥3)

其中 H = ∂ 2 E ∂ w 2 \mathbf{H}=\frac{\partial^2 \mathrm{E}}{\partial \mathbf{w}^2} H=∂w2∂2E是Loss对参数的海森矩阵。和上面一样,我们忽略第一项和第三项,那么我们对权重 w q \mathrm{w_q} wq进行删除的操作可以表示为(其中 e q \mathbf{e}_q eq是权重空间 e q \mathbf{e}_q eq中相对于 w q \mathrm{w_q} wq的单位向量
δ w q + w q = 0 or e q T ⋅ δ w + w q = 0 \begin{equation} \delta \mathrm{w}_q+\mathrm{w}_q=0 \quad \text { or } \quad \mathbf{e}_q^{\mathrm{T}} \cdot \delta \mathbf{w}+\mathrm{w}_q=0 \end{equation} δwq+wq=0 or eqT⋅δw+wq=0

这样,我们的目标就是解下面这个最优化问题:
Min ⁡ q { Min ⁡ δ w { 1 2 δ w T ⋅ H ⋅ δ w } such that e q T ⋅ δ w + w q = 0 } \begin{equation} \operatorname{Min}q\left\{\operatorname{Min}{\delta \mathbf{w}}\left\{\frac{1}{2} \delta \mathbf{w}^{\mathrm{T}} \cdot \mathbf{H} \cdot \delta \mathbf{w}\right\} \quad \text { such that } \mathbf{e}_q^T \cdot \delta \mathbf{w}+\mathrm{w}_q=0\right\} \end{equation} Minq{Minδw{21δwT⋅H⋅δw} such that eqT⋅δw+wq=0}

接下来我们把他转换为拉格朗日乘数法有如下表示:
L = 1 2 δ w T ⋅ H ⋅ δ w + λ ( e q T ⋅ δ w + w q ) \begin{equation} L=\frac{1}{2} \delta \mathbf{w}^{\mathrm{T}} \cdot \mathbf{H} \cdot \delta \mathbf{w}+\lambda\left(\mathbf{e}_q^T \cdot \delta \mathbf{w}+\mathrm{w}_q\right) \end{equation} L=21δwT⋅H⋅δw+λ(eqT⋅δw+wq)

不难解出:
δ w = − w q H − 1 q q H − 1 ⋅ e q and L = 1 2 w q 2 H − 1 q q \begin{equation} \delta \mathbf{w}=-\frac{\mathrm{w}q}{\left\\mathbf{H}\^{-1}\\right{q q}} \mathbf{H}^{-1} \cdot \mathbf{e}_q \quad \text { and } \quad L=\frac{1}{2} \frac{\mathrm{w}q^2}{\left\\mathbf{H}\^{-1}\\right{q q}} \end{equation} δw=−H−1qqwqH−1⋅eq and L=21H−1qqwq2

这样的话我们就可以得到一个 δ w \delta \mathbf{w} δw使得我们剪切了 w q \mathrm{w_q} wq的同时调整了其他的权重使得Loss变动最小。

为什么OBS是更好的方法呢?

我们考虑如图所示的例子,来对比OBS、OBD和基于大小的权重剪切方法。

w ∗ \mathrm{w}^* w∗ 处的局部最小值开始,基于大小的方法删除错误的 weight2 \text{weight2} weight2 并且通过再训练, weight1 \text{weight1} weight1将增加。而与之对比OBD和OBS删除正确的 weight1 \text{weight1} weight1,并且OBS更改了 weight2 \text{weight2} weight2 来达到局部最小值。在这个例子中可能最终误差的大小差异并不明显,但是如果在一个比较大的网络中,使用基于大小的方法删除了错误的权重可能会导致最终误差的明显增加,显然这是不合理的。

并且在实验中表明了海森矩阵并不是只有对角的部分是有用的,其他的部分也是有和对角线部分几乎相同的作用,所以我们的方法并不会只考虑对角海森矩阵,而是通过外积近似的方式计算整个海森矩阵。

海森矩阵计算

现在我们已经知道了如何对神经网络进行修剪优化,但海森矩阵具体怎么算呢。接下来,我们参考 PRML \text{PRML} PRML 和 OBS \text{OBS} OBS 来对如何计算对角海森矩阵进行讲述。

假设我们有如图所示的一个网络,那么这个网络有两部分参数,input到hidden的参数 u j i \mathbf{u}_{ji} uji、hidden到output的参数 v j \mathbf{v}_j vj,接下来我们以MSE为例解释如何计算这些参数对Loss的海森矩阵。

首先,我们易知MSE的表达式如下所示:
E = 1 2 P ∑ k = 1 P ( t k − o k ) 2 \begin{equation} E=\frac{1}{2 \mathrm{P}} \sum_{k=1}^{\mathrm{P}}\left(\mathrm{t}^{k}-\mathrm{o}^{k}\right)^2 \end{equation} E=2P1k=1∑P(tk−ok)2

则Loss对这些参数的二阶导数有如下表示:
∂ 2 E ∂ v j ∂ v j ′ = 1 P ∑ k = 1 P { f ′ ( net k ) 2 − ( t k − o k ) f ′ ′ ( n e t k ) } o j k o j ′ k \begin{equation} \frac{\partial^2 E}{\partial \mathrm{v}j \partial \mathrm{v}{j^{\prime}}}=\frac{1}{\mathrm{P}} \sum_{k=1}^{\mathrm{P}}\left\{\mathrm{f}^{\prime}\left(\text { net }^{k}\right)^2-\left(\mathrm{t}^{k}-\mathrm{o}^{k}\right) \mathrm{f}^{\prime \prime}\left(\mathrm{net}^{k}\right)\right\} \mathrm{o}j^{k} \mathrm{o}{j^{\prime}}^{k} \end{equation} ∂vj∂vj′∂2E=P1k=1∑P{f′( net k)2−(tk−ok)f′′(netk)}ojkoj′k
∂ 2 E ∂ v j ∂ u j ′ i ′ = 1 P ∑ k = 1 P { { { f ′ ( net k ) 2 − ( t k − o k ) f ′ ′ ( net k ) } v j ′ f ′ ( net j ′ k ) o i ′ k o j k } − ( t k − o k ) f ′ ( n e t k ) f ′ ( n e t j ′ k ) δ j j ′ o i ′ k } \begin{equation} \begin{aligned} \frac{\partial^2 E}{\partial \mathrm{v}j \partial \mathrm{u}{j^{\prime} i^{\prime}}}= & \frac{1}{\mathrm{P}} \sum_{k=1}^{\mathrm{P}}\left\{\left\{\left\{\mathrm{f}^{\prime}\left(\text { net }^{k}\right)^2-\left(\mathrm{t}^{k}-\mathrm{o}^{k}\right) \mathrm{f}^{\prime \prime}\left(\text { net }^{k}\right)\right\} \mathrm{v}{j^{\prime}} \mathrm{f}^{\prime}\left(\text { net }{j^{\prime}}^{k}\right) \mathrm{o}{i^{\prime}}^{k} \mathrm{o}j^{k}\right\}-\right. \\ & \left.\left(\mathrm{t}^{k}-\mathrm{o}^{k}\right) \mathrm{f}^{\prime}\left(\mathrm{net}^{k}\right) \mathrm{f}^{\prime}\left(\mathrm{net}{j^{\prime}}^{k}\right) \delta{j j^{\prime}} \mathrm{o}{i^{\prime}}^{k}\right\} \end{aligned} \end{equation} ∂vj∂uj′i′∂2E=P1k=1∑P{{{f′( net k)2−(tk−ok)f′′( net k)}vj′f′( net j′k)oi′kojk}−(tk−ok)f′(netk)f′(netj′k)δjj′oi′k}
∂ 2 E ∂ u j i ∂ u j ′ i ′ = 1 P ∑ k = 1 P { f ′ ( n e t \[ k ) 2 − ( t k − o k ) f ′ ′ ( net ⁡ k ) } v j v j ′ f ′ ( net ⁡ j k ) f ′ ( net ⁡ j ′ k ) o i k o i ′ k − ( t k − o k ) f ′ ( net k ) v j f ′ ′ ( net j k ) δ j j ′ o i k o i ′ k } \begin{equation} \begin{aligned} & \frac{\partial^2 E}{\partial \mathrm{u}
{j i} \partial \mathrm{u}{j^{\prime} i^{\prime}}}=\frac{1}{\mathrm{P}} \sum{k=1}^{\mathrm{P}}\left\{\left\\mathrm{f}\^{\\prime}\\left(\\mathrm{net}\^{\[k}\right)^2-\left(\mathrm{t}^{k}-\mathrm{o}^{k}\right) \mathrm{f}^{\prime \prime}\left(\operatorname{net}^{k}\right)\right\} \mathrm{v}j \mathrm{v}{j^{\prime}} \mathrm{f}^{\prime}\left(\operatorname{net}j^{k}\right) \mathrm{f}^{\prime}\left(\operatorname{net}{j^{\prime}}^{k}\right) \mathrm{o}i^{k} \mathrm{o}{i^{\prime}}^{k}-\right. \\ & \left.\left(\mathrm{t}^{k}-\mathrm{o}^{k}\right) \mathrm{f}^{\prime}\left(\text { net }^{k}\right) \mathrm{v}j \mathrm{f}^{\prime \prime}\left(\text { net }{\mathrm{j}}^{k}\right) \delta_{j j^{\prime}} \mathrm{o}i^{k} \mathrm{o}{i^{\prime}}^{k}\right\} \\ & \end{aligned} \end{equation} ∂uji∂uj′i′∂2E=P1k=1∑P{f′(net\[k)2−(tk−ok)f′′(netk)}vjvj′f′(netjk)f′(netj′k)oikoi′k−(tk−ok)f′( net k)vjf′′( net jk)δjj′oikoi′k}

由于我们进行剪切的网络已经是一个经过训练达到了局部最小的网络,即 t k − o k ≈ 0 \mathrm{t}^{k}-\mathrm{o}^{k} \approx 0 tk−ok≈0,上式可以简化为:
∂ 2 E ∂ v j ∂ v j ′ = 1 P ∑ k = 1 P f ′ ( n e t k ) 2 o j k o j ′ k \begin{equation} \frac{\partial^2 E}{\partial \mathrm{v}j \partial \mathrm{v}{j^{\prime}}}=\frac{1}{\mathrm{P}} \sum_{k=1}^{\mathrm{P}} \mathrm{f}^{\prime}\left(\mathrm{net}^{k}\right)^2 \mathrm{o}j^{k} \mathrm{o}{j^{\prime}}^{k} \end{equation} ∂vj∂vj′∂2E=P1k=1∑Pf′(netk)2ojkoj′k
∂ 2 E ∂ v j ∂ u j ′ i ′ = 1 P ∑ k = 1 P f ′ ( net k ) 2 v j ′ f ′ ( net ⁡ j ′ k ) o i ′ k o j k \begin{equation} \frac{\partial^2 E}{\partial \mathrm{v}j \partial \mathrm{u}{j^{\prime} i^{\prime}}}=\frac{1}{\mathrm{P}} \sum_{k=1}^{\mathrm{P}} \mathrm{f}^{\prime}\left(\text { net }^{k}\right)^2 \mathrm{v}{j^{\prime}} \mathrm{f}^{\prime}\left(\operatorname{net}{j^{\prime}}^{k}\right) \mathrm{o}{i^{\prime}}^{k} \mathrm{o}j^{k} \end{equation} ∂vj∂uj′i′∂2E=P1k=1∑Pf′( net k)2vj′f′(netj′k)oi′kojk
∂ 2 E ∂ u j i ∂ u j ′ i ′ = 1 P ∑ k = 1 P f ′ ( net k ) 2 v j v j ′ f ′ ( net ⁡ j k ) f ′ ( net ⁡ j ′ k ) o i k o i ′ k \begin{equation} \frac{\partial^2 E}{\partial \mathrm{u}
{j i} \partial \mathrm{u}
{j^{\prime} i^{\prime}}}=\frac{1}{\mathrm{P}} \sum_{k=1}^{\mathrm{P}} \mathrm{f}^{\prime}\left(\text { net }^{k}\right)^2 \mathrm{v}j \mathrm{v}{j^{\prime}} \mathrm{f}^{\prime}\left(\operatorname{net}j^{k}\right) \mathrm{f}^{\prime}\left(\operatorname{net}{j^{\prime}}^{k}\right) \mathrm{o}i^{k} \mathrm{o}{i^{\prime}}^{k} \end{equation} ∂uji∂uj′i′∂2E=P1k=1∑Pf′( net k)2vjvj′f′(netjk)f′(netj′k)oikoi′k

这样的话,我们就可以通过一阶导向量的外积对海森矩阵进行近似:
X v \[ k ] T = ( f ′ ( net k ) o j = 1 k , ... , f ′ ( net k ) o n j k ) \begin{equation} \left\\mathbf{X}_{\\mathrm{v}}\^{\[k}\right]^{\mathrm{T}}=\left(\mathrm{f}^{\prime}\left(\text { net }^{k}\right) \mathrm{o}{j=1}^{k}, \ldots, \mathrm{f}^{\prime}\left(\text { net }^{k}\right) \mathrm{o}{n_j}^{k}\right) \end{equation} Xv\[k]T=(f′( net k)oj=1k,...,f′( net k)onjk)
X u \[ k ] T = ( f ′ ( n e t k ) f ′ ( net ⁡ 1 k ) v 1 k o i = 1 k , ... , f ′ ( net k ) f ′ ( net ⁡ 1 k ) v 1 k o n i k , ... , f ′ ( net k ) f ′ ( net ⁡ n j k ) v n j k o 1 k , ... , f ′ ( net k ) f ′ ( net ⁡ n j k ) v n j k o n i k ) \begin{equation} \begin{aligned} {\left\\mathbf{X}_{\\mathrm{u}}\^{\[k}\right]^{\mathrm{T}}=} & \left(\mathrm{f}^{\prime}\left(\mathrm{net}^{k}\right) \mathrm{f}^{\prime}\left(\operatorname{net}1^{k}\right) \mathrm{v}1^{k} \mathrm{o}{i=1}^{k}, \ldots, \mathrm{f}^{\prime}\left(\text { net }^{k}\right) \mathrm{f}^{\prime}\left(\operatorname{net}1^{k}\right) \mathrm{v}1^{k} \mathrm{o}{n_i}^{k}, \ldots,\right. \\ & \left.\mathrm{f}^{\prime}\left(\text { net }^{k}\right) \mathrm{f}^{\prime}\left(\operatorname{net}{n_j}^{k}\right) \mathrm{v}{n_j}^{k} \mathrm{o}1^{k}, \ldots, \mathrm{f}^{\prime}\left(\text { net }^{k}\right) \mathrm{f}^{\prime}\left(\operatorname{net}{n_j}^{k}\right) \mathrm{v}{n_j}^{k} \mathrm{o}{n_i}^{k}\right) \end{aligned} \end{equation} Xu\[k]T=(f′(netk)f′(net1k)v1koi=1k,...,f′( net k)f′(net1k)v1konik,...,f′( net k)f′(netnjk)vnjko1k,...,f′( net k)f′(netnjk)vnjkonik)

接下来我们把这两个向量连接起来成为一个维度大小为该层网络参数量的一阶导向量 X k \mathbf{X}^{k} Xk,
X k = ( X V k X u k ) \begin{equation} \mathbf{X}^{k}=\left(\begin{array}{c} \mathbf{X}{\mathrm{V}}^{k} \\ \mathbf{X}{\mathbf{u}}^{k} \end{array}\right) \end{equation} Xk=(XVkXuk)

那么我们可以得到海森矩阵的外积近似如下所示:
H = ∂ 2 E ∂ w 2 = 1 P ∑ k = 1 P X k ⋅ X k T \begin{equation} \mathbf{H}=\frac{\partial^2 \mathrm{E}}{\partial \mathbf{w}^2}=\frac{1}{\mathrm{P}} \sum_{k=1}^{\mathrm{P}} \mathbf{X}^{k} \cdot \mathbf{X}^{k \mathrm{T}} \end{equation} H=∂w2∂2E=P1k=1∑PXk⋅XkT

这样我们就得到了OBD中所需要的海森矩阵的对角矩阵
D = \[ H 1 , 1 0 ⋯ 0 0 H 2 , 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ H n , n ] \begin{equation} D=\left\\begin{array}{cccc} \[H{1,1} & 0 & \cdots & 0 \\ 0 & H{2,2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & H_{n, n} \end{array}\right] \end{equation} D=⎣ ⎡H1,10⋮00H2,2⋮0⋯⋯⋱⋯00⋮Hn,n⎦ ⎤

我们可以看到上面对海森矩阵\mathbf{H的表示是一个加和最终结果的形式,具体每一步的计算如下所示:
H m + 1 = H m + 1 P X m + 1 ⋅ X m + 1 T with H 0 = α I and H P = H \begin{equation} \mathbf{H}{\mathrm{m}+1}=\mathbf{H}{\mathrm{m}}+\frac{1}{\mathrm{P}} \mathbf{X}^{\\mathrm{m}+1} \cdot \mathbf{X}^{\\mathrm{m}+1 \mathrm{T}} \quad \text { with } \quad \mathbf{H}0=\alpha \mathbf{I} \text { and } \mathbf{H}{\mathrm{P}}=\mathbf{H} \end{equation} Hm+1=Hm+P1Xm+1⋅Xm+1T with H0=αI and HP=H

矩阵和的逆的计算法则如下所示:
( A + B ⋅ C ⋅ D ) − 1 = A − 1 − A − 1 ⋅ B ⋅ ( C − 1 + D ⋅ A − 1 ⋅ B ) − 1 ⋅ D ⋅ A − 1 \begin{equation} (\mathbf{A}+\mathbf{B} \cdot \mathbf{C} \cdot \mathbf{D})^{-1}=\mathbf{A}^{-1}-\mathbf{A}^{-1} \cdot \mathbf{B} \cdot\left(\mathbf{C}^{-1}+\mathbf{D} \cdot \mathbf{A}^{-1} \cdot \mathbf{B}\right)^{-1} \cdot \mathbf{D} \cdot \mathbf{A}^{-1} \end{equation} (A+B⋅C⋅D)−1=A−1−A−1⋅B⋅(C−1+D⋅A−1⋅B)−1⋅D⋅A−1

那么我们则有海森矩阵的逆 H − 1 \mathbf{H}^{-1} H−1的计算方式如下所示:
H m + 1 − 1 = H m − 1 − H m − 1 ⋅ X m + 1 ⋅ X m + 1 T ⋅ H m − 1 P + X m + 1 T ⋅ H m − 1 ⋅ X m + 1 T with H 0 − 1 = α − 1 I and H P − 1 = H − 1 \begin{equation} \mathbf{H}{\mathrm{m}+1}^{-1}=\mathbf{H}{\mathrm{m}}^{-1}-\frac{\mathbf{H}{\mathrm{m}}^{-1} \cdot \mathbf{X}^{\\mathrm{m}+1} \cdot \mathbf{X}^{\\mathrm{m}+1 \mathrm{T}} \cdot \mathbf{H}{\mathrm{m}}^{-1}}{\mathrm{P}+\mathbf{X}^{\\mathrm{m}+1 \mathrm{T}} \cdot \mathbf{H}_{\mathrm{m}}^{-1} \cdot \mathbf{X}^{\\mathrm{m}+1 \mathrm{T}}} \quad \text { with } \quad \mathbf{H}0^{-1}=\alpha^{-1} \mathbf{I} \text { and } \mathbf{H}{\mathrm{P}}^{-1}=\mathbf{H}^{-1} \end{equation} Hm+1−1=Hm−1−P+Xm+1T⋅Hm−1⋅Xm+1THm−1⋅Xm+1⋅Xm+1T⋅Hm−1 with H0−1=α−1I and HP−1=H−1

下面是不考虑bias的MSE,CE的海森矩阵的外积近似,大家有兴趣可以推导一下。
H θ = ∇ θ 2 M S E ( θ ) = 2 n ∑ i = 1 n ∇ θ f θ ( x i ) ∇ θ f θ ( x i ) T \begin{equation} H_\theta=\nabla_\theta^2 M S E(\theta)=\frac{2}{n} \sum_{i=1}^n \nabla_\theta f_\theta\left(x_i\right) \nabla_\theta f_\theta\left(x_i\right)^T \end{equation} Hθ=∇θ2MSE(θ)=n2i=1∑n∇θfθ(xi)∇θfθ(xi)T
H θ = ∇ θ 2 C E ( θ ) = ∑ i = 1 n f θ ( x i ) ( 1 − f θ ( x i ) ) ∇ θ f θ ( x i ) ∇ θ f θ ( x i ) T \begin{equation} H_\theta=\nabla_\theta^2 CE(\theta)= \sum_{i=1}^n f_\theta\left(x_i\right)\left(1-f_\theta\left(x_i\right) \right)\nabla_\theta f_\theta\left(x_i\right) \nabla_\theta f_\theta\left(x_i\right)^T \end{equation} Hθ=∇θ2CE(θ)=i=1∑nfθ(xi)(1−fθ(xi) )∇θfθ(xi)∇θfθ(xi)T

相关推荐
装不满的克莱因瓶3 小时前
深入理解卷积神经网络(CNN)——从原理到代码实践
人工智能·神经网络·cnn
weixin_468466858 小时前
液态神经网络新手入门与实战指南
人工智能·深度学习·神经网络·ai·机器视觉·液态神经网络
彬鸿科技10 小时前
bhSDR Studio/Matlab入门指南(十二):AI神经网络训练(Resnet-SE) 实验界面全解析
人工智能·神经网络·matlab·软件无线电·sdr
埃菲尔铁塔_CV算法15 小时前
基于扩张卷积与双分支参数调控的低光照图像增强算法完整研究与工程解析
人工智能·神经网络·算法·机器学习·计算机视觉
性感博主在线瞎搞15 小时前
【神经网络】卷积神经网络(二)卷积层以及池化层的实现
深度学习·神经网络·cnn·卷积神经网络·卷积层·池化层
老鱼说AI15 小时前
统计学习方法第七章:支持向量机精讲(超硬核长文深入预警!)
人工智能·深度学习·神经网络·算法·机器学习·支持向量机·学习方法
hai31524754316 小时前
# FiveOS V5.0 交付(终极合成器版 · 物理合规修正)
人工智能·stm32·单片机·嵌入式硬件·神经网络
棱镜研途16 小时前
学习笔记丨模式识别与机器学习5大核心赛道解析(IC-IPPR 2026)
人工智能·神经网络·算法·机器学习·模式识别·学术会议·智能计算
hai31524754317 小时前
FiveOS V3.0 交付(微服务器操作系统版 · 物理合规修正
linux·人工智能·spring boot·后端·神经网络·机器学习
apcipot_rain17 小时前
计科八股20260602——YOLO、弱监督学习、nnu-net、SAM
人工智能·神经网络·yolo·计算机视觉