问题标签 [convex-optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4428 浏览

convex-optimization - 高效的免费/开源 SOCP(二阶锥编程)求解器

我正在寻找关于评估速度的二阶锥编程求解器的推荐(或比较)。求解器必须免费用于非营利用途或开源。

我对环境相当开放:独立的解决方案、库、Matlab、Python、R 等都是可以接受的。

我的问题在约束方面具有显着的稀疏性,我相信优秀的求解器可以利用这些约束来加快计算速度。

0 投票
3 回答
2240 浏览

r - 从 R 的 optim 函数中获取更多详细信息

我对 optim 函数不是很熟悉,我想从它的结果中获取这些信息:a)实现结果需要多少次迭代?b) 绘制部分解的序列,即每次迭代结束时得到的解。

到目前为止,我的代码如下所示:

如何改进它以获取更多信息?

提前致谢

0 投票
1 回答
202 浏览

svm - LIBSVM:多变量优化

LIBSVM 可以用 2 个要优化的变量来解决优化问题的公式吗?

LIBSVM 库似乎正在解决标准公式,如何解决与标准形式不同的其他凸优化问题(http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf eqn 1) ?

0 投票
1 回答
627 浏览

function - 如何找出函数何时是强凸的?

我的教授说(我可能误解了)如果我有一个函数,并且我取二阶导数,并且以某种方式得到 0,那么它就不是强凸的!

示例 x^2

强凸,因为它的二阶导数 = 2

示例 x^4

不是强凸的,因为二阶导数 2*x^2,当 x=0 时,方程为 0

现在 1/2*x^2+x^4 呢?

在二阶导数之后,我得到 1+12*x^2,如果我设置 x=0,我得到 1,如果我设置 x=0,它不是 0,我不知道是 ters 反正这个表达式可能是 0,是不是意味着它是严重凸的???

0 投票
0 回答
58 浏览

convex-optimization - 梯度下降的步长选择,无需访问函数评估

当您只能访问梯度评估而不能访问函数评估时,有没有办法选择步长来进行梯度下降?

我知道要优化的函数是凸函数,给定一个点 x,我可以访问 f'(x),但不能访问 f(x)。在这种情况下,除了梯度下降的固定步长规则之外,我还能做任何事情吗?

0 投票
1 回答
75 浏览

computational-geometry - 两个多边形/多面体的最佳近似对

R^3 中有两个多面体 A 和 B,有空交集。多面体由它的面定义,即它的超空间只有不等式,顶点是未知的。问题是找到 A 中的点 a 和 B 中的 b 使得 ||ab|| = d(A,B) -- A 和 B 之间的距离。我们也可以为 R^2 或 R^d 为 d>3 制定此问题。解决这个问题的方法是什么。这个问题有一些应用吗?

0 投票
1 回答
1221 浏览

machine-learning - 小批量梯度下降和梯度下降之间是否存在固定关系

对于凸优化,例如逻辑回归。
例如,我有 100 个训练样本。在mini batch gradient decent我将批量大小设置为 10。
所以经过 10 次mini batch gradient decent更新。我可以通过一次gradient decent更新获得相同的结果吗?

对于非凸优化,如神经网络。
我知道mini batch gradient decent有时可以避免一些局部最优。但是它们之间有没有固定的关系。

0 投票
1 回答
403 浏览

python - CVXOPT 二次编程接口

为 CVXOPT 提供的 QP 求解器解决了以下形式的问题(参见http://cvxopt.org/userguide/coneprog.html#quadratic-programming):

这很好用,但是当想要通过两侧的不等式解决问题约束时会有点尴尬:

我可以将第二个问题重新定义为第一个问题,方法是将维度数加倍并要求new_x将其old_x堆叠在自身之上:

我想我可以通过为A. h1然后,我可以将和h2不等式编码到 中,方法new_G * new_x <= new_h是设置new_hh1堆叠h2new_G成为对角矩阵,其中n连续1s 后跟对角线上的n连续-1s。

无论如何,以上内容非常笨拙,它使我的问题的维度增加了一倍,甚至可能不起作用。

是否有更好的方式来表达 CVXOPT 中的第二个问题?

0 投票
0 回答
1074 浏览

optimization - 凸QCQP的实用求解器?

我正在使用凸 QCQP,如下所示:

所以这个问题除了目标之外只有一个二次约束,并且一些变量是非负的。两种二次形式的矩阵都是单位矩阵,因此是正定的。

我可以将二次约束移至目标,但它必须具有负号,因此问题将是非凸的:

问题的大小可以达到 10000 个线性约束,具有 100 个非负变量和几乎相同数量的其他变量。

该问题也可以重写为 MIQP,因为 z_i 可以是二进制的,并且 z'Iz=n 可以删除。到目前为止,我一直在通过 AIMMS 为 MIQP 使用 CPLEX,但这个问题的速度非常慢。将问题的 QCQP 版本与 CPLEX、MINOS、SNOPT 和 CONOPT 一起使用是没有希望的,因为它们要么找不到解决方案,要么解决方案甚至不接近我先验知道的近似值。

现在我有三个问题:

  1. 您是否知道任何方法/技术可以在不使用 MIQP 的情况下摆脱这种形式的二次约束?

  2. 这个 QCQP 有没有“好的”求解器?好的,我的意思是一个在合理的时间内有效地找到全局最优解的求解器。

  3. 你认为使用 SDP 松弛可以解决这个问题吗?我实际上从未解决过 SDP 问题,所以我不知道 SDP 版本的效率如何。有什么建议吗?

谢谢。

0 投票
1 回答
294 浏览

python - CVXPY 上的内核匹配追求

我正在编写内核匹配追求的代码。在那,我已经习惯了 cvxpy 进行凸优化。我必须最小化基于这篇论文的以下目标:http: //ieeexplore.ieee.org/xpl/articleDetails.jsp? arnumber=6815769 ,代码如下:

但是,代码不起作用并抛出错误:不能将两个非常数相乘。我认为这是在“epirk”中将三个项相乘的问题。但是,我对此没有任何解决方案。请帮忙。