信賴域法(trust-region method)
想像你在霧中測繪未知地形,只憑站立處所能感覺的,建一個簡單光滑的地面模型。這個模型只在附近可信——往外走幾步就成了虛構。於是你畫一個半徑為你所「信賴」的圓,在圓內找出模型的最低點,走過去。若真實地面與模型吻合,下次就更信賴、把圓放大;若它說了謊,就縮小圓再試。這就是信賴域法。
具體地說,在當前點 x_k 周圍,方法建一個二次模型 m(p) = f(x_k) + grad f(x_k)^T p + (1/2) p^T B_k p,其中 B_k 是海森矩陣或其近似。不像線搜尋先選方向再選步長,它一次解出兩者:在 ||p|| <= Delta_k(信賴域半徑)的限制下最小化模型 m(p)。試探步 p 就是模型在那顆球內的最佳一步。接著量「吻合比」rho =(f 的實際減量)/(模型預測的減量)。若 rho 接近 1(模型很準),接受該步並放大 Delta;若 rho 很小或為負(模型過度承諾),拒絕該步並縮小 Delta。半徑會依局部模型的可靠度自動調整。
信賴域與線搜尋是步長控制的兩大支柱,而信賴域有個關鍵優勢:當海森矩陣非正定時它依然優雅運作——在鞍點附近或負曲率區域裡,純牛頓的線搜尋步可能指向上坡或爆掉,而信賴域只是把步長封頂,仍能安全前進。這份穩健讓它成為列文柏格-馬夸特法(其阻尼參數正是一個隱含的信賴域半徑)以及許多正式非線性求解器的骨幹。誠實的代價是:每次迭代精確求解那個約束子問題(信賴域子問題)比回溯線搜尋更費事,所以實務程式只近似求解(例如用 dogleg 法或 Steihaug-CG 法)。
假設二次模型預測:若走完整的牛頓步 f 會降 10,但該步落在信賴半徑 Delta = 2 之外,於是改走長度為 2 的最佳步。模型在該處預測降 6;真實函數降 5.4,故 rho = 5.4 / 6 = 0.9——吻合良好,於是接受並放大 Delta。若 f 反而上升,rho < 0:拒絕、縮小 Delta、重新求解。
只在一顆球內信賴模型;依預測準度調整球的大小。
信賴域與線搜尋從相反方向解決同一問題:線搜尋先固定方向再選長度,信賴域先固定最大長度再在其內選最佳方向。當曲率不定(鞍點附近)、牛頓線搜尋方向可能毫無意義時,信賴域勝出。