Non-convex optimization Toolbox
===============================
This matlab toolbox propose a generic solver for proximal gradient descent in the convex or non-convex case. It is a complete reimplementation of the GIST algorithm proposed in [1] with new regularization terms such as the lp pseudo-norm with p=1/2.
When using this toolbox in your research works please cite the paper [Non-convex regularization in remote sensing](http://remi.flamary.com/biblio/tuia2016nonconvex.pdf):
```
D. Tuia, R. Flamary and M. Barlaud, "Non-convex regularization in remote sensing",
IEEE transactions Transactions on Geoscience and Remote Sensing, (to appear) 2016.
```
The code solve optimization problems of the form:
min_x f(x)+lambda g(x)
We provide solvers for solving the following data fitting terms f(x) problems:
- Least square (linear regression)
- Linear SVM with quadratic Hinge loss
- Linear logistic regression
- Calibrated Hinge loss
The regularization terms g(x) that have been implemented include:
- Lasso (l1)
- Ridge (squared l2)
- Log sum penalty (LSP) ([2],prox in [1])
- lp regularization with p=1/2 (prox in [3])
- Group lasso (l1-l2)
- Minimax concave penalty (MCP)
- Indicator function on convex (projection)
- Indicator function on simplex (projection)
New regularization terms can be easily implemented as discussed in section 3.
# Start using the toolbox
## Installation
All the functions in the toolbox a given in the folder /utils.
The unmix folder contains code and data downloaded from the website of [ Jose M. Bioucas Dias](http://www.lx.it.pt/~bioucas/publications.html).
In order to use the function we recommend to execute the following command
```Matlab
addpath(genpath('.'))
```
if you are not working in the root folder of the toolbox or replacing '.' by the location of the folder on your machine.
## Entry points
We recommend to look at the following files to see how to use the toolbox:
* demo/demo_classif.m : contains an example of 4 class linear classification problem and show how to learn different classifiers.
* demo/demo_unmix.m : show an example of linear unmixing with positivity constraint and non-convex regularization.
* demo/visu_classif.m : reproduce the example figure in the paper.
# Solving your own optimization problem
## New regularization terms
All the regularization terms (and theri proximal operators) are defined in the function [utils/get_reg_prox.m](utils/get_reg_prox.m).
If you want to add a regularization term (or a projection), you only need to add a case to the switch beginning [line 37](utils/get_reg_prox.m#L37) and define two functions:
- g(x) : R^d->R, loss function for the regularization term
- prox_g(x,lambda) : R^d->R^d, proximal operator of lambda*g(x)
For a simple example look at the implementations of the Lasso loss ([line 124](utils/get_reg_prox.m#L124)) soft thresholding ([Line 128](utils/get_reg_prox.m#L128)) and loss implementations.
note that in order to limit the number of files, the loss and proximal operators functions are all implemented as subfunctions of file [utils/get_reg_prox.m](utils/get_reg_prox.m).
## Data fitting term
You can easily change the data fitting term by providing a new loss and gradient functions to the optimization function [utils/gist_opt.m](utils/gist_opt.m).
A good starting point is by looking at the least square implementation in [utils/gist_least.m](utils/gist_least.m). Changing the data fitting term correspond to only code the loss function at [Line 63](utils/gist_least.m#L63) and the corresponding gradient function at [Line 59](utils/gist_least.m#L59).
# Contact and contributors
* [Rémi Flamary](http://remi.flamary.com/)
* [Devis Tuia](https://sites.google.com/site/devistuia/)
## Aknowledgements
We want to thank [ Jose M. Bioucas Dias](http://www.lx.it.pt/~bioucas/publications.html) for providing the unmixing dataset and functions on his website.
# References
[1] Gong, P., Zhang, C., Lu, Z., Huang, J., & Ye, J. (2013, June). A General Iterative Shrinkage and Thresholding Algorithm for Non-convex Regularized Optimization Problems. In ICML (2) (pp. 37-45).
[2] Candes, E. J., Wakin, M. B., & Boyd, S. P. (2008). Enhancing sparsity by reweighted ? 1 minimization. Journal of Fourier analysis and applications, 14(5-6), 877-905.
[3] Xu, Z., Chang, X., Xu, F., & Zhang, H. (2012). L1/2 regularization: A thresholding representation theory and a fast solver. IEEE Transactions on neural networks and learning systems, 23(7), 1013-1027.
Copyright 2016
没有合适的资源?快使用搜索试试~ 我知道了~
Matlab_Octave非凸优化工具箱_Matlab_Octave toolbox for nonconvex opt

共23个文件
m:19个
md:2个
mat:1个

0 下载量 144 浏览量
2025-09-12
11:01:12
上传
评论
收藏 467KB ZIP 举报
温馨提示
Matlab_Octave非凸优化工具箱_Matlab_Octave toolbox for nonconvex optimization.zip
资源推荐
资源详情
资源评论




























收起资源包目录




























共 23 条
- 1
资源评论


Mmnnnbb123
- 粉丝: 784
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 二维码扫描(42).zip
- 扫描或生产二维码.zip
- 二维码库(1).zip
- 该项目主要介绍了二维码扫描、闪光灯开启、本地二维码图片识别、二维码生成。分别是zxing和zbar(网格二维码)分别实现
- 生成二维码(14).zip
- 二维码扫描和生成的工具.zip
- 这是一个高效快速扫描条形码、二维码的组件,使用起来很方便,可以快速实现扫描条形码、二维码得到其中的字符数据。同时可以制作
- 基于Zxing实现一维条码及二维码识别库,优化识别速率以及扫码体验,支持自动缩放,手势缩放聚焦。.zip
- 支持二维码扫描、语音录入、Excel表格导出数据的信息记录App.zip
- 基于MLKit实现二维码,条形码识别;实现微信效果样式;.zip
- 二维码生成(13).zip
- 二维码生成(10).zip
- Excel表格通用模板:采购计划表.xls
- java生成和解析二维码.zip
- 二维码(14).zip
- 利用Java的输入输出流编写的一个生成二维码的程序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
