2 Regularization and Optimization¶
2.1 Regularization¶

对数据进行拟合的时候,会出现过拟合的情况,这是我们不想遇到的情况。于是我们引入一个正则化项,通过惩罚模型参数 \(W\) 的复杂度来实现这一点。通过控制 \(\lambda\) 来控制了正则化项在总损失中的权重,较大的 \(λ\) 值会使得模型更加简单,较小的 \(λ\) 值则允许模型更复杂。
常见的正则化方法
- L2 正则化
L2 正则化通过对权重矩阵 \(W\) 中所有元素的平方和进行惩罚,鼓励权重向量接近零但不为零。这有助于减少模型的复杂度,从而降低过拟合的风险。
- L1 正则化
L1正则化通过对权重矩阵 \(W\) 中所有元素的绝对值之和进行惩罚,鼓励权重向量中的一些元素变为零。这不仅有助于减少模型的复杂度,还可以实现特征选择的效果。
- Elastic Net(L1 + L2)
Elastic Net 结合了 L1 和 L2 正则化的特点,通过同时使用平方项和绝对值项来惩罚权重矩阵 \(W\)。这种方法可以在一定程度上克服 L1 和 L2 正则化的局限性,提供更灵活的正则化效果。
-
更复杂的正则化方法,除了上述简单的正则化方法外,还有些更复杂的正则化技术,这将在 Lecture 5 中阐述:
-
Dropout:在训练过程中随机丢弃一部分神经元,以减少神经元之间的依赖关系,从而提高模型的泛化能力。
-
Batch Normalization:通过对每一批数据进行标准化处理,加速模型的收敛速度,并减少内部协变量偏移问题。
- Stochastic Depth, Fractional Pooling, etc.:这些方法通过引入随机性和不确定性来进一步增强模型的泛化能力。
Example
给定:
- 输入向量 $ x = [1, 1, 1, 1]$
- 权重向量:
- \(w_1 = [1, 0, 0, 0]\)
- \(w_2 = [0.25, 0.25, 0.25, 0.25]\)
这两个权重向量与 \(x\) 的点积相同:
使用 L2 正则化, L2 正则化公式为:
问题:L2 正则化更偏好哪个权重?
解释:
L2 正则化倾向于“分散”的权重,即更喜欢权重分布均匀而不是集中在少数位置。
分别计算两个权重的 L2 正则化值:
-
\(R(w_1) = 1^2 + 0 + 0 + 0 = 1\)
-
\(R(w_2) = 4 \times (0.25)^2 = 4 \times 0.0625 = 0.25\)
结论:L2 更偏好 \(w_2\),因为它的正则化值更小。
使用L1 正则化,L1 正则化公式为:
问题:L1 正则化更偏好哪个权重?
解释:
L1 正则化倾向于稀疏的权重,即更喜欢很多权重为 0 的情况。
分别计算两个权重的 L1 正则化值:
-
\(R(w_1) = |1| + 0 + 0 + 0 = 1\)
-
\(R(w_2) = 4 \times |0.25| = 1\)
虽然两者值相同,但 L1 更偏好 \(w_1\),因为它的非零元素更少,更稀疏。
总结
- L2 正则化 偏好 \(w_2\):权重分布更均匀。
- L1 正则化 偏好 \(w_1\):权重更稀疏(更多 0)。
2.2 Optimization¶
In 1-dimension, the derivative of a function:
在多维空间中,一个函数的梯度是一个向量,它的每个分量是函数在对应维度上的偏导数(partial derivative)。
在任意一个方向上,函数的变化率(也就是“斜率”)等于这个方向向量与梯度的点积(dot product)。
函数在某一点下降最快的方向是梯度的反方向,也就是负梯度方向。
一般情况下我们不用这种方法,计算量太大,一般采取解析法得到梯度。但是在检查的时候可能会采用数值法来验证正确性 (gradient check)
Stochastic Gradient Descent (SGD)¶
损失函数
梯度计算
当 \(N\) 很大时,计算所有样本的梯度非常昂贵。
使用小批量近似求和:使用一个小批量(minibatch)的样本进行梯度估计,而不是使用全部样本。常见小批量大小:32、64、128 等
Vanilla Minibatch Gradient Descent 实现