地面變平的地方
在第一卷裡,你透過令導數為零來搜尋曲線 y = f(x) 的高點與低點。在臨界點處切線水平,極大或極小只能藏在斜率消失之處。把這升到曲面 z = f(x, y) 上——一片鋪在平面之上、起伏的地貌——同樣的直覺依舊成立,但如今沒有單一的斜率了。每一點處,曲面在每個方位上傾斜的量都不同,而全部這些傾斜都被打包進一個向量:[[gradient|梯度]] nabla f = (df/dx, df/dy),即沿 x 的偏斜率疊在沿 y 的偏斜率之上。
極大或極小只能住在曲面局部平坦之處——而局部平坦意味著同時在每個方向都平,不只是沿兩條座標軸。梯度編碼了最陡的上坡方向以及它有多陡;若梯度在某處不為零,你便能沿它走一小步而上升,或逆它走一小步而下降,所以你就不可能已經坐在峰頂或坑底。於是我們要求整個向量消失:nabla f = (0, 0)。梯度為零向量的點是[[stationary-point-multivariable|駐點]](也稱臨界點),它們是光滑函數內部極大或極小的唯一候選者。
具體地說,nabla f = (0, 0) 是兩條方程 df/dx = 0 與 df/dy = 0,須聯立求解。對 f(x, y) = x^2 + y^2 - 4x,偏導數為 2x - 4 與 2y,所以唯一的駐點是 (2, 0)——而曲面是個碗,故該點是底部。對 f(x, y) = x^2 - y^2,偏導數為 2x 與 -2y,又給出 (0, 0),但這曲面沿 x 上彎、沿 y 下彎。配方相同,地貌卻大不相同。梯度判別法在兩種情形都找到了候選點;它單憑自身就是無法分辨谷底與山口。
一種新生物:鞍點
單變量微積分在平坦點處給出三種命運:局部極大、局部極小,或拐點——曲線在那裡變平卻仍朝同一方向延續。平面則添了一個真正全新的物種。仔細看 f(x, y) = x^2 - y^2 在原點處。用平面 y = 0 切曲面,你看到拋物線 z = x^2——一道向上微笑的谷,原點在其最低處。改用 x = 0 切,你看到 z = -y^2——一座向下皺眉的丘,原點在其最高處。同一個點,既是一截剖面的底,又是另一截剖面的頂。
這是一個[[saddle-point|鞍點]],名字恰如其分:它形如馬鞍或一片品客薯片。坐在中心,曲面在你前後升起,而向你左右兩側墜落。放在那裡的彈珠處於平衡——地面是平的,梯度為零——但這平衡不穩定:沿上升軸推它,它滾回來;沿下降軸推它,它一徑滾走。鞍點是個既非極大也非極小的駐點,因為曲面在某些方向上升、在另一些方向下降。曲線上沒有它的對應物,因為曲線沒有「另一個方向」來與第一個方向相左。
黑塞矩陣:一張曲率的方陣
要分類一個平坦點,我們需要曲率,正如單變量需要二階導數 f''。有兩個輸入時,二階偏導數有好幾個,盛放它們的賬本就是[[calc-hessian-matrix|黑塞矩陣]] H。它的元素是二階偏導數:H = [d^2f/dx^2, d^2f/dxdy; d^2f/dydx, d^2f/dy^2]。對角元量度曲面單獨沿每條軸如何彎曲;非對角元量度沿 x 的斜率隨你沿 y 移動而如何變化——這正是把兩個方向耦合起來的扭轉。
有一份饋贈使黑塞矩陣對稱。克萊羅定理說,對二階偏導數連續的函數,求導次序無關緊要:d^2f/dxdy = d^2f/dydx,混合偏導數相等。於是非對角元相等,H = [a, b; b, c],矩陣恆為對稱。這不是表面的雅致——對稱恰恰保證了之後全部曲率資訊都是實的、規矩的,不會扭進虛數裡去。但請記住誠實的告誡:若二階偏導數不連續,混合偏導數可能真的不等,整臺機器就需更小心對待。
為什麼偏偏是一個矩陣捕捉到了曲率?因為[[second-order-taylor-expansion-multivariable|二階泰勒展開]]。回想第一卷:在某點附近,單變量函數是 f(a) + f'(a)(x-a) + (1/2)f''(a)(x-a)^2。多元版本說:在駐點附近——那裡梯度項整個消失——f(x) 約等於該點的 f 加上 (1/2) 乘以 d 的轉置乘 H 乘 d,其中 d 是你邁出的微小一步。這個二次型 d^T H d 就是曲面剝去一切、只剩彎曲的局部形狀。因此,分類駐點等同於這個問題:這個二次型是恆正、恆負,還是其符號取決於 d 指向哪邊?
定性給出判決
決定一切的那一個事實,是[[definiteness-of-the-hessian|黑塞矩陣的定性]]。若對每個非零步長 d 都有 d^T H d 嚴格為正,稱 H 正定——無論你向哪邊傾,曲面都上彎,故該點是嚴格局部極小。若 d^T H d 恆為負,稱負定——曲面在所有方向下彎,是嚴格局部極大。若 d^T H d 在某些方向為正、另一些方向為負,則 H 不定,而這一混合判決恰恰就是鞍點:這邊上,那邊下。定性正是梯度無法給你的、不挑方向的總結。
對 2 階黑塞矩陣 H = [a, b; b, c],這化為一條著名、可驗算的法則,由行列式 D = ac - b^2 搭成。若 D > 0 且 a > 0,二次型正定——局部極小。若 D > 0 且 a < 0,負定——局部極大。若 D < 0,二次型不定——必為鞍點。行列式在此真在出力:D 為正意味兩個曲率同號,且扭轉項 b^2 太小,翻不動什麼,碗於是端住了;D 為負意味扭轉佔了上風,把碗撕成鞍。那個單獨的數 a 則只是說明同號的碗朝哪邊開口。
Stationary point of f(x,y), Hessian H = [a, b; b, c], D = a*c - b*b D > 0, a > 0 -> local MINIMUM (bowl up, positive definite) D > 0, a < 0 -> local MAXIMUM (bowl down, negative definite) D < 0 -> SADDLE point (mixed, indefinite) D = 0 -> TEST FAILS (flat to 2nd order -- look higher) example f = x^2 - y^2 : a=2, c=-2, b=0 -> D = -4 < 0 -> saddle example f = x^2 + y^2 : a=2, c= 2, b=0 -> D = 4 > 0, a>0 -> minimum
細讀那行小字
請誠實面對這條[[second-derivative-test-multivariable|二階導數判別法]]失聲之處:D = 0 的情形。當行列式恰為零,二次型至少沿一個方向是平的——它在二階上既不上彎也不下彎——判別法便乾脆無法裁決。判決於是懸在黑塞矩陣從未看見的三次或更高次項上。經典陷阱是「猴鞍」f(x, y) = x^3 - 3xy^2,它在原點的黑塞矩陣是零矩陣,故 D = 0;判別法一聳肩,唯有看那三次形狀,你才會發現一個三向鞍,留出兩條腿和一條尾巴的位置。行列式為零是一面寫著「往更高處看」的旗,絕非「這是極小」。
還有兩條誠實的侷限,二者都直接承自第一卷。其一,判別法純屬局部:它只把某點認證為相對於其緊鄰而言的低處。一個函數可以有一個整潔的局部極小,卻離它在曲面別處真正的全域極小遠得很——二階導數判別法從不看見整片地貌,只看腳下那個小凹。其二,它只就內部駐點發言。一個真實設計問題的實際最優值,常常坐落在梯度從不變平的邊界或角落上,恰如單變量最佳化中端點可以勝過閉區間內所有的內部臨界點。
- 算出兩個一階偏導數 df/dx 與 df/dy,各令為零,聯立求解方程組,列出每一個內部駐點。
- 構造黑塞矩陣 H = [d^2f/dx^2, d^2f/dxdy; d^2f/dydx, d^2f/dy^2],並分別在每個駐點處求出其各元素的值。
- 在該點算出 D = ac - b^2;若 D > 0,按 a 的符號讀出極小(a > 0)或極大(a < 0),若 D < 0 判為鞍點,若 D = 0 則退回到高階分析。
- 為求真正的最優,還要單獨檢查邊界與任何角落,再把這些候選值與內部的勝者比較,方能定出全域最優。