特征归一化与梯度下降

特征归一化与梯度下降

Jackknifer
Jackknifer 博主

用梯度下降训练模型时,损失函数的等高线有时呈狭长椭圆,有时接近圆形。这些形状会影响参数更新的路径和收敛速度。下面通过梯度公式和数值例子,说明特征归一化如何影响这个过程。

1. 输入特征与模型参数

以线性回归为例:

y^=w1x1+w2x2+b\hat y=w_1x_1+w_2x_2+b

x₁、x₂ 可以分别代表房屋面积和房龄;w₁、w₂ 是模型要学习的权重。训练时,输入特征已经给定,梯度下降会不断更新权重。绘制训练过程中的损失函数等高线时,横纵坐标通常选择两个待优化的参数,例如 w₁、w₂。图上的每个点对应一组参数值。后文还会使用 u₁、u₂ 表示一般的优化变量。

2. 等高线为什么是圆形或椭圆形?

先考虑一个损失函数:

L(u1,u2)=12(u12+u22)L(u_1,u_2)=\frac12(u_1^2+u_2^2)

把 u₁、u₂ 作为水平坐标,把损失 L 作为高度,便得到一个碗形曲面。当损失固定为 c 时:

u12+u22=2cu_1^2+u_2^2=2c

这是一条圆形曲线。改变 c,便得到一圈圈圆。同一条等高线上的所有点,损失值相同;越靠近中心,损失越小。

交互演示:改变等高线的高度

单独打开拖动滑块,观察损失曲面的水平切面和等高线。

若损失函数变成:

L(u1,u2)=5u12+12u22L(u_1,u_2)=5u_1^2+\frac12u_2^2

其等高线为:

5u12+12u22=c5u_1^2+\frac12u_2^2=c

这是一条椭圆。因为沿 u₁ 方向改变相同数值时,损失增长得更快;沿 u₂ 方向,损失变化较慢。椭圆短轴对应变化较快的方向,长轴对应变化较慢的方向。当损失函数包含两个变量的交叉项时,椭圆还可能发生旋转,呈现倾斜形状。

3. 为什么梯度决定参数更新幅度?

梯度下降的公式为:

wj(t+1)=wj(t)−η∂L∂wjw_j^{(t+1)}=w_j^{(t)}-\eta\frac{\partial L}{\partial w_j}

其中,η 为学习率,偏导数表示损失沿该参数方向的局部变化速度。

因此,每一步参数变化的绝对值满足:

∣Δwj∣=η∣∂L∂wj∣|\Delta w_j|=\eta\left|\frac{\partial L}{\partial w_j}\right|

学习率相同时,梯度绝对值越大,该参数当次更新的幅度越大。 梯度正负号决定更新方向。

考虑:

L(w1,w2)=5w12+12w22L(w_1,w_2)=5w_1^2+\frac12w_2^2

对应梯度:

∂L∂w1=10w1,∂L∂w2=w2\frac{\partial L}{\partial w_1}=10w_1,\qquad \frac{\partial L}{\partial w_2}=w_2

从 (1,1) 出发,学习率为 0.1,更新一次得到:

w1(1)=1−0.1×10=0w_1^{(1)}=1-0.1\times10=0 w2(1)=1−0.1×1=0.9w_2^{(1)}=1-0.1\times1=0.9

两个方向的更新幅度分别为 1 和 0.1。相同学习率下,梯度的数值差异直接影响了更新幅度。

4. 为什么更新幅度差异会拖慢收敛?

在狭长椭圆对应的损失函数中,一个方向陡峭,另一个方向平缓。学习率较大时,陡峭方向可能反复跨过最优位置;学习率较小时,平缓方向又可能移动得非常慢。

对于上面的椭圆损失,梯度下降的更新公式为:

w1(t+1)=(1−10η)w1(t)w_1^{(t+1)}=(1-10\eta)w_1^{(t)} w2(t+1)=(1−η)w2(t)w_2^{(t+1)}=(1-\eta)w_2^{(t)}

例如 η=0.18 时,w₁ 每次乘以 −0.8,在最优值两侧交替移动;w₂ 每次乘以 0.82,持续缓慢靠近中心。

对于圆形损失:

L(u1,u2)=12(u12+u22)L(u_1,u_2)=\frac12(u_1^2+u_2^2)

两个方向满足同一更新规律:

uj(t+1)=(1−η)uj(t)u_j^{(t+1)}=(1-\eta)u_j^{(t)}

此时各方向以相同的比例靠近最优值,路径通常更直接。

交互演示:调节学习率和迭代次数

单独打开调节两个滑块,观察椭圆和圆形损失的参数移动路径。

可以把学习率调到 0.20 以上,观察椭圆损失的更新为什么容易发散;也可以将学习率降低到 0.10 以下,观察较平缓方向的移动速度。

梯度数值决定当次更新幅度;各方向的曲率和学习率共同影响整个收敛过程。 更新速度存在差异,并不意味着一定找不到最优值。

5. 特征归一化对收敛的影响

重新考虑线性回归:

y^=w1x1+w2x2+b\hat y=w_1x_1+w_2x_2+b

对一个样本,采用平方损失:

L=12(y^−y)2L=\frac12(\hat y-y)^2

记预测误差 e=ŷ−y,求导得到:

∂L∂w1=ex1,∂L∂w2=ex2\frac{\partial L}{\partial w_1}=ex_1,\qquad \frac{\partial L}{\partial w_2}=ex_2

假设某个样本的两个特征分别为 100 和 1,当前预测误差为 2,那么两个梯度分别是 200 和 2。这说明输入特征的数值尺度会影响对应参数的梯度。

对整个训练集而言,各样本的误差贡献还要汇总计算。若不同特征的数值尺度相差很大,损失函数在不同参数方向上的曲率也可能相差很大,形成狭长的等高线。

通过最小值—最大值缩放(Min-Max Scaling),或标准分数标准化(Z-Score Standardization),可以使特征处于较接近的数值尺度。这通常有助于改善损失函数的形状,使梯度下降更容易选择合适的学习率。

当两个参数方向的曲率相近时,等高线可能接近圆形。真实数据还受到特征相关性的影响,因此归一化后等高线仍可能呈椭圆形,收敛速度也取决于学习率等因素。

评论

评论由 GitHub Giscus 提供。若当前网络无法加载,可 前往 GitHub Discussions 查看或参与讨论。