编辑
2024-09-06
入门基础
00

目录

权重衰减
2. 在SGD优化器中的直接结果:
a) 权重衰减:
b) 梯度修改:
c) 更平滑的决策边界:
d) 特征选择:
Drop_out
网络结构:
Dropout 应用:
神经元:
Dropout 丢弃的内容:

Neural-Networks-with-Dropout-for-Effective-Regularization.webp

权重衰减

def l2_penalty(w): return (w**2).sum() / 2
l = loss(net(X), y) + lambd * l2_penalty(w)

2. 在SGD优化器中的直接结果:

当使用随机梯度下降(SGD)优化器时,L2正则化会导致以下直接结果:

a) 权重衰减:

  • 在每次参数更新时,所有权重都会略微减小
  • 更新规则变为: w = w - learning_rate * (∂loss/∂w + lambd * w)
  • 这等效于: w = w * (1 - learning_rate * lambd) - learning_rate * ∂loss/∂w
  • 第一项 w * (1 - learning_rate * lambd) 就是权重衰减

b) 梯度修改:

  • L2正则化相当于在原始损失的梯度上加上了lambd * w
  • 这使得梯度下降不仅考虑减小损失,还要考虑减小权重的绝对值

c) 更平滑的决策边界:

  • 由于较大的权重受到惩罚,模型倾向于学习更平滑的决策边界
  • 这通常会提高模型的泛化能力,减少过拟合

d) 特征选择:

  • L2正则化倾向于将权重推向零,但通常不会使它们精确为零
  • 这意味着大多数特征仍会对预测有些许影响,但影响程度可能会减小

Drop_out

这种机制强制网络学习更加鲁棒的特征,因为它不能依赖于任何特定的神经元始终存在。这有助于减少过拟合,提高模型的泛化能力。

网络结构:

def net(X): X = X.reshape(-1, num_inputs) H1 = npx.relu(np.dot(X, W1) + b1) # 只有在训练模型时才使用dropout if autograd.is_training(): # 在第一个全连接层之后添加一个dropout层 H1 = dropout_layer(H1, dropout1) H2 = npx.relu(np.dot(H1, W2) + b2) if autograd.is_training(): # 在第二个全连接层之后添加一个dropout层 H2 = dropout_layer(H2, dropout2) return np.dot(H2, W3) + b3
  • 输入层: X (reshape 后的输入)
    • 第一隐藏层: H1
    • 第二隐藏层: H2
    • 输出层: np.dot(H2, W3) + b3

Dropout 应用:

在第一隐藏层 H1 之后 在第二隐藏层 H2 之后


神经元:

在这个网络中,神经元是指每一层的计算单元。具体来说:

H1 中的每个元素代表第一隐藏层的一个神经元的输出

H2 中的每个元素代表第二隐藏层的一个神经元的输出


Dropout 丢弃的内容:

Dropout 随机丢弃的是神经元的输出

在这个网络中,它分别作用于 H1 和 H2。 让我们通过一个具体的例子来更直观地理解:

假设我们有一个简化的网络,其中:

输入层有 4 个特征

第一隐藏层有 6 个神经元

第二隐藏层有 4 个神经元

输出层有 2 个神经元 Dropout 率为 0.5(意味着每次大约有 50% 的神经元会被丢弃) 示例:

json
输入 X: [0.1, 0.2, 0.3, 0.4] 第一隐藏层 H1 (在 Dropout 之前): [0.5, 0.6, 0.7, 0.8, 0.9, 1.0] 应用 Dropout 后的 H1: [0, 0.6, 0.7, 0, 0.9, 0] # 随机将一些元素置为 0 第二隐藏层 H2 (在 Dropout 之前): [1.1, 1.2, 1.3, 1.4] 应用 Dropout 后的 H2: [1.1, 0, 1.3, 0] # 再次随机将一些元素置为 0 输出: [结果1, 结果2]

在这个例子中:

第一隐藏层的 6 个神经元中,有 3 个被"丢弃"(输出被设为 0)。 第二隐藏层的 4 个神经元中,有 2 个被"丢弃"。 重要说明:

Dropout 只在训练时应用,这就是为什么代码中有 if autograd.is_training() 的判断。 每次前向传播时,被丢弃的神经元都是随机选择的。 在测试时,所有神经元都参与计算,但权重会相应调整以补偿训练时的 Dropout。

本文作者:Bob

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!