{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Advanced Topics on Sinkhorn Algorithm\n", "=====================================\n", "$\\newcommand{\\dotp}[2]{\\langle #1, #2 \\rangle}$\n", "$\\newcommand{\\enscond}[2]{\\lbrace #1, #2 \\rbrace}$\n", "$\\newcommand{\\pd}[2]{ \\frac{ \\partial #1}{\\partial #2} }$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\umax}[1]{\\underset{#1}{\\max}\\;}$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\uargmin}[1]{\\underset{#1}{argmin}\\;}$\n", "$\\newcommand{\\norm}[1]{\\|#1\\|}$\n", "$\\newcommand{\\abs}[1]{\\left|#1\\right|}$\n", "$\\newcommand{\\choice}[1]{ \\left\\{ \\begin{array}{l} #1 \\end{array} \\right. }$\n", "$\\newcommand{\\pa}[1]{\\left(#1\\right)}$\n", "$\\newcommand{\\diag}[1]{{diag}\\left( #1 \\right)}$\n", "$\\newcommand{\\qandq}{\\quad\\text{and}\\quad}$\n", "$\\newcommand{\\qwhereq}{\\quad\\text{where}\\quad}$\n", "$\\newcommand{\\qifq}{ \\quad \\text{if} \\quad }$\n", "$\\newcommand{\\qarrq}{ \\quad \\Longrightarrow \\quad }$\n", "$\\newcommand{\\ZZ}{\\mathbb{Z}}$\n", "$\\newcommand{\\CC}{\\mathbb{C}}$\n", "$\\newcommand{\\RR}{\\mathbb{R}}$\n", "$\\newcommand{\\EE}{\\mathbb{E}}$\n", "$\\newcommand{\\Zz}{\\mathcal{Z}}$\n", "$\\newcommand{\\Ww}{\\mathcal{W}}$\n", "$\\newcommand{\\Vv}{\\mathcal{V}}$\n", "$\\newcommand{\\Nn}{\\mathcal{N}}$\n", "$\\newcommand{\\NN}{\\mathcal{N}}$\n", "$\\newcommand{\\Hh}{\\mathcal{H}}$\n", "$\\newcommand{\\Bb}{\\mathcal{B}}$\n", "$\\newcommand{\\Ee}{\\mathcal{E}}$\n", "$\\newcommand{\\Cc}{\\mathcal{C}}$\n", "$\\newcommand{\\Gg}{\\mathcal{G}}$\n", "$\\newcommand{\\Ss}{\\mathcal{S}}$\n", "$\\newcommand{\\Pp}{\\mathcal{P}}$\n", "$\\newcommand{\\Ff}{\\mathcal{F}}$\n", "$\\newcommand{\\Xx}{\\mathcal{X}}$\n", "$\\newcommand{\\Mm}{\\mathcal{M}}$\n", "$\\newcommand{\\Ii}{\\mathcal{I}}$\n", "$\\newcommand{\\Dd}{\\mathcal{D}}$\n", "$\\newcommand{\\Ll}{\\mathcal{L}}$\n", "$\\newcommand{\\Tt}{\\mathcal{T}}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\al}{\\alpha}$\n", "$\\newcommand{\\la}{\\lambda}$\n", "$\\newcommand{\\ga}{\\gamma}$\n", "$\\newcommand{\\Ga}{\\Gamma}$\n", "$\\newcommand{\\La}{\\Lambda}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\Si}{\\Sigma}$\n", "$\\newcommand{\\be}{\\beta}$\n", "$\\newcommand{\\de}{\\delta}$\n", "$\\newcommand{\\De}{\\Delta}$\n", "$\\newcommand{\\phi}{\\varphi}$\n", "$\\newcommand{\\th}{\\theta}$\n", "$\\newcommand{\\om}{\\omega}$\n", "$\\newcommand{\\Om}{\\Omega}$\n", "$\\newcommand{\\eqdef}{\\equiv}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This numerical tour explore several extensions of the basic Sinkhorn\n", "method." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Log-domain Sinkhorn \n", "--------------------\n", "For simplicity, we consider uniform distributions on point clouds, so\n", "that the associated histograms are $ (a,b) \\in \\RR^n \\times \\RR^m$\n", "being constant $1/n$ and $1/m$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "n = 100\n", "m = 200\n", "a = np.ones((n,1))/n\n", "b = np.ones((1,m))/m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Point clouds $x$ and $y$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "x = np.random.rand(2,n)-.5\n", "theta = 2*np.pi*np.random.rand(1,m)\n", "r = .8 + .2*np.random.rand(1,m)\n", "y = np.vstack((np.cos(theta)*r,np.sin(theta)*r))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display of the two clouds." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotp = lambda x,col: plt.scatter(x[0,:], x[1,:], s=150, edgecolors=\"k\", c=col, linewidths=2)\n", "plt.figure(figsize=(6,6))\n", "plotp(x, 'b')\n", "plotp(y, 'r')\n", "plt.axis(\"off\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cost matrix $C_{i,j} = \\norm{x_i-y_j}^2$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def distmat(x,y):\n", " return np.sum(x**2,0)[:,None] + np.sum(y**2,0)[None,:] - 2*x.transpose().dot(y)\n", "C = distmat(x,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sinkhorn algorithm is originally implemented using matrix-vector\n", "multipliciation, which is unstable for small epsilon.\n", "Here we consider a log-domain implementation, which operates by\n", "iteratively updating so-called Kantorovitch dual potentials $ (f,g) \\in \\RR^n \\times \\RR^m $.\n", "\n", "\n", "The update are obtained by regularized c-transform, which reads\n", "$$ f_i \\leftarrow {\\min}_\\epsilon^b( C_{i,\\cdot} - g ) $$\n", "$$ g_j \\leftarrow {\\min}_\\epsilon^a( C_{\\cdot,j} - f ), $$\n", "where the regularized minimum operator reads\n", "$$ {\\min}_\\epsilon^a(h) \\eqdef -\\epsilon \\log \\sum_i a_i e^{-h_i/\\epsilon}. $$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def mina_u(H,epsilon): return -epsilon*np.log( np.sum(a * np.exp(-H/epsilon),0) )\n", "def minb_u(H,epsilon): return -epsilon*np.log( np.sum(b * np.exp(-H/epsilon),1) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The regularized min operator defined this way is non-stable, but it can\n", "be stabilized using the celebrated log-sum-exp trick, wich relies on the\n", "fact that for any constant $c \\in \\RR$, one has\n", "$$ {\\min}_\\epsilon^a(h+c) = {\\min}_\\epsilon^a(h) + c, $$\n", "and stabilization is achieved using $c=\\min(h)$." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def mina(H,epsilon): return mina_u(H-np.min(H,0),epsilon) + np.min(H,0);\n", "def minb(H,epsilon): return minb_u(H-np.min(H,1)[:,None],epsilon) + np.min(H,1);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Value of $\\epsilon$. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "epsilon = .01" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 1__\n", "\n", "Implement Sinkhorn in log domain." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def Sinkhorn(C,epsilon,f,niter = 500): \n", " Err = np.zeros(niter)\n", " for it in range(niter):\n", " g = mina(C-f[:,None],epsilon)\n", " f = minb(C-g[None,:],epsilon)\n", " # generate the coupling\n", " P = a * np.exp((f[:,None]+g[None,:]-C)/epsilon) * b\n", " # check conservation of mass\n", " Err[it] = np.linalg.norm(np.sum(P,0)-b,1)\n", " return (P,Err)\n", "# run with 0 initialization for the potential f\n", "(P,Err) = Sinkhorn(C,epsilon,np.zeros(n),3000) \n", "plt.plot(np.log10(Err));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 2__\n", "\n", "Study the impact of $\\epsilon$ on the convergence rate of the algorithm." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for epsilon in (.1, .05, .01, .001):\n", " (P,Err) = Sinkhorn(C,epsilon,np.zeros(n),1000) \n", " plt.plot(np.log10(Err), label='$\\epsilon=$' + str(epsilon))\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wasserstein Flow for Matching \n", "------------------------------\n", "We aim at performing a \"Lagrangian\" gradient (also called Wasserstein flow) descent of Wasserstein\n", "distance, in order to perform a non-parametric fitting. This corresponds\n", "to minimizing the energy function\n", "$$ \\Ee(z) \\eqdef W_\\epsilon\\pa{ \\frac{1}{n}\\sum_i \\de_{z_i}, \\frac{1}{m}\\sum_i \\de_{y_i} }. $$\n", "\n", "\n", "Here we have denoted the Sinkhorn score as\n", "$$ W_\\epsilon(\\al,\\be) \\eqdef \\dotp{P}{C} - \\epsilon \\text{KL}(P|ab^\\top)$$\n", "where $\\al=\\frac{1}{n}\\sum_i \\de_{x_i}$ and\n", "$\\be=\\frac{1}{m}\\sum_i \\de_{y_i}$ are the measures (beware that $C$\n", "depends on the points positions)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "z = x # initialization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The gradient of this energy reads\n", "$$ ( \\nabla \\Ee(z) )_i = \\sum_j P_{i,j}(z_i-y_j) = a_i z_i - \\sum_j P_{i,j} y_j, $$\n", "where $P$ is the optimal coupling. It is better to consider a renormalized gradient, which corresponds\n", "to using the inner product associated to the measure $a$ on the\n", "deformation field, in which case\n", "$$ ( \\bar\\nabla \\Ee(z) )_i = z_i - \\bar y_i \\qwhereq \\bar y_i \\eqdef \\frac{\\sum_j P_{i,j} y_j}{a_i}. $$\n", "Here $\\bar y_i$ is often called the \"barycentric projection\" associated\n", "to the coupling matrix $P$.\n", "\n", "\n", "First run Sinkhorn, beware you need to recompute the cost matrix at each step." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "epsilon = .01\n", "niter = 300\n", "(P,Err) = Sinkhorn(distmat(z,y), epsilon,np.zeros(n),niter);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute the gradient" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "G = z - ( y.dot(P.transpose()) ) / a.transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the gradient field." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(6,6))\n", "plotp(x, 'b')\n", "plotp(y, 'r')\n", "for i in range(n):\n", " plt.plot([x[0,i], x[0,i]-G[0,i]], [x[1,i], x[1,i]-G[1,i]], 'k')\n", "plt.axis(\"off\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the descent step size." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "tau = .1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Update the point cloud." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "z = z - tau * G" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 3__\n", "\n", "Implement the gradient flow." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "z = x; # initialization\n", "tau = .03; # step size for the descent \n", "giter = 20; # iter for the gradient descent\n", "ndisp = np.round( np.linspace(0,giter-1,6) )\n", "kdisp = 0\n", "f = np.zeros(n) # use warm restart in the following\n", "for j in range(giter):\n", " # drawing\n", " if ndisp[kdisp]==j: \n", " plt.subplot(2,3,kdisp+1)\n", " s = j/(giter-1)\n", " col = np.array([s,0,1-s])[None,:]\n", " plotp(z, col )\n", " plt.axis(\"off\")\n", " kdisp = kdisp+1\n", " # Sinkhorn\n", " (P,Err) = Sinkhorn(distmat(z,y), epsilon,f,niter)\n", " # gradient\n", " G = z - ( y.dot(P.transpose()) ) / a.transpose()\n", " z = z - tau * G;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 4__\n", "\n", "Show the evolution of the fit as $\\epsilon$ increases. What do you observe.\n", "Replace the Sinkhorn score $W_\\epsilon(\\al,\\be)$ by the Sinkhorn divergence\n", "$W_\\epsilon(\\al,\\be)-W_\\epsilon(\\al,\\al)/2-W_\\epsilon(\\be,\\be)/2$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generative Model Fitting\n", "------------------------\n", "The Wasserstein is a non-parametric idealization which does not\n", "corresponds to any practical application. We consider here a simple toy\n", "example of density fitting, where the goal is to find a parameter $\\theta$\n", "to fit a deformed point cloud of the form $ (g_\\theta(x_i))_i $ using a\n", "Sinkhorn cost. This is ofen called a generative model in the machine\n", "learning litterature, and corresponds to the problem of shape\n", "registration in imaging.\n", "\n", "\n", "The matching is achieved by solving\n", "$$ \\min_\\th \\Ff(\\th) \\eqdef \\Ee(G_\\th(z)) = W_\\epsilon\\pa{ \\frac{1}{n}\\sum_i \\de_{g_\\th(z_i)}, \\frac{1}{m}\\sum_i \\de_{y_i} }, $$\n", "where the function $G_\\th(z)=( g_\\th(z_i) )_i$ operates independently on\n", "each point.\n", "\n", "\n", "The gradient reads\n", "$$ \\nabla \\Ff(\\th) = \\sum_i \\partial g_\\th(z_i)^*[ \\nabla \\Ee(G_\\th(z))_i ], $$\n", "where $\\partial g_\\th(z_i)^*$ is the adjoint of the Jacobian of\n", "$g_\\th$.\n", "\n", "\n", "We consider here a simple model of affine transformation, where\n", "$\\th=(A,h) \\in \\RR^{d \\times d} \\times \\RR^d $\n", "and $g_\\th(z_i)=Az_i+h$.\n", "\n", "\n", "Denoting $ v_i = \\nabla \\Ee(G_\\th(z))_i $ the gradient of the Sinkhorn\n", "loss (which is computed as in the previous section), the gradient with\n", "respect to the parameter reads\n", "$$ \\nabla_A \\Ff(\\th) = \\sum_i v_i z_i^\\top\n", " \\qandq \\nabla_h \\Ff(\\th) = \\sum_i v_i. $$\n", "\n", "\n", "Generate the data." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "z = np.random.randn(2,n)*.2\n", "y = np.random.randn(2,m)*.2\n", "y[0,:] = y[0,:]*.05 + 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Initialize the parameters." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "A = np.eye(2)\n", "h = np.zeros(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the clouds." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotp(A.dot(z)+h[:,None], 'b')\n", "plotp(y, 'r')\n", "plt.xlim(-.7,1.1)\n", "plt.ylim(-.7,.7);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run Sinkhorn." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "x = A.dot(z)+h[:,None]\n", "f = np.zeros(n)\n", "(P,Err) = Sinkhorn(distmat(x,y), epsilon,f,niter)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute gradient with respect to positions." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "v = a.transpose() * x - y.dot(P.transpose())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "gradient with respect to parameters" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "nabla_A = v.dot(z.transpose())\n", "nabla_h = np.sum(v,1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 5__\n", "\n", "Implement the gradient descent." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = np.eye(2)\n", "h = np.zeros(2)\n", "# step size for the descent\n", "tau_A = .8\n", "tau_h = .1\n", "# #iter for the gradient descent\n", "giter = 40 \n", "ndisp = np.round( np.linspace(0,giter-1,6) )\n", "kdisp = 0\n", "f = np.zeros(n)\n", "for j in range(giter):\n", " x = A.dot(z)+h[:,None] \n", " if ndisp[kdisp]==j:\n", " plt.subplot(2,3,kdisp+1)\n", " plotp(y, 'r')\n", " plotp(x, 'b')\n", " kdisp = kdisp+1\n", " plt.xlim(-.7,1.3)\n", " plt.ylim(-.7,.7)\n", " (P,Err) = Sinkhorn(distmat(x,y), epsilon,f,niter)\n", " v = a.transpose() * x - y.dot(P.transpose())\n", " nabla_A = v.dot(z.transpose())\n", " nabla_h = np.sum(v,1)\n", " A = A - tau_A * nabla_A\n", " h = h - tau_h * nabla_h " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 5__\n", "\n", "Test using a more complicated deformation (for instance a square being deformed by a random $A$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" } }, "nbformat": 4, "nbformat_minor": 1 }