在數學最佳化中,羅森布羅克函數是一個用來測試最佳化演算法性能的非凸函数,由霍華德·哈里·羅森布羅克】在1960年提出。也稱為羅森布羅克山谷或羅森布羅克香蕉函數,也簡稱為香蕉函數。
羅森布羅克函數的定義如下:
: f(x, y) = (1-x)^2 + 100(y-x^2)^2 .\quad
羅森布羅克函數的每个等高线大致呈抛物线形,其全域最小值也位在抛物线形的山谷中(香蕉型山谷)。很容易找到這個山谷,但由於山谷內的值變化不大,要找到全域的最小值相當困難。
其全域最小值位於(x, y)=(1, 1)點,數值為f(x, y)=0。有時第二項的係數不同,但不會影響全域最小值的位置。
的結果,約1000次才到達全域最小值]]
多變數下的擴展
多變數的羅森布羅克k函數有以下二種形式。一種是N/2個獨立二維羅森布羅克函數的和:
: f(\mathbf{x}) = f(x_1, x_2, \dots, x_N) = \sum_{i=1}^{N/2} \left[100(x_{2i-1}^2 - x_{2i})^2
- (x_{2i-1} - 1)^2 \right].
此形式只在N為偶數時有定義,而且其解較簡單。
另一個較複雜的形式為:
: f(\mathbf{x}) = \sum_{i=1}^{N-1} \left[ (1-x_i)^2+ 100 (x_{i+1} - x_i^2 )^2 \right] \quad \forall \mathbf{x}\in\mathbb{R}^N.
可證明當N=3時,此形式的羅森布羅克函數只有一個最小值(位置在(1, 1, 1)),在 4 \le N \le 7時只有二個最小值,所有變數均為1時有全域最小值,而在(x_1, x_2, \dots, x_N) = (-1, 1, \dots, 1)附近有局部最小值。此結果是將令函數的梯度為0後求得,羅森布羅克函數的梯度仍為一個x的多項式,在N較小時,可以精確的列出多項式,再求出實根的個數,而其根限制在|x_i| 的範圍內。若N較大時因為相關的係數太多,無法用以上方式進行。
随机函数
有許多方式可以將羅森布羅克函數延伸到隨機(stochastic)函數,以下是一種例子:
: f(\mathbf{x}) =\sum_{i=1}^{n-1} \Big[(1-x_i)^2+100 \epsilon_i (x_{i+1}-x_i^2)^2 \Big],
其中隨機變數\epsilon_i (i=1,2,...,n-1) 服從均勻分布 Unif(0,1)。原則上,此隨機函數的全域最小值仍在(1,1,...,1),不過因為其隨機的特性,任何以梯度下降法為基礎的最佳化演算法均無法用來求得此隨機函數的最小值。
可適用的最佳化演算法
經若經過適當的坐標系調整,可以在沒有梯度資訊及不建立局部近似模型的情形下(和其他不使用梯度資訊的最佳化演算法相反),用最佳化演算法求得羅森布羅克函數的最小值。以下的例子說明如何用對二維的羅森布羅克函數進行最佳化,啟始點x_0=(-3,-4)。在325次函數的運算後可找到最小值的位置,函數的數值為10^{-10}。
相關條目
*
*
- 格里旺克函數
參考資料
外部連結
- [http://www.gnuplot.info/screenshots/figs/pm3d-Rosenbrock.png Rosenbrock function plot in 3D]
- [http://demonstrations.wolfram.com/MinimizingTheRosenbrockFunction/ Minimizing the Rosenbrock Function] by Michael Croucher, The Wolfram Demonstrations Project.
*
评论 (0)