多元最佳化
局部最優與全域最優(local versus global optimum)
站在山坡上的一個小凹處:在局部,你已在底部——每往附近邁一步都向上。但放眼整片山脈,也許有一條你看不見、深得多的谷。局部最優只相對於它緊鄰的鄰域是最好的;全域最優才是整個可行區域中最好的。把它們區分開來,是最佳化的核心難題之一。
形式上,若 f 在某點小於等於所有鄰近點的 f,該點是局部極小;若 f 在某點小於等於定義域中每一點的 f,則是全域極小。微積分條件——梯度為零、黑塞矩陣正定——本質上是局部的:它們只考察無窮小鄰域,所以能認證局部極小,卻對別處是否存在更低值隻字不提。一個函數可以有許多深淺不一的局部極小;一般而言要找出全域的那個,要麼逐一檢查所有局部極小,要麼利用特殊結構,要麼退而求一個足夠好的局部解。
這道鴻溝正是真正困難之所在。凸性是偉大的化解者:在凸集上的凸函數上,每個局部極小都是全域極小,於是局部方法解決了全域問題。一旦離開凸世界——在蛋白質折疊、神經網路訓練、組合設計中——一般並沒有高效找到全域最優的保證,從業者會用多次重啟、隨機搜索,或乾脆接受一個強的局部解。誠實地分清能認證局部與已找到全域之別,是成熟最佳化實踐的一部分。
f(x) = x^4 - 4 x^2 + x 有兩個深淺不同的局部極小——靠近 x = -1.4 處較淺,靠近 x = 1.3 處更深、為全域。一個從左側出發的下坡方法會落進那個較淺的局部極小,永遠看不見更深的全域極小。
起點決定下坡方法找到哪個局部極小——它可能錯過全域的那個。
對一般函數,任何純局部的檢驗——梯度也好、黑塞矩陣也好——都無法認證全域最優。只有附加的結構,首先是凸性,才能把局部保證升級為全域保證。
又稱
另見