-
Notifications
You must be signed in to change notification settings - Fork 528
Smooth and Sparse OT #50
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
Conversation
README.md
Outdated
@@ -15,7 +15,8 @@ It provides the following solvers: | |||
|
|||
* OT Network Flow solver for the linear program/ Earth Movers Distance [1]. | |||
* Entropic regularization OT solver with Sinkhorn Knopp Algorithm [2] and stabilized version [9][10] with optional GPU implementation (requires cudamat). | |||
* Non regularized Wasserstein barycenters [16] with LP solver. | |||
* Smooth optimal transport solvers (dual and semi-dual) for KL and squared L2 regularization [17]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
regularization's'
examples/plot_OT_1D_smooth.py
Outdated
import matplotlib.pylab as pl | ||
import ot | ||
import ot.plot | ||
from ot.datasets import get_1D_gauss as gauss |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make_1D_gauss now
""" | ||
self.gamma = gamma | ||
|
||
def delta_Omega(X): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we keep those functions here ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All the ones that raise a 'not implemented' exception
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is proper base class definition I believe, it provide aclean base implementation with proper Errors in can of use. I will complete the documentation so that it is clear for a user that this class should not be used in practice.
Thanks a lot for the integration work in POT! |
@mblondel no problem your code was a pleasure to work with. |
This PR add several solvers for regularized OT from the following paper:
Blondel, M., Seguy, V., & Rolet, A. (2018). Smooth and Sparse Optimal Transport. Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics (AISTATS).
Some of the code come from https://github.com/mblondel/smooth-ot/
List of new stuff:
smooth_ot_dual
andsmooth_ot_semi_dual
compatible with ot.sinkhorn.plot_OT_1D_smooth.py
Here is an example of 1D OT matrix for squared L2 regularization.
