大规模几乎线性优化

计算科学 优化
2021-12-10 15:51:43

我目前正在尝试最小化以下功能:

minx,y,sFxa22+SFyb22+λmax(x,y)1,
x>0,y>0.
这里都是线性算子。是离散傅里叶变换,是“傅里叶域中移位是元素方面的。FSFSs(Sf)k=fke2πiuksmax(x,y)

所以问题基本上是正则化的最小二乘,并且应该有望导致稀疏解在大约相同的位置具有非零元素(直到显式移位)。x,ys

请注意,它几乎是线性的,但由于正则化器的不连续性和对非线性依赖性。对于固定,我使用 LBFGS 方法得到了很好的结果(接近真实值)。当针对某个范围内的每个分别进行优化时,我看到真实值附近有一个明显的最小值。但是当我将变量包含在优化中时,它的值与初始值基本没有变化,无论它接近还是远离真相。ssx,yss

我猜问题是(的)函数在整个范围内都有许多局部最小值。如何正确解决问题,或者在哪里阅读类似问题?我尝试过的 scipy 中的其他常见优化算法没有成功。s

1个回答

这是尝试的一种可能性:

我认为您可以通过交替将这个问题分解为凸和非凸问题。可以先优化 保持不变。xy

minx,yFxa22+λmax(x,y)1,
S

在下一阶段,我们可以求解 这次保持所有其余部分不变。也许通过直接方法更容易解决第二个方程。S

minsSFyb22

从某些初始化开始,我们可以交替使用两种解决方案,直到达到所需的解决方案。其他拆分也是可能的并且可能效果更好,例如首先求解等。x