次梯度可视化
Subdifferential Visualization - Understanding Subgradients
📐 次梯度定义 (Subdifferential Definition)
∂f(x) = {g ∈ ℝd : f(y) ≥ f(x) + ⟨g, y - x⟩ for all y ∈ X}
含义:向量 g 是点 x 处的次梯度,当且仅当过点 (x, f(x)) 且斜率为 g 的直线位于函数 f 的下方(或接触函数)
Meaning: Vector g is a subgradient at x if and only if the line through (x, f(x)) with slope g lies below (or touches) function f everywhere
🔵 可微点 (Differentiable Point)
🔴 不可微点 (Non-differentiable Point)
🔵 可微点 x = 1.00: ∂f(x) = {1.00} ✓ 单点(可微)
🔴 不可微点 x = 0.00: ∂f(x) = [-1.00, 1.00] ✓ 区间(7 个次梯度)
✅ 可微点 (Differentiable)
- 函数在该点光滑
- 只有一条支撑线
- ∂f(x) = {∇f(x)}(单元素集合)
- 次梯度 = 梯度
⚠️ 不可微点 (Non-differentiable)
- 函数在该点有"尖角"或"折点"
- 有多条支撑线
- ∂f(x) 包含多个次梯度
- 所有支撑线斜率的集合
💡 交互说明 (Instructions):
- 选择不同的函数类型
- 点击左图(可微点)和右图(不可微点)来对比
- 观察支撑线的数量差异
- 红色线是通过选定点且满足支撑条件的直线
🎯 关键理解 (Key Understanding)
1. 支撑线的几何意义:
次梯度 g 对应一条过点 (x, f(x)) 的直线:y = f(x) + g(t - x)
这条线必须"支撑"整个函数,即对所有点都有:f(t) ≥ f(x) + g(t - x)
2. 为什么可微点只有一个次梯度?
在光滑点,函数的切线是唯一的支撑线,所以 ∂f(x) = {∇f(x)}
3. 为什么不可微点有多个次梯度?
在尖角或折点,有多条直线都可以"托住"函数曲线,这些直线的斜率构成次微分集合
4. 例子:
- f(x) = |x| 在 x=0: ∂f(0) = [-1, 1](所有斜率在 -1 到 1 之间的线都支撑函数)
- f(x) = max(x, 0) 在 x=0: ∂f(0) = [0, 1]
- f(x) = x² 在 x=1: ∂f(1) = {2}(只有梯度 2)