decoupled weight decay regularization
1权重、增益(gains)和偏置(biases)
在深度学习模型中,权重、增益(gains)和偏置(biases)是三种不同类型的参数,它们的作用和用途有所不同:
权重(Weights):
定义:权重是神经网络中连接各层神经元的参数。它们决定了输入信号在传递到下一层时的重要性。
用途:权重通过线性组合输入特征进行加权,通常用于计算每个神经元的激活值。权重的调整直接影响模型的学习和表现。
增益(Gains):
定义:增益是用于放大或缩小特定参数的系数,通常在某些特定类型的网络(如Batch Normalization、Layer Normalization等)中出现。
用途:增益可以帮助模型控制各层输出的尺度,增强模型的表达能力。增益参数通常不会受到权重衰减的影响。
偏置(Biases):
定义:偏置是添加到神经元激活值上的常数项,帮助模型学习输入数据的偏移。
用途:偏置允许模型在没有输入信号时仍然能够产生非零的输出,使得模型更灵活。与权重不同,偏置通常在每层的每个神经元中都有单独的参数。
在优化过程中,通常会对权重施加权重衰减,以防止过拟合,而增益和偏置不受此影响,因为它们在模型中的角色和目标不同。这种区分有助于更好地控制模型的学习过程。
2解耦权重衰减正则化
解耦权重衰减正则化的关键在于将权重衰减(weight decay)与其他参数的更新分开处理。这种方法可以通过以下步骤实现:
-
区分参数类型:在模型中识别出不同类型的参数,例如权重、增益(gains)、偏置(biases)等。权重通常需要应用衰减,而增益和偏置则不需要。
-
独立更新:在优化步骤中,对需要应用权重衰减的参数(即权重)和不需要衰减的参数(增益和偏置)进行独立更新。具体做法是,在计算梯度时,仅对权重施加衰减,而其他参数则按照正常的学习率进行更新。
-
数学表达:假设有一个权重参数 ( w ),它的更新步骤可以表示为:
w ′ = w − η ⋅ ∇ L ( w ) − λ ⋅ w w' = w - \eta \cdot \nabla L(w) - \lambda \cdot w w′=w−η⋅∇L(w)−λ⋅w其中 η \eta η是学习率, ∇ L ( w ) \nabla L(w) ∇L(w) 是损失函数对权重的梯度, λ \lambda λ 是权重衰减因子。对于增益和偏置,不应用最后一项。
这种方法的好处在于,它可以有效地防止模型的过拟合,同时使得模型在训练过程中更稳定,更容易收敛。
3偏置参数例子
增益(gains)参数通常用于调节某些层的输出,尤其是在批量归一化(Batch Normalization)、层归一化(Layer Normalization)或其他归一化技术中。它们用于控制输出的幅度。 例子
批量归一化(Batch Normalization):
在批量归一化中,输入数据首先被标准化(减去均值并除以标准差),然后乘以增益参数 γ \gamma γ,再加上偏置参数 β \beta β: y = γ ⋅ BN ( x ) + β y = \gamma \cdot \text{BN}(x) + \beta y=γ⋅BN(x)+β其中, BN ( x ) \text{BN}(x) BN(x) 是标准化后的输入, γ \gamma γ是增益参数, β \beta β 是偏置参数。通过调整 γ \gamma γ ,可以控制标准化后的输出的缩放。
层归一化(Layer Normalization):
- 类似于批量归一化,在层归一化中,增益和偏置参数也被应用于标准化后的输出,以便调整每个层的输出特征。
增益参数的作用主要是:
- 控制输出的范围:通过增益,可以放大或缩小归一化后的输出,使模型能够更好地适应数据的分布。
- 提高模型的表达能力:增益参数使得网络在学习过程中能够调整输出的幅度,有助于提高模型的性能。