2024.01.13 过拟合解决方案之权重衰减
范数
线性代数中最有用的一些运算符是范数(norm)。 非正式地说,向量的范数是表示一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小。
范数听起来很像距离的度量。 欧几里得距离和毕达哥拉斯定理中的非负性概念和三角不等式可能会给出一些启发。 事实上,欧几里得距离是一个 L 2 L_2 L2范数: 假设 n n n维向量 x \mathbf{x} x中的元素是 x 1 , … , x n x_{1},\ldots,x_{n} x1,…,xn,其 L 2 L_2 L2范数是向量元素平方和的平方根:
∥ x ∥ 2 = ∑ i = 1 n x i 2 , \|\mathbf{x}\|_2=\sqrt{\sum_{i=1}^nx_i^2}, ∥x∥2=i=1∑nxi2,
其中,在 L 2 L_2 L2范数中常常省略下标2,也就是说 ∥ x ∥ \|\mathbf{x}\| ∥x∥等同于 ∥ x ∥ 2 \|\mathbf{x}\|_2 ∥x∥2。在代码中,我们可以按如下方式计算向量的 L 2 L_2 L2范数。
u = torch.tensor([3.0, -4.0])
torch.norm(u)
输出:
tensor(5.)
深度学习中更经常地使用 L 2 L_2 L2范数的平方,也会经常遇到 L 1 L_1 L1范数,它表示为向量元素的绝对值之和:
∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \|\mathbf{x}\|_1=\sum_{i=1}^n|x_i| ∥x∥1=i=1∑n∣xi∣
权重衰退原理
在训练参数化机器学习模型时, 权重衰减(weight decay)是最广泛使用的正则化的技术之一, 它通常也被称为 L 2 L_2 <