查看“︁羅森布羅克函數”︁的源代码
←
羅森布羅克函數
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{NoteTA |G1=Math |G2=IT }} [[Image:Rosenbrock function.svg|thumb|right|300 px|雙變數的羅森布羅克函數]] 在數學[[最佳化]]中,'''羅森布羅克函數'''是一個用來測試最佳化[[演算法]]性能的非凸函数,由[[霍華德·哈里·羅森布羅克】]]在1960年提出<ref>{{cite journal|last=Rosenbrock|first=H.H.|title=An automatic method for finding the greatest or least value of a function|journal=The Computer Journal|year=1960|volume=3|pages=175–184|doi=10.1093/comjnl/3.3.175| issn=0010-4620 }}</ref>。也稱為'''羅森布羅克山谷'''或'''羅森布羅克香蕉函數''',也簡稱為'''香蕉函數'''。 羅森布羅克函數的定義如下: : <math>f(x, y) = (1-x)^2 + 100(y-x^2)^2 .\quad </math> 羅森布羅克函數的每个[[等高线]]大致呈[[抛物线]]形,其全域最小值也位在抛物线形的山谷中(香蕉型山谷)。很容易找到這個山谷,但由於山谷內的值變化不大,要找到全域的最小值相當困難。 其全域最小值位於<math>(x, y)=(1, 1)</math>點,數值為<math>f(x, y)=0</math>。有時第二項的係數不同,但不會影響全域最小值的位置。 [[Image:Banana-SteepDesc.gif|300 px|thumb|right|用羅森布羅克函數測試[[梯度下降法]]的結果,約1000次才到達全域最小值]] ==多變數下的擴展== 多變數的羅森布羅克k函數有以下二種形式。一種是<math>N/2</math>個獨立二維羅森布羅克函數的和: : <math>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].</math><ref>L C W Dixon, D J Mills. Effect of Rounding errors on the Variable Metric Method. ''Journal of Optimization Theory and Applications'' '''80''', 1994. [http://portal.acm.org/citation.cfm?id=179711] {{Wayback|url=http://portal.acm.org/citation.cfm?id=179711 |date=20200414123234 }}</ref> 此形式只在<math>N</math>為偶數時有定義,而且其解較簡單。 另一個較複雜的形式為: : <math>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.</math><ref>{{cite web|url=http://www.it.lut.fi/ip/evo/functions/node5.html|title=Generalized Rosenbrock's function|accessdate=2008-09-16|work=|publisher=|date=|deadurl=yes|archiveurl=https://web.archive.org/web/20080926163754/http://www.it.lut.fi/ip/evo/functions/node5.html|archivedate=2008-09-26}}</ref> 可證明當<math>N=3</math>時,此形式的羅森布羅克函數只有一個最小值(位置在<math>(1, 1, 1)</math>),在 <math>4 \le N \le 7</math>時只有二個最小值,所有變數均為1時有全域最小值,而在<math>(x_1, x_2, \dots, x_N) = (-1, 1, \dots, 1)</math>附近有局部最小值。此結果是將令函數的梯度為0後求得,羅森布羅克函數的梯度仍為一個<math>x</math>的多項式,在<math>N</math>較小時,可以精確的列出多項式,<!--而且可以用[[施图姆定理]]-->再求出實根的個數,而其根限制在<math>|x_i| < 2.4</math>的範圍內<ref name="kok2009">Schalk Kok, Carl Sandrock. Locating and Characterizing the Stationary Points of the Extended Rosenbrock Function. ''Evolutionary Computation'' '''17''', 2009. [http://www.mitpressjournals.org/doi/abs/10.1162/evco.2009.17.3.437] {{Wayback|url=http://www.mitpressjournals.org/doi/abs/10.1162/evco.2009.17.3.437 |date=20190217181233 }}</ref>。若<math>N</math>較大時因為相關的係數太多,無法用以上方式進行。 ==随机函数== 有許多方式可以將羅森布羅克函數延伸到隨機(stochastic)函數,以下是一種例子:<ref>Yang X.-S. and Deb S., Engineering optimization by cuckoo searc1h, Int. J. Math. Modelling Num. Optimisation, Vol. 1, No. 4, 330-343 (2010)</ref> : <math> f(\mathbf{x}) =\sum_{i=1}^{n-1} \Big[(1-x_i)^2+100 \epsilon_i (x_{i+1}-x_i^2)^2 \Big], </math> 其中隨機變數<math>\epsilon_i (i=1,2,...,n-1) </math>服從[[連續型均勻分布|均勻分布]] Unif(0,1)。原則上,此隨機函數的全域最小值仍在(1,1,...,1),不過因為其隨機的特性,任何以[[梯度下降法]]為基礎的最佳化演算法均無法用來求得此隨機函數的最小值。 ==可適用的最佳化演算法== 經若經過適當的坐標系調整,可以在沒有梯度資訊及不建立局部近似模型的情形下(和其他不使用梯度資訊的最佳化演算法相反),用最佳化演算法求得羅森布羅克函數的最小值。以下的例子說明如何用{{link-en|適應坐標下降法|Adaptive coordinate descent}}對二維的羅森布羅克函數進行最佳化,啟始點<math>x_0=(-3,-4)</math>。在325次函數的運算後可找到最小值的位置,函數的數值為<math>10^{-10}</math>。 [[File:Rosenbrock.png|thumb|right|x300px]] ==相關條目== * {{link-en|Himmelblau函數|Himmelblau's function}} * {{link-en|Rastrigin函數|Rastrigin function}} * [[格里旺克函數]] ==參考資料== {{reflist}} ==外部連結== * [http://www.gnuplot.info/screenshots/figs/pm3d-Rosenbrock.png Rosenbrock function plot in 3D]{{Wayback|url=http://www.gnuplot.info/screenshots/figs/pm3d-Rosenbrock.png |date=20120111124119 }} * [http://demonstrations.wolfram.com/MinimizingTheRosenbrockFunction/ Minimizing the Rosenbrock Function]{{Wayback|url=http://demonstrations.wolfram.com/MinimizingTheRosenbrockFunction/ |date=20121111084629 }} by Michael Croucher, [[The Wolfram Demonstrations Project]]. * {{MathWorld |title=Rosenbrock Function |urlname=RosenbrockFunction}} [[Category:數學最佳化]]
该页面使用的模板:
Template:Cite journal
(
查看源代码
)
Template:Cite web
(
查看源代码
)
Template:Link-en
(
查看源代码
)
Template:MathWorld
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:Wayback
(
查看源代码
)
返回
羅森布羅克函數
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息