一階最佳性條件(first-order optimality condition)
站在谷底,感受腳下的地面:它是平的。站在山頂:也是平的。只要地面有傾斜,你就能往下踏一步走得更低——所以最低點絕不會落在斜坡上。一階最佳性條件把這個日常事實化為一個檢驗:在光滑函數的任何極小(或極大)處,地面必定是平的——每個方向的斜率都是零。
精確地說:若 x* 是可微函數 f 的局部極小,且 x* 不在邊界上,則梯度為零,grad f(x*) = 0。梯度是各偏導數組成的向量 (df/dx_1, ..., df/dx_n);它指向最陡上升的方向,長度就是最陡斜率。令它等於零向量,意思是沒有任何方向往下走——局部而言曲面是平的。使 grad f = 0 的點稱為駐點(stationary point)或臨界點,而解 grad f(x) = 0 正是微積分定位候選極小的方法。這是 n 個未知數、n 條方程的系統,往往是非線性的,本身也用數值方法求解(例如牛頓法)。
關鍵的誠實之處:這個條件是必要的,卻不是充分的。平坦的地面可能標記著極小、極大或鞍點——三者梯度都是零。所以 grad f(x*) = 0 只是把 x* 提名為候選;你需要二階條件(曲率)才能分辨它是哪一種。實務上下降演算法從不精確地解 grad f = 0;它們在梯度長度降到某個小容差以下、即 ||grad f|| < epsilon 時停止,接受一個「夠平」的點。
對 f(x) = x^3 - 3x,梯度是 f'(x) = 3x^2 - 3,在 x = 1 與 x = -1 處為零。兩者都是駐點,然而 x = 1 是局部極小,x = -1 是局部極大。一階檢驗對兩者一視同仁;唯有曲率(f''(x) = 6x)能把它們分開。
梯度為零提名了候選點,卻無法說明它是極小、極大還是鞍點。
梯度為零只對光滑函數的內部極小是必要的。在約束邊界或折點(不可微之處,如 |x| 在 0)上,極小可以落在梯度非零或無定義之處——這正是約束問題改用 KKT 條件的原因。