This is the accompanying repository for the paper:
Wirth, E., Besançon, M., and Pokutta, S. (2023). The Pivoting Framework: Frank-Wolfe Algorithms with Active Set Size Control.
The repository is a standard Julia package, open Julia in the repository and run:
import Pkg
Pkg.activate(".")
Pkg.update()
import PivotingFrankWolfeSee the Julia documentation for more details on working with the Julia package manager.
Due to file sizes, the largest experiment datasets are not added to the repository. They can be found at the following location and added in the corresponding folders:
- Logistic regression: the validation set used in the paper is already present. The training set is available on the UCI ML repository and can be added to
experiments/GISETTE.
The experiments are scripts are run with:
julia --project experiments/run_logreg.jl
julia --project experiments/run_birkhoff.jl
julia --project experiments/run_signal_recovery.jlThis will populate the experiments/results folder with the result JSON files.
One can then run:
julia --project experiments/plot_results.jlwhich produces the sparsity and trajectory plots for each experiment in experiments/plots.