我想将某个功能极端化关于参数, 在约束下. 为了实现这一点,我考虑了拉格朗日函数并寻找一个静止点。
在我的特定情况下,这相当于寻找鞍点,这对我来说并不方便,因为我必须执行几次极值化才能找到满意的点(例如通过使用 Uzawa 的算法)。我宁愿寻找一个最小值或最大值,我可以通过单个梯度下降/BFGS 运行/无论如何达到。
所以,我想知道:有什么办法可以“改写”我的优化问题,使拉格朗日的驻点是一个极值,或者在某些情况下,鞍点是我希望的最好的?
我想将某个功能极端化关于参数, 在约束下. 为了实现这一点,我考虑了拉格朗日函数并寻找一个静止点。
在我的特定情况下,这相当于寻找鞍点,这对我来说并不方便,因为我必须执行几次极值化才能找到满意的点(例如通过使用 Uzawa 的算法)。我宁愿寻找一个最小值或最大值,我可以通过单个梯度下降/BFGS 运行/无论如何达到。
所以,我想知道:有什么办法可以“改写”我的优化问题,使拉格朗日的驻点是一个极值,或者在某些情况下,鞍点是我希望的最好的?
根据拉格朗日的定义,原始约束问题的极值是拉格朗日的驻点。这就是拉格朗日量的定义。
您正在寻找的是“惩罚方法”或“增强拉格朗日方法”。本质上,它为目标函数或拉格朗日函数添加了一些东西,以确保问题的解决方案确实是增广函数的最小值。
与所有事物优化一样,我发现 Nocedal 和 Wright 的书(“数值优化”)是很好的洞察力来源。它对惩罚方法和增强拉格朗日方法有很长的部分,以及如何选择要添加的术语。