AI学习路线图:最优化理论
最优化理论是寻找给定约束下的最优解的数学方法。在 AI 中,我们通过最小化一个“损失函数”来训练模型,而梯度下降法是实现这一目标最核心的算法。
1. 梯度下降的核心:一步
想象一个盲人站在山坡上想走到谷底。他只能通过脚感受当前位置的坡度(梯度),然后朝着下坡最陡的方向(梯度的反方向)迈出一小步(学习率)。这就是梯度下降的核心思想。
动手试试:
下图的抛物线是山坡 `J(w) = w²`,红点是盲人。调整学习率(步长),点击“走一步”,观察红点如何根据当前位置的切线(坡度)移动。
# 损失函数 J(w) = w^2
# 梯度 dJ/dw = 2w
# 更新规则
w_new = w_old - learning_rate * (2*w_old)
计算过程:
2. 梯度下降法动画
梯度下降就是不断重复“走一步”的过程。通过多次迭代,参数点会逐渐逼近损失函数的最小值。学习率的大小至关重要:太大可能会在谷底来回“震荡”甚至“飞出”,太小则收敛速度过慢。
动手试试:
设置一个起始点和学习率,然后点击“运行梯度下降”,观察参数 `w` 留下的“足迹”,看看它如何自动走向谷底。
w = 4.0 # 初始位置
learning_rate = 0.10
for i in range(20): # 迭代20次
gradient = 2 * w
w = w - learning_rate * gradient
3. 局部最优与全局最优
如果山坡不止一个谷底(非凸函数),盲人可能会走到一个较浅的谷底(局部最优)就停下了,而错过了那个最深的谷底(全局最优)。这是梯度下降法面临的一大挑战。
动手试试:
下图是一个有多个谷底的函数。选择不同的起始点,运行梯度下降,观察它会陷入哪个“山谷”。
# 复杂函数
# f(x) = x^4 - 4x^2 + 5
# f'(x) = 4x^3 - 8x
# 梯度下降可能会陷入局部最优
# 而不是找到全局最优解 x=0
最终收敛结果: