★加星zzllrr小樂公眾號數學科普不迷路!
登山者霧中尋路想要最快抵達峽谷,有哪些數學優化方法呢?傳統梯度下降法沿最陡方向迭代,易繞遠路;而牛頓法等二階優化策略通過構建局部二次模型(如橢圓蛋杯),利用導數信息預測最優路徑,在高維空間中規避狹長山谷陷阱,以更少步驟逼近極值點,但需處理復雜地形(如香蕉形山谷)帶來的收斂挑戰。
作者:Christoph P?ppe(科學光譜編輯、科普作家)2025-4-16
譯者:zzllrr小樂(數學科普公眾號)2025-4-21
想象一下在阿爾卑斯山徒步旅行時被霧氣所震驚。能見度只有幾米,你不知道路在何方,而且無法使用GPS等其他定位手段。由于你不記得自己的位置,因此徒步地圖對你沒有太大幫助。
不用說,無論哪個山谷,你都想在天黑之前盡快到達,因為在那里你一定能找到過夜的地方,甚至找到一份奶酪面疙瘩,或者任何你心儀的東西。
該怎么辦?這看起來比較清楚。你環顧四周,朝最陡的下降方向走幾步,再次環顧四周——從新的有利位置你可以看到更多的地形——然后再次選擇最陡的下降方向,依此類推。
在真正的阿爾卑斯山中,這個方法在大多數情況下都是有效的。最好的情況是,它會因為地勢較高的山谷洼地而失敗,洼地中可能填滿了一個沒有出口的湖泊——這種情況在阿爾卑斯山相當罕見。
或者你遇到了一堵垂直的墻,下一步你就要走很遠,但你在徒步過程中生存下來的次要條件卻沒有得到滿足。
當你到達目的地時,你才意識到自己走了很長的彎路。徒步旅行的終點是一條小河的河口,這條小河在山上開出一條相當筆直的峽谷。
當霧氣來臨時,你就在這個狹窄山谷的斜坡上,先沿著陡峭的山坡走到河邊,然后沿著河道走。有了正確的鳥瞰圖,你就可以以適中的角度逐漸走下坡路,從而節省大量的步行時間。
好的。當然,我在這個數學博客里并不是真正寫有關登山的事情。但這對于理解我們想象力難以觸及的抽象問題來說是一個合適的拐杖。
用數學模型模擬的徒步旅行
用數學來實現登山者問題并不是特別困難。經度和緯度是合適的坐標系。有一個函數,我們稱之為f(x),它給出每個點x的海拔高度。(注意:x由兩個實數組成,一個表示地理經度,另一個表示緯度。)我們正在尋找f(x)最小的點。
歸根結底,x由n個分量組成,并且n遠大于2:需要盡可能多的數量才能完整描述要建模的物理或化學系統。然后,函數f描述了人們希望盡可能小的事物:制造產品所需的工作量、機器的重量、過程產生的廢物量或預測與現實之間的偏差。或者你希望f盡可能大,這是相同的問題,只是符號相反。
一位知識淵博的徒步旅行者會將目光掃過地圖,毫不費力地找到地形的最低點。我們的函數f也為我們提供了有關地形的完整知識——但不是以地圖的形式!
除了地圖必須具有n維這一事實之外,函數f并不能為我們提供鷹一樣的鳥瞰。取而代之的是,它只告訴我們呈現的每個點x有多高。
通過計算域中密集點(例如每個坐標軸上的100個點)的函數值來制作地圖通常不是一個好主意。計算函數值可能需要計算機花費相當長的時間,并且即使對于中等大小的n來說,100?個點也是很多的。
但也許我們的函數f是可微的,所以它在每個點都有一個導數;在多維情況下,它被稱為梯度。地勢略有起伏;沒有尖銳的邊緣,而是每個點都有一個切平面,它可以非常精確地描述該點附近的地形,還可以準確地顯示最陡下降發生的方向。
如果你站在碎石場上,這張照片可能不太合適,但它仍然可以作為對當時情況的有用近似。然而,f的梯度僅提供了有關周圍環境的有用信息;所以你實際上是站在霧中。可見度如何?對此,尚無普遍的說法。
這就是分析的棘手之處:通過區分獲得的信息到底有多大用處,只有在回顧時才會變得清晰。
如何找到極值點?
在很多應用問題中,目標函數f確實是可微的。學校里有一種方法:至少滿足導數為零。(相反,如果導數為零,則仍然可能沒有最小值;這必須單獨檢查。但這種復雜性與我們這里的場景無關。)然后我們只需尋找導數的零點。這相當于求解一個包含n個未知數的n個方程組。
根據問題的具體情況,這可能會變得相當令人困惑。但如果梯度本身是一個可微函數,那么就可以用牛頓法找到它的零點。反過來,這是基于這樣的思想:曲線函數可以用直線來近似,即當前視點中的切線,或其在n維情況下的推廣。
然后計算切線的零點——這很容易,因為切線和梯度一樣,是一條直線——并希望近似值的零點是零點的近似值,即以這種方式計算出的點離你實際尋找的函數的零點不太遠。你以此作為新的視點,計算那里的切線零點,等等。
如果當前位置距離搜索目標不太遠,牛頓法就會以驚人的速度找到這個目標。如果該地點附近的情況與目的地附近的情況有顯著差異,例如,如果獨自徒步旅行者和目的地之間有山脊,那么該程序可能會產生嚴重的誤導。這就是為什么最好以較短的步幅開始,并且只有看到目的地時才松開步伐。
通用蛋杯
為了解決原始問題,需要將兩個不同的原理疊加在一起:一是通過尋找導數的零點來尋求目標函數的最小值。二是我們嘗試借助導數的導數來接近這個零點。這兩個思維步驟可以合并為一個嗎?
原則上是的。從某個維度來看,這是比較清楚的。一次函數的零點與二次函數的最小值點相同,即開口向上的拋物線的最低點。在二維中,拋物線對應于廣義的蛋杯:繞其對稱軸旋轉的拋物線——頂部開口,每個水平橫截面都是圓形。
但這太具體了。一般情況下,蛋杯都變形了。橫截面不是圓形,而是橢圓形,并且可能非常窄,甚至與坐標軸傾斜。而更高維度、甚至更加復雜變形的蛋杯更是無法想象。
無論如何,所描述的最小值搜索相當于以下步驟:將廣義的蛋杯放置在最適合該位置附近地形的當前位置。然后跳到蛋杯的最低點并從那里繼續搜索。如果比較困難,可以先處理縮小的蛋杯,直到快結束時再讓它們恢復到原來的大小。
下圖清楚地表明了該方法避免了登山者繞路。如果他站在一個橢圓形橫截面的隕石坑邊緣,不會跑到最陡峭的地方,而是斜著跳,直接跳到橢圓的中心。從多個方面來看,節省的路程都是巨大的。
這不是圓盤的斜視圖,而是從上方看到的具有橢圓形橫截面的隕石坑的視圖。橢圓是等高線。從隕石坑邊緣的視角(藍色)來看,到達最低點的最短路線不是沿著最陡的下降方向(紅色),而是沿著對角線方向(綠色)。
因此,狹長的山谷不會對這一過程產生太大的影響。當山谷呈香蕉形時,事情就變得非常困難:狹長而彎曲。然后,一個未經檢查的過程有時會急劇上升,并且很難走出錯誤的角落。優化方法的設計者隨后在這些“香蕉形山谷”上測試他們的技能。
參考資料
https://scilogs.spektrum.de/hlf/bergwandern-in-n-dimensionen/
http://www.poeppe-online.de
科普薦書
【更多讀者好評數學書單推薦、數學科普作家自薦、出版社書單推薦通道已陸續打開,敬請期待】
·開放 · 友好 · 多元 · 普適 · 守拙·
讓數學
更加
易學易練
易教易研
易賞易玩
易見易得
易傳易及
歡迎評論、點贊、在看、在聽
收藏、分享、轉載、投稿
查看原始文章出處
點擊zzllrr小樂
公眾號主頁
加星★
數學科普不迷路!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.