Add an upper bound of the operator norm for limited-memory qn#395
Add an upper bound of the operator norm for limited-memory qn#395dpo merged 6 commits intoJuliaSmoothOptimizers:mainfrom
Conversation
|
@dpo, You can get the bound by doing the following: define Then, Therefore, and therefore we can ignore the |
|
Great! Thank you. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #395 +/- ##
==========================================
+ Coverage 95.00% 95.35% +0.35%
==========================================
Files 17 20 +3
Lines 1100 1140 +40
==========================================
+ Hits 1045 1087 +42
+ Misses 55 53 -2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
If you approve, please merge @dpo. |
src/lbfgs.jl
Outdated
| if !op.inverse | ||
| data.opnorm_upper_bound -= norm(data.b[insert])^2 | ||
| data.b[insert] .= y ./ sqrt(ys) | ||
| data.opnorm_upper_bound += norm(data.b[insert])^2 |
There was a problem hiding this comment.
@MaxenceGollier I thought that we should store those norms instead of recomputing them. That should be an easy change.
There was a problem hiding this comment.
In RegularizedOptimization, I computed it like this:
@inbounds for i = 1:data.mem
bound += norm(data.b[i], 2)^2
end
which is
There was a problem hiding this comment.
It would be
|
Can we add a release ? Then I can update JuliaSmoothOptimizers/RegularizedOptimization.jl#275. |
@dpo,
Following JuliaSmoothOptimizers/RegularizedOptimization.jl#275 (comment).