问题标签 [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.
optimization - SVM 和神经网络中的成本函数优化有何不同
SVM 和神经网络是非常流行的机器学习技术。但我读到一个优化函数是凸的,另一个是非凸的。
神经网络如何涉及优化非凸函数而 SVM 涉及凸优化?
julia - Julia - 复值变量的优化
我正在尝试解决一个简单的优化问题,我们想要一个复杂的值 Hermitan 矩阵,因为它是变量(主题是量子力学)
问题是,Julia/JuMP/Convex.jl 在涉及到
由于 原则上 的迹rho*My0
线是复杂的,但是我们应该确信它rho*My0
是真实的,因为 和 的rho
约束My0
。
如何处理这些问题?可能有一个简单的解决方案。在最坏的情况下,我们可能不得不拆分实部和虚部。
mathematical-optimization - 使用哪个线性优化/混合整数优化求解器?
我有一个数学模型,线性规划,有大量的决策变量(> 500K - 1M)。我可以使用哪个开源软件/库(java)来满足我的要求?
问题的复杂性相当简单,有五个约束和一个成本最小化函数,但规模很大。
如果没有什么可以解决问题,请向我推荐性能最好的求解器(开源或商业/任何语言)。
python - 将半定程序从 CVX 转换为 CVXPY
我想将以下 SDP(仅验证约束的可行性)从 CVX(MATLAB)转换为 CVXPY(Python):
下面是我的 Python 代码,
运行程序时有几个错误。1.当我打印Mblk时,它显示
回溯(最近一次通话最后):
文件“/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py”,第 2820 行,在 run_code
Out[1]: exec code_obj in self.user_global_ns, self.user_ns
文件“”,第 1 行,在
mblk
文件“/usr/lib/python2.7/dist-packages/IPython/core/displayhook.py”,第 247 行,调用中
format_dict, md_dict = self.compute_format_data(结果)
文件“/usr/lib/python2.7/dist-packages/IPython/core/displayhook.py”,第 157 行,compute_format_data
返回 self.shell.display_formatter.format(结果)
文件“/usr/lib/python2.7/dist-packages/IPython/core/formatters.py”,第 152 行,格式
数据 = 格式化程序(obj)
文件“/usr/lib/python2.7/dist-packages/IPython/core/formatters.py”,第 481 行,调用中
打印机.漂亮(obj)
文件“/usr/lib/python2.7/dist-packages/IPython/lib/pretty.py”,第 362 行,漂亮
return _default_pprint(obj, self, cycle)
_default_pprint 中的文件“/usr/lib/python2.7/dist-packages/IPython/lib/pretty.py”,第 482 行
p.text(repr(obj))
array_repr 中的文件“/usr/lib/python2.7/dist-packages/numpy/core/numeric.py”,第 1553 行
', ', “大批(”)
文件“/usr/lib/python2.7/dist-packages/numpy/core/arrayprint.py”,第 454 行,在 array2string 中
分隔符,前缀,格式化程序=格式化程序)
_array2string 中的文件“/usr/lib/python2.7/dist-packages/numpy/core/arrayprint.py”,第 256 行
'int':整数格式(数据),
文件“/usr/lib/python2.7/dist-packages/numpy/core/arrayprint.py”,第 641 行,在init
max_str_len = max(len(str(maximum.reduce(data))),
文件“/usr/local/lib/python2.7/dist-packages/cvxpy/constraints/leq_constraint.py”,第 67 行,非零
引发异常(“无法评估约束的真值。”)
例外:无法评估约束的真值。
当我踏上这条线时,
表明
Traceback(最近一次通话最后一次):文件
“.../sdp.py”,第 22 行,在
ValueError:使用序列设置数组元素。
如何解决这些问题?
machine-learning - 如何在tensorflow中实现优化功能?
minΣ(||xi-X ci||^2+ λ ||ci||),
st cii = 0,
其中 X 是形状为 d * n 的矩阵,C 是形状为 n * n 的矩阵,xi 和 ci 分别表示 X 和 C 的列。
X在这里是已知的,基于X我们想找到C。
python - 如何选择包来解决 Python 中的这种凸优化?
我的问题定义如下,
minΣ(||xi-Xci||^2+ λ||ci||),
st cii = 0,
其中 X 是形状为 d * n 的矩阵,C 是形状为 n * n 的矩阵,xi 和 ci 分别表示 X 和 C 的列。
X在这里是已知的,基于X我们想找到C。
我现在有几个选择,我已经有了 tensorflow 中的版本,它使用AdamOptimizer
. 我只是想知道,有没有什么方法可以更有效地解决这个问题?会cvxpy
或cvxopt
更好地解决这个问题吗?
如果你们中的任何人能给我一个除 tensorflow 之外的任何一种方法的实现,我将不胜感激。
matlab - YALMIP 为简单可行的 SDP 输出“不可行”
我想确定给定的 3x3 矩阵是否为半正定矩阵。为此,我在 YALMIP 中编写了以下 SDP
这个程序给了我错误“双重不可行,找到原始改进方向”。这发生在区间 (0,1] 中的任何 v 值。
鉴于这个问题是易于处理的,我直接对矩阵进行对角化,得到三个特征值是以下多项式的三个根
以数字方式计算三个根的值我看到它们三个对于 sign(a)=sign(b) 是正的(除了 a,b=+-1 附近的一个小区域),对于任何值v. 因此,SDP 应该毫无问题地运行并输出 x 的负值,而不会产生进一步的复杂性。
为了让事情变得更有趣,我使用以下矩阵运行了相同的代码
该矩阵与前一个矩阵具有相同的特征值,在这种情况下程序运行没有任何问题,确认该矩阵确实是半正定的。
我真的很好奇这个问题的性质,任何帮助将不胜感激。
编辑:我也尝试了 SDPT3 求解器,结果非常相似。事实上,程序在 +v 的情况下运行顺利,但是当我输入减号时,我得到以下错误
此外,当我对变量添加一些限制时,即运行以下命令
然后错误变成“不可行的问题”错误。
matlab - matlab中L0范数惩罚函数的图
我有兴趣L0-norm
在 matlab 中绘制惩罚函数。
事实上,我知道L0-norm
向量x的 || x ||_0,返回一个值,该值指定x中非零元素的总数。换句话说,|| x ||_0 = #(i | xi !=0)。
例如,对于 x 的 L1 范数,它返回 x中元素的绝对值之和。绘制 L_1 范数惩罚函数的 matlab 代码是:
但是现在 L_0 范数呢?
任何帮助将不胜感激!
gradient-descent - Nesterov 在二次和强凸情况之间的界限?
是否有一些简单和强凸函数的例子,其中 Nesterov 加速梯度法的收敛界优于 Nesterov 强凸情况下的界,(sqrt(1 - 1 / sqrt(k)))
而比 Nesterov 二次界更差(1 - 1/ sqrt(k))
。
其中,K = L/m
表示条件比
python - 在 CVXPY 中动态生成约束列表
我正在使用 CVXPY 研究 Python 中的最小方差优化问题,该问题接受以下形式的约束
形式w
为
为了更有效地运行它,我想根据我将存储我的设置的文件动态地创建我的约束列表。读入和创建约束列表工作正常,并使用
表明
但看看它包含的实际条目
而我的是这种格式
用于读取数据的代码是
有谁知道如何做到这一点?问题是在可以使用之前以 CVXPY 的变量格式获取 w。