JuliaManifolds / Manopt.jl

🏔️Manopt. jl – Optimization on Manifolds in Julia
http://manoptjl.org
Other
314 stars 40 forks source link

Absolute and relative constant and decreasing stepsizes #287

Closed hajg-ijk closed 1 year ago

hajg-ijk commented 1 year ago

ConstantStepsize and DecreasingStepsize now accept an additional symbolic argument that can be either :relative (default value) or :absolute. The default option leaves the behavior of both stepsizes unchanged, whereas using :absolute triggers the division of the stepsize length by the norm of the (sub)gradient at the current iterate. The naming of the two symbolic options may seem counterintuitive at first, but stepsizes are used in retractions where they show up as a multiplicative factor for the (sub)gradient at the current iterate. This means that the actual step computed by the algorithm with an :absolute stepsize won't be scaled by the length of the (sub)gradient but will only go in its direction, whence the name.

Additionally, ConstantStepsize and DecreasingStepsize have also been implemented for subgradient-based objectives.

codecov[bot] commented 1 year ago

Codecov Report

Merging #287 (23cbe13) into master (0ab53d6) will increase coverage by 0.00%. The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #287   +/-   ##
=======================================
  Coverage   99.73%   99.73%           
=======================================
  Files          76       76           
  Lines        6866     6892   +26     
=======================================
+ Hits         6848     6874   +26     
  Misses         18       18           
Files Changed Coverage Δ
src/plans/stepsize.jl 96.52% <100.00%> (+0.15%) :arrow_up:
src/solvers/subgradient.jl 100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more