目录

十种处理权重矩阵的方法及数学公式

十种处理权重矩阵的方法及数学公式

1. 权重归一化(Weight Normalization)

  • 目的 :通过分离权重向量的范数和方向来加速训练。

  • 公式 :对于权重向量

    w \mathbf{w}

    w ,归一化后的权重

    w ′ \mathbf{w}'

    w

    ′ 为:

w ′

w ∥ w ∥ \mathbf{w}’ = \frac{\mathbf{w}}{|\mathbf{w}|}

w

=

w

w

其中

∥ w ∥ |\mathbf{w}|

w

∥ 是

w \mathbf{w}

w 的欧几里得范数。

2. 谱归一化(Spectral Normalization)

  • 目的 :通过控制权重矩阵的谱范数,稳定生成对抗网络(GANs)的训练。

  • 公式 :对于权重矩阵

    W W

    W ,谱归一化后的矩阵

    W ′ W'

    W

    ′ 为:

W ′

W σ ( W ) W’ = \frac{W}{\sigma(W)}

W

=

σ

(

W

)

W

其中

σ ( W ) \sigma(W)

σ

(

W

) 是

W W

W 的谱范数,即最大奇异值。

3. 权重衰减(Weight Decay)

  • 目的 :通过正则化防止过拟合。
  • 公式 :权重更新时加入正则化项:

w ← w − η ( ∂ L ∂ w + λ w ) \mathbf{w} \leftarrow \mathbf{w} - \eta \left( \frac{\partial L}{\partial \mathbf{w}} + \lambda \mathbf{w} \right)

w

w

η

(

w

L

λ

w

)

其中

η \eta

η 是学习率,

L L

L 是损失函数,

λ \lambda

λ 是正则化参数。

4. 权重剪裁(Weight Clipping)

  • 目的 :限制权重范围以稳定训练。

  • 公式 :对于权重

    w w

    w ,剪裁后的权重

    w ′ w'

    w

    ′ 为:

w ′

{ c if  w

c − c if  w < − c w otherwise w’ = \begin{cases} c & \text{if } w > c \ -c & \text{if } w < -c \ w & \text{otherwise} \end{cases}

w

=

c

c

w

if

w

c

if

w

<

c

otherwise

其中

c c

c 是预定义阈值。

5. 权重共享(Weight Sharing)

  • 目的 :减少参数数量,提高泛化能力,常用于卷积神经网络(CNNs)。
  • 公式 :在CNN中,同一卷积核的权重在输入上共享,具体实现依赖卷积操作。

6. 权重初始化(Weight Initialization)

  • 目的 :合理初始化权重以加速训练并避免梯度问题。
  • 公式
    • Xavier初始化

W ∼ N ( 0 , 2 n in + n out ) W \sim \mathcal{N}\left(0, \frac{2}{n_{\text{in}} + n_{\text{out}}}\right)

W

N

(

0

,

n

in

n

out

2

)

  • He初始化

W ∼ N ( 0 , 2 n in ) W \sim \mathcal{N}\left(0, \frac{2}{n_{\text{in}}}\right)

W

N

(

0

,

n

in

2

)

其中 $n_{\text{in}}$ 和 $n_{\text{out}}$ 分别是输入和输出单元数。

7. 批归一化(Batch Normalization)

  • 目的 :归一化层的输入以加速训练并提高稳定性。

  • 公式 :对于小批量

    B

    { x 1 , … , x m } \mathcal{B} = {x_1, \ldots, x_m}

    B

    =

    {

    x

    1

    ,

    ,

    x

    m

    } ,输出为:

x ^ i

x i − μ B σ B 2 + ϵ \hat{x}i = \frac{x_i - \mu{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^2 + \epsilon}}

x

^

i

=

σ

B

2

ϵ

x

i

μ

B

其中

μ B \mu_{\mathcal{B}}

μ

B

σ B 2 \sigma_{\mathcal{B}}^2

σ

B

2

是小批量的均值和方差,

ϵ \epsilon

ϵ 避免除零。

8. 层归一化(Layer Normalization)

  • 目的 :对每个样本的特征归一化,适用于RNNs等。

  • 公式 :对于特征向量

    x \mathbf{x}

    x ,输出为:

x ^

x − μ σ 2 + ϵ \hat{\mathbf{x}} = \frac{\mathbf{x} - \mu}{\sqrt{\sigma^2 + \epsilon}}

x

^

=

σ

2

ϵ

x

μ

其中

μ \mu

μ 和

σ 2 \sigma^2

σ

2 是

x \mathbf{x}

x 的均值和方差。

9. 权重量化(Weight Quantization)

  • 目的 :将权重转为低精度表示以减少模型大小和加速推理。
  • 公式 :简单量化方法为:

w q

round ( w − w min w max − w min × ( 2 b − 1 ) ) × w max − w min 2 b − 1 + w min w_q = \text{round}\left(\frac{w - w_{\text{min}}}{w_{\text{max}} - w_{\text{min}}} \times (2^b - 1)\right) \times \frac{w_{\text{max}} - w_{\text{min}}}{2^b - 1} + w_{\text{min}}

w

q

=

round

(

w

max

w

min

w

w

min

×

(

2

b

1

)

)

×

2

b

1

w

max

w

min

w

min

其中

b b

b 是位数,

w min w_{\text{min}}

w

min

w max w_{\text{max}}

w

max

是权重范围。

10. 稀疏化(Sparsification)

  • 目的 :将部分权重设为零以减少参数量。

  • 公式 :使用阈值

    τ \tau

    τ :

w ′

{ w if  ∣ w ∣ ≥ τ 0 otherwise w’ = \begin{cases} w & \text{if } |w| \geq \tau \ 0 & \text{otherwise} \end{cases}

w

=

{

w

0

if

w

τ

otherwise

这些方法在深度学习中应用广泛,选择时需考虑模型架构、数据特性和资源限制。