低阶诱导范数优化的python实现

lrip的Python项目详细描述


lripy

用低阶诱导范数和非凸douglas-rachford进行低阶优化的python代码。

目的:

低秩秩诱导范数和非凸近端分裂算法试图找到具有凸损失函数的最小秩问题的精确秩/CARNTIALITI- R解,即避免正则化启发。LRIPY为低级诱导Frobenius和谱范数以及它们的EPI图投影和非凸计数器部分提供了近端映射的Python实现。

文献:

低阶诱导范数:

非凸反零件:

安装

安装包的最简单方法是运行pip install lripy。要从源安装包,请在主文件夹中运行python setup.py install

文档

在下文中,它认为

  • 对于低阶诱导frobenius范数:p=2
  • 对于低阶诱导谱范数:p='inf'

示例

“example”文件夹中有两个示例:

  1. 精确矩阵完成
  2. 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)
    

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
java Android在用户按下硬键时如何从选项卡式片段中获取数据?   java Android改造循环请求不执行回调   参考解释Java中的链表数据结构   java如何查找@EntityListeners调用期间更改的字段   当我试图通过socket流发送/接收jxrpc时出现java“socket关闭”错误   java Javafx组合框自动完成返回错误   java引用集合上带有@DBRef注释的文档   Bouncy Castle在C中没有从Java解密DoFinal#   PHP中未签名的右移/Zerofill Right Shift/>(Java/JavaScript等效)   为什么apache java http库不能处理ContentEncoding:none的站点?   java如何在其他页面的文本视图中显示logcat?   java可以有效地更改字符串中的EOL字符   java向Spring Boot应用程序添加页面(非常基本)   java Android Studio Gradle项目“无法启动守护进程”   仅在第一行使用XOR JAVA进行加密解密   intellij idea Java层分离模块之间的循环依赖关系