加速bregman近端梯度法

accbpg的Python项目详细描述


加速Brgman近端梯度法

求解形式相对光滑凸优化问题的加速一阶算法

minimize { f(x) + P(x) | x in C }

使用参考函数h(x),其中

  • h(x)在c上是凸的,本质上是光滑的
  • f(x)是凸可微的,l-光滑相对于h(x),即f(x)-l*h(x)是凸的
  • p(x)是凸和闭的(下半连续)
  • c是闭凸集

###在[hrx2018](https://arxiv.org/abs/1808.03045)中实现的算法

    线搜索 LI> BPGYLS(Brgman近端梯度)法
  • abpg(加速bpg)方法
  • abpg expo(带指数自适应的abpg)
  • ABPG增益(带增益自适应的ABPG)
  • abda(加速bregman双平均)方法

##安装

从github克隆或分叉。或者从pypi安装:

pip install accbpg

##用法

import accbpg

# generate a random instance of D-optimal design problem f, h, L, x0 = accbpg.D_opt_design(80, 200)

# solve the problem instance using BPG with line search x1, F1, G1 = accbpg.BPG_LS(f, h, L, x0, maxitrs=1000, verskip=100)

# solve it again using ABPG_gain with gamma=2 x2, F2, G2, D2 = accbpg.ABPG_gain(f, h, L, 2, x0, maxitrs=1000, verbskip=100)

通过可视化比较这两种方法

import matplotlib.pyplot as plt Fmin = min(F1.min(), F2.min()) plt.semilogy(range(len(F1)), F1-Fmin, range(len(F2)), F2-Fmin)

##[hrx2018](https://arxiv.org/abs/1808.03045)中的示例

d-最优实验设计

import accbpg.ex_D_opt

带kl散度的非负回归

import accbpg.ex_KL_regr

poisson线性反问题

import accbpg.ex_PoissonL1 import accbpg.ex_PoissonL2

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

推荐PyPI第三方库


热门话题
java如何在Spring工具套件中找到Spring版本?   是否有API将vSphere JSON结果映射到适当的Java对象?   java在spring WebSocket中有请求作用域吗?(websocket scop==会话范围)   java我想从list1中删除list2元素并返回list1   java使用JPA/Hibernate为单个集合使用多个@Where   JSF2.0中混合Ajax和完整请求的java   java变量miles可能尚未初始化   java使用文件路径StringArray构建父子数组   java数据源在struts中不起作用   java从另一个类访问txtField值   具有相同主键和外键双向关系的java Hibernate实体OneToOne   java Android广播接收器:上下文问题   java我可以将实体指定为数据存储属性以实现类似joinlike的功能吗?   java如何排除hadoop核心依赖项   java是否可以确定用户是否实时单击了任何通知(不仅仅是来自我的应用程序)?   java在单独的类中访问私有变量?   java如何使用Spring@Value注入映射