为什么我们希望目标函数是凸函数?
机器算法验证
机器学习
2022-03-18 06:59:37
1个回答
首先,正如@whuber 提到的,很多人都参与了非凸优化。话虽如此,您对“只要局部最小值是全局最小值”的定义相当……松懈。参见例如 Easom 函数 (. 如果这是您关心的问题,它有一个最低要求,但如果您远离它,您就会......有人配备。标准的基于梯度的方法,如BFGS(BFGS在 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!
还有其他更糟糕的表面需要优化。例如,请参阅Michalewicz或Schwefel函数,其中您可能有多个局部最小值和/或平坦区域。
这种平整度是一个真正的问题。例如,在广义和标准线性混合效应模型中,随着估计参数数量的增加,对数似然函数,即使在分析出残差方差和固定效应参数后仍然可以非常平坦。这将导致模型收敛于参数空间的边界或简单地收敛到次优解决方案(这实际上是包括我自己在内的一些人对 LME 的“保持最大”想法持怀疑态度的原因之一)。因此,“多少凸”您的目标函数可能会对您的模型以及您以后的推理产生重大影响。
其它你可能感兴趣的问题
