为什么我们希望目标函数是凸函数?

机器算法验证 机器学习
2022-03-18 06:59:37

我知道凸函数是一个很好的对象函数,因为局部最小值是全局最小值。但是,也有非凸函数也具有此属性。例如,在此处输入图像描述

该图显示了具有上述属性的非凸函数。

在我看来,只要局部最小值是全局最小值,我们应该能够使用梯度下降(或类似方法)来找到全局最小值。所以,我的问题是,为什么凸函数得到更多关注,与其他同样具有上述属性的函数相比?谢谢!

[更新] 感谢您的许多精彩评论和回答。我自学了优化的概念,我承认我的许多措辞都不准确。对于凸优化的更实际方面,您有任何建议的参考资料吗?博伊德的书对我来说可能太紧张了。

1个回答

首先,正如@whuber 提到的,很多人都参与了非凸优化。话虽如此,您对“只要局部最小值是全局最小值”的定义相当……松懈。参见例如 Easom 函数 (f(x,y)=cos(x)cos(y)exp((xπ)2(yπ)2). 如果这是您关心的问题,它有一个最低要求,但如果您远离它,您就会......有人配备。标准的基于梯度的方法,如BFGSBFGS在 R 中optim)和共轭梯度CG在 R 中optim)将受到很大影响。您必须对您的答案进行“有根据的猜测”(例如,模拟退火-SANN在 R's 中optim),这是一个计算量非常大的例程。在此处输入图像描述

在 R 中:

easom <- function(x){ 
  -cos(x[1]) * cos(x[2]) * exp( -(x[1] -pi)^2 - (x[2] - pi)^2)
}
optim(easom,par=c(0,0), method='BFGS')$par # 1.664149e-06 1.664149e-06 # Junk
optim(easom,par=c(0,0), method='CG')$par # 0 0 # Insulting Junk
optim(easom,par=c(0,0), method='SANN')$par # 3.382556 2.052309 # Some success!

还有其他更糟糕的表面需要优化。例如,请参阅MichalewiczSchwefel函数,其中您可能有多个局部最小值和/或平坦区域。

这种平整度是一个真正的问题。例如,在广义和标准线性混合效应模型中,随着估计参数数量的增加,对数似然函数,即使在分析出残差方差和固定效应参数后仍然可以非常平坦。这将导致模型收敛于参数空间的边界或简单地收敛到次优解决方案(这实际上是包括我自己在内的一些人对 LME 的“保持最大”想法持怀疑态度的原因之一)。因此,“多少凸”您的目标函数可能会对您的模型以及您以后的推理产生重大影响。