Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Robustified Distribution Outputs #492

Merged
merged 7 commits into from
Mar 30, 2023
Merged

Robustified Distribution Outputs #492

merged 7 commits into from
Mar 30, 2023

Conversation

kdgutier
Copy link
Collaborator

This pull request contains partial work towards robustifying the Distribution outputs of NeuralForecast models.

Before this PR, Base classes performed self._normalization and self._inv_normalization before sending the outsample_y signal to the distribution losses. This processing had bad implications for the Poisson distribution because the self._inv_normalization methods induce in edge cases negative values due to round errors, in addition to changing the signal type from integer to real.

The PR improves Poisson with the following:

  • Relaxes the support constraints for the Poisson distribution to accept real-valued positive signals (almost integers).
  • Changes BaseWindows.train_step and BaseWindows.validation_step to use original_outsample_y in the DistributionLoss rather than the processed outsample_y.
  • Changes TFT.train_step and BaseWindows.validation_step to use original_outsample_y in the DistributionLoss rather than the processed outsample_y.

The PR improves GMM/PMM with the following:

  • Added torch.logsumexp into GMM/PMM.
  • Improved documentation of GMM/PMM.
  • Added possibility to model batch and horizon correlations on GMM/PMM.
  • Added mean ratesPMM regularization.

I document improvements in the HierarchicalNetworks.ipynb notebook that reaches SoTA CRPS with GMM/PMM, and performs reasonably well with Poisson.

There is missing work on the original_outsample_y signal for the BaseRecurrent and BaseMultivariate classes.

@kdgutier kdgutier requested a review from cchallu March 30, 2023 00:15
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@kdgutier kdgutier self-assigned this Mar 30, 2023
@kdgutier kdgutier linked an issue Mar 30, 2023 that may be closed by this pull request
@kdgutier kdgutier linked an issue Mar 30, 2023 that may be closed by this pull request
@cchallu cchallu merged commit e0011be into main Mar 30, 2023
@cchallu cchallu deleted the robustified_Poisson branch March 30, 2023 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

README.md links 404 error Exogenous variables normalization
2 participants