如何选择包来解决Python中的凸优化问题?

如何选择包来解决Python中的凸优化问题?,python,machine-learning,tensorflow,cvxopt,convex-optimization,Python,Machine Learning,Tensorflow,Cvxopt,Convex Optimization,我的问题定义如下: 最小∑(| | xi Xci | | ^2+λ| | ci |) s、 t cii=0 其中x为形状矩阵d*n和c是n*n,席和 ci是指分别由X和C组成的列 X在这里是已知的,基于X我们想要找到C 我现在有几个选项,我已经在tensorflow中有了这个版本,它使用了AdamOptimizer。我只是想知道,有什么办法可以更有效地解决这个问题吗?cvxpy或cvxopt会更好地解决这个问题吗 如果你们中的任何人能给我一个除tensorflow之外的任何一种方法的实现,我将不

我的问题定义如下:

最小∑(| | xi Xci | | ^2+λ| | ci |)

s、 t cii=0

其中x为形状矩阵d*n和c是n*n,席和 ci是指分别由X和C组成的列

X在这里是已知的,基于X我们想要找到C

我现在有几个选项,我已经在tensorflow中有了这个版本,它使用了
AdamOptimizer
。我只是想知道,有什么办法可以更有效地解决这个问题吗?
cvxpy
cvxopt
会更好地解决这个问题吗


如果你们中的任何人能给我一个除tensorflow之外的任何一种方法的实现,我将不胜感激。

我想,目标函数与字典学习(例如,你的X)和稀疏编码(你的ci)有关,Python中有几个很好的库

看一看字典学习。或者,您可以使用进行优化

你已经知道你的字典,所以你需要知道的是稀疏代码。我认为使用scikit学习稀疏编码器将是最简单的方法


如果你想在优化过程中拥有更大的权力,你可以自己在Theano(或Keras、千层面、TensorFlow)中实现它。

最好使用Latex重写你的方程,使其更具可读性,这样更多的人会研究你的问题。分析得好!还有一篇维基文章提到了可能的算法,其中一些已经在scikit learn中实现。如果OP希望在cvxpy中使用通用凸优化方法,套索方法应该是一个很好的起点。