加速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,哪一种更好地抛出异常或提前检查错误   java从非碎片类调用Fragment的方法   关于使用java rxtx控制led的串口   java我想从给定的字符串中打印数字1和数字0我怎么能?   java如何从控制器更改JSP中元素的类?   java布尔逻辑应该最早完成吗?   使用Proguard对Jar进行模糊处理后使用launch4j的java   java如何获取一行中的列数<td>或<th>?   java自定义Jersey参数解组   Android Studio中EditText与其Id的java关系?   java Insert语句到Derby数据库中   在Java中将多个对象添加到列表时遇到问题   用于数字的java正则表达式   在Codenameone中使用Double时出现java错误   java如何使用递归搜索2d数组中的元素   java如何从循环中的EditText中提取文本,并将其连接到单个TextView中查看?   使用RSA进行模块乘法的加密会导致Java卡出错   java使用AlarmManager每天在特定时间内轮询用户位置