{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![MOSEK ApS](https://www.mosek.com/static/images/branding/webgraphmoseklogocolor.png )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Regularized Wasserstein Barycenters using Mosek and the exponential cone" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a [previous notebook related to Wasserstein distances](https://nbviewer.jupyter.org/github/MOSEK/Tutorials/blob/master/wasserstein/wasserstein-bary.ipynb) we defined the linear optimization problem of computing the Wasserstein barycenter of a set of discrete measures. Here we solve an entropy-regularized variant of the same problem and to demonstrate the exponential cone capabilities of MOSEK. We also use this problem to compare Fusion and CVXPY." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a reminder, the $p$-th order Wasserstein distance $W_p(\\mu,\\upsilon)$ between discrete probability distributions $\\mu,\\upsilon$ is the objective value of the following problem:\n", "
\n", "
\n", "$$\\mbox{minimize} \\quad \\sum_{i=1}\\sum_{j=1} D(X_i,Y_j)^p\\pi_{ij}$$\n", "
\n", "$$\\mbox{st.} \\quad \\sum_{j=1} \\pi_{ij} = \\mu_i , \\quad i = 1,2,..n$$\n", "
\n", "$$\\quad \\sum_{i=1} \\pi_{ij} = \\upsilon_j, \\quad j = 1,2,..m$$\n", "
\n", "$$\\pi_{ij} \\geq 0, \\quad \\forall_{i,j}$$\n", "
\n", "where $D(X_i,Y_j)$ is the distance function.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Wasserstein Barycenter with regularization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The entropy regularized barycenter problem with $p=2$ is:\n", "
\n", "$$\\mbox{minimize} \\quad \\frac1N \\sum_{i,j,k}^{N} D(X_i,Y_j)^2\\pi_{ij}^k + \\frac1\\lambda\\sum_{i,j,k} \\pi_{ij}^k\\log(\\pi_{ij}^k)$$\n", "
\n", "$$\\mbox{st.} \\quad \\sum_{j=1} \\pi_{ij}^{k} = \\mu_i, \\quad \\forall_{k,i} \\quad (1)$$\n", "
\n", "$$\\quad \\sum_{i=1} \\pi_{ij}^{k} = \\upsilon_j^{k}, \\quad \\forall_{k,j} \\quad (2)$$\n", "
\n", "$$\\pi_{ij}^{k} \\geq 0 \\quad \\forall_{k,i,j}$$\n", "
\n", "where $D(X_i,Y_j)$ is the euclidian distance between pixels, $\\lambda = median(D(X_i,Y_j))$ and $N$ is the number of samples.\n", "\n", "Without the entropy term the problem is just the linear problem of computing a distribution $\\mu$ minimizing the sum of distances to $\\upsilon_i$, as studied in our other notebook. Entropy regularization was suggested to us by Stefano Gualandi and appears for example in the paper by Cuturi and Doucet http://proceedings.mlr.press/v32/cuturi14.pdf. This paper contains also more details about the choice of $\\lambda$. Also more detailed information about LP aproach to Wasserstein metric can be found in [Stefano Gualandi's blogpost](http://stegua.github.io/blog/2018/12/31/wasserstein-distances-an-operations-research-perspective/).\n", "\n", "In this problem, Wasserstein Barycenter of Three's are visualized using images with size $28x28$ using $2$ handwriten '3' digits from MNIST database. Computations are carried out by Intel(R) Xeon(R) CPU E5-2687W v4 @ 3.00GHz processor." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "