|
|
1
3
这里的问题是你的目标函数是不可微的。SciPy默认为BFGS优化,它要求目标函数的一阶导数存在。 我可以想出三种主要的方法来解决这个问题:使用无导数优化,使用目标函数的可微近似,或者将绝对值转化为约束。
目标函数的一个可微逼近是容易的,并且提供了更好的收敛性,但代价是一些错误。例如,替换
results in convergence
到
至于转换绝对值,你的问题几乎是一个标准的线性规划问题,但是目标函数中有绝对值。通过引入额外的变量,
it's possible to convert an absolute value into two new linear constraints
. 我们的想法是取代
这样做可以让你用一个标准的线性规划求解器来解决你的问题
除此之外,对于这种形式的优化问题,可能还有其他算法。我试着用谷歌搜索“l1优化”,就像“最小二乘优化”一样,但结果却是最小化了解向量的l1范数,这在这种情况下是错误的向量。 |
|
|
unfolx · numpy数组不等式的执行时间 1 年前 |
|
|
mchaudh4 · 用numpy表示三对角矩阵 1 年前 |
|
|
Geremia · 2D NumPy数组+1D数组? 1 年前 |
|
|
LMC · Numpy数组布尔索引以获取包含元素 1 年前 |
|
|
HJA24 · 根据条件用值正向填充Numpy矩阵/掩码 1 年前 |
|
|
Amarth Gûl · 找到一组向量的最近收敛点 1 年前 |
|
|
Mr. W · numpy.divide是函数、类还是其他什么? 1 年前 |
|
|
Mr. W · 为什么numpy.array在编辑内部数据时如此缓慢? 1 年前 |