POT icon indicating copy to clipboard operation
POT copied to clipboard

[WIP] Restructure unbalanced OT module

Open 6Ulm opened this issue 1 year ago • 1 comments

Types of changes

This PR aims to improve the current module unbalanced.py on two aspects:

  • The current module contains 3 seperate groups of unbalanced OT solvers: Sinkhorn, Majorization-Minimization and LBFGS-B. It is preferable to break these groups into seperate files/modules for easier maintenance.
  • In the current Sinkhorn solver, the reference measure used in the regulazation is always fixed as $a b^T$ (for reg_type=kl) or one-matrix (for reg_type=entropy). With trivial modification, we can allow for any nonnegative reference measure. This will be useful for the ot.solve, since we consider a very generic unbalanced OT problem.

Major changes:

  • The reg_type argument is removed from Sinkhorn solver and replace by the reference c in the regularization term (c = ab^T by default)
  • Add ot.unbalanced.lbfgsb_unbalanced2, which returns the UOT loss. This is consistent with almost all solvers in POT.
  • Remove option "entropy" for argument reg_div in lbfgsb_unbalanced.

Motivation and context / Related issue

How has this been tested (if it applies)

PR checklist

  • [x] I have read the CONTRIBUTING document.
  • [x] The documentation is up-to-date with the changes I made (check build artifacts).
  • [x] All tests passed, and additional code has been covered with new tests.
  • [ ] I have added the PR and Issue fix to the RELEASES.md file.

6Ulm avatar Jul 16 '24 15:07 6Ulm

Codecov Report

Attention: Patch coverage is 99.30556% with 4 lines in your changes missing coverage. Please review.

Project coverage is 96.88%. Comparing base (bd56809) to head (ad2e6f8). Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #658      +/-   ##
==========================================
+ Coverage   96.85%   96.88%   +0.03%     
==========================================
  Files          88       93       +5     
  Lines       17910    18166     +256     
==========================================
+ Hits        17346    17600     +254     
- Misses        564      566       +2     

codecov[bot] avatar Jul 17 '24 12:07 codecov[bot]