低阶诱导范数优化的python实现
lrip的Python项目详细描述
lripy
用低阶诱导范数和非凸douglas-rachford进行低阶优化的python代码。
目的:
低秩秩诱导范数和非凸近端分裂算法试图找到具有凸损失函数的最小秩问题的精确秩/CARNTIALITI- R解,即避免正则化启发。LRIPY为低级诱导Frobenius和谱范数以及它们的EPI图投影和非凸计数器部分提供了近端映射的Python实现。
文献:
低阶诱导范数:
- Rank Reduction with Convex Constraints
- Low-rank Inducing Norms with Optimality Interpretations
- Low-rank Optimization with Convex Constraints
- The Use of the r* Heuristic in Covariance Completion Problems
- On optimal low-rank approximation of non-negative matirces
非凸反零件:
安装
安装包的最简单方法是运行pip install lripy
。要从源安装包,请在主文件夹中运行python setup.py install
。
文档
在下文中,它认为
- 对于低阶诱导frobenius范数:p=2
- 对于低阶诱导谱范数:p='inf'
示例
“example”文件夹中有两个示例:
- 精确矩阵完成
- Hankel约束
优化
LRIPY包含了“精确矩阵完备”和“低秩Hankel近似”的Douglas Rachford分裂实现,既有低秩诱导范数,也有非凸Douglas Rachford分裂。很容易为其他约束修改这些函数!
精确矩阵完成
设n是一个矩阵,index是一个大小相同的二元矩阵,其中的一个表示已知的条目n。我们试图找到秩r补全m:
# Import the Douglas-Rachford Completion function:
from lripy import drcomplete
# Low-rank inducing norms with Douglas-Rachford splitting:
M = drcomplete(N,Index,r,p)[0]
# Non-convex Douglas-Rachford splitting:
M = drcomplete(N,Index,r,p,solver = 'NDR')[0]
< H4> Low rank Hankel近似< /H4>设h为矩阵。我们试图找到一个能使Frobenius范数最小化的Hankel近似M。
# Import the Douglas-Rachford Hankel Approximation function:
from lripy import drhankelapprox
# Low-rank inducing norms with Douglas-Rachford splitting:
M = drhankelapprox(H,r)[0]
# Non-convex Douglas-Rachford splitting:
M = drhankelapprox(H,r,solver = 'NDR')[0]
近端映射< EH3>
LRIPY为低阶诱导Frobenius和谱范数以及它们的EPI图投影和非凸计数器部分提供了近邻映射的Python实现。
低阶诱导谱和frobenius范数:
具有参数r和缩放因子Gamma:的Z的低秩诱导范数的近端映射X = proxnormrast(Z,r,p,gamma)[0]
平方低秩诱导谱和frobenius范数:
具有参数r和缩放因子Gamma:的平方低秩诱导范数的近端映射X = proxnormrast_square(Z,r,p,gamma)[0]
低阶诱导范数在epi图上的投影:
(z,zv)在带参数r和标度因子gamma的低秩诱导范数epi图上的投影
X,xv = projrast(Z,zv,r,p,gamma)[0:2]
H4> Frobenius和谱范数的非凸邻映射:参数Z的非凸近点映射与参数因子Gamma:
X = proxnonconv(Z,r,p,gamma)
H4>平方Frobenius和谱范数的非凸邻映射:
参数r和标度因子γ的平方范数的非凸近点映射
X = proxnonconv_square(Z,r,p,gamma)