Closed BatyLeo closed 1 year ago
Patch coverage: 91.22%
and project coverage change: +0.67%
:tada:
Comparison is base (
44a3055
) 84.75% compared to head (1e0d8ec
) 85.42%. Report is 3 commits behind head on main.
:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I won't have time to review this, and I probably need to take a step back to focus on my own research. It would be nice if you and @LouisBouvier could rely on each other for PR reviewing, can you bring him up to speed?
As far as custom distributions are concerned, it would be nice but we need a gradlogpdf function if memory serves me well. This is not necessarily easy to find
And I agree that Fenchel Young is messy. This implementation tried to minimize code duplication, but possibly at the expense of clarity.
As far as custom distributions are concerned, it would be nice but we need a gradlogpdf function if memory serves me well. This is not necessarily easy to find
The gradlogpdf can either be given by the user or computed with autodiff, this is already the case in the new generic PerturbedOracle
struct, but it cannot be used with FenchelYoungLoss
at the moment
The gradlogpdf can either be given by the user or computed with autodiff
Will we have a problem with nested autodiff?
Maybe to avoid random failures across Julia versions we could use StableRNGs in testing?
The gradlogpdf can either be given by the user or computed with autodiff
Will we have a problem with nested autodiff?
What do you mean by "nested autodiff" ?
Maybe to avoid random failures across Julia versions we could use StableRNGs in testing?
I'm still investigating, but it seems that even whithin the same Julia versions our tests are not deterministic. The failing test passes on my laptop about half the time
What do you mean by "nested autodiff" ?
Differentiating something with Zygote that has already been differentiated with it once. I don't think it will be the case here
Should we enable variance reduction by default ? Currently it is not.
We're gonna tag a breaking release anyway, we might as well
Can we use variance reduction also in FY loss ? We also estimate an expectation by Monte-Carlo, when we use more than one sample we could think about it ?
Since questions are popping up on the Julia forum, is this ready to go?
Since questions are popping up on the Julia forum, is this ready to go?
I think it is, Louis already reviewed it.
Maybe check the AbstractPerturbed
rrule once more ?
I trust you guys, you do the merge this time ;)
Congrats, this was huge work!
This PR reworks all the
AbstractPerturbed
related structs:AbstractPerturbed
PerturbedOracle
layer, generalizing additive/multiplicative perturbations, where the perturbation can have any form. It cannot be used with Fenchel-young lossesPerturbedOracle
with the correct distribution coincides withPerturbedAdditive
andPerturbedMultiplicative