在数学
最优化中,Rosenbrock函数是一个用来测试最优化
算法性能的非凸函数,由Howard Harry Rosenbrock在1960年提出。也称为Rosenbrock山谷或Rosenbrock香蕉函数,也简称为香蕉函数。
在数学
最优化中,Rosenbrock函数是一个用来测试最优化
算法性能的非凸函数,由Howard Harry Rosenbrock在1960年提出。也称为Rosenbrock山谷或Rosenbrock香蕉函数,也简称为香蕉函数。
Rosenbrock函数的每个
等高线大致呈
抛物线形,其全域最小值也位在抛物线形的山谷中(香蕉型山谷)。很容易找到这个山谷,但由于山谷内的值变化不大,要找到全域的最小值相当困难。其全域最小值位于 (x,y)=(1,1)点,数值为f(x,y)=0。有时第二项的系数不同,但不会影响全域最小值的位置。
可证明当N=3时,此形式的Rosenbrock函数只有一个最小值(位置在 (1,1,1)),在 时只有二个最小值,所有变量均为1时有全域最小值,而在 附近有局部最小值。此结果是将令函数的梯度为0后求得,Rosenbrock函数的梯度仍为一个x的多项式,在N较小时,可以精确的列出多项式,再求出实根的个数,而其根限制在 的范围内。若N较大时因为相关的系数太多,无法用以上方式进行。
其中随机变量 服从
均匀分布Unif(0,1)。原则上,此随机函数的全域最小值仍在(1,1,...,1),不过因为其随机的特性,任何以
梯度下降法为基础的最优化算法均无法用来求得此随机函数的最小值。
经若经过适当的坐标系调整,可以在没有梯度信息及不创建局部近似模型的情形下(和其他不使用梯度信息的最优化算法相反),用最优化算法求得Rosenbrock函数的最小值。