https://github.com/pylat/adaptive-bilevel-optimization
A Julia package for adaptive proximal gradient for convex bilevel optimization
https://github.com/pylat/adaptive-bilevel-optimization
adaptive-learning-rate adaptive-proximal-algorithms bilevel-optimization convex-optimization machine-learning optimization-algorithms
Last synced: 4 months ago
JSON representation
A Julia package for adaptive proximal gradient for convex bilevel optimization
- Host: GitHub
- URL: https://github.com/pylat/adaptive-bilevel-optimization
- Owner: pylat
- Created: 2023-04-26T12:19:03.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-06-15T14:06:22.000Z (almost 3 years ago)
- Last Synced: 2025-06-18T02:40:06.148Z (12 months ago)
- Topics: adaptive-learning-rate, adaptive-proximal-algorithms, bilevel-optimization, convex-optimization, machine-learning, optimization-algorithms
- Language: Julia
- Homepage:
- Size: 26.4 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Adaptive Proximal Algorithms for Convex Simple Bilevel optimization
This repository contains Julia code for the paper
[AdaBiM: An essentially adaptive proximal gradient method for convex simple bilevel optimization](https://arxiv.org/abs/2305.03559).
The problems that can be tackled are of the form
$$
\begin{aligned}
\text{minimize} \quad & f^1(x) + g^1(x) \\
\text{subject to} \quad & x \in \arg\min_{w} f^2(w) + g^2(w)
\end{aligned}
$$
where $f^1,f^2$ are locally Lipschitz differentiable and $g^1,g^2$ are (possibly) nonsmooth prox-friendly functions.
Algorithms are implemented [here](./adaptive_bilevel_algorithms.jl).
You can download the datasets required in some of the experiments by running:
```
julia --project=. download_datasets.jl
```
Numerical simulations for a few different problems are contained in subfolders.
For example, the linear inverse problem with the $\ell_1$ norm as the upper-level cost function can be found [here](https://github.com/pylat/adaptive-proximal-algorithms-bilevel-optimization/tree/master/experiments/logregNormL1). The `runme.jl` file includes the associated simulations. Executing `main()` will generate the plots in the same subfolder.