{ "metadata": { "name": "", "signature": "sha256:b65d32b626c6b5575ab808a448461a190dd0152a68ce83ddf7bbaf1aefb35c43" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "1D optimal transport demo" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# load all relevant modules\n", "import numpy as np\n", "import matplotlib.pylab as pl\n", "import ot" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dataset generation" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "n=100 # nb bins\n", "a=ot.datasets.get_1D_gauss(n,m=20,s=20) # m= mean, s= std\n", "b=ot.datasets.get_1D_gauss(n,m=60,s=60)\n", "\n", "# bin positions\n", "x=np.arange(n,dtype=np.float64)\n", "# loss matrix\n", "M=ot.dist(x.reshape((n,1)),x.reshape((n,1)))\n", "M/=M.max()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting the distributions" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "pl.figure(1)\n", "pl.plot(x,a,'b',label='Source distribution')\n", "pl.plot(x,b,'r',label='Target distribution')\n", "pl.legend()\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEACAYAAAC6d6FnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4VGX2wPHvSQidQEKAgJCANKmiKIKKBlkVFcQGBBAB\nUbHAqugqrihBLCtr76yLggUCov6kKGILiiKCsIpICWICgaAiXUBCeH9/vJM4GVImyczcKefzPPMw\nc+fOvWeGm3vufasYY1BKKRV5opwOQCmllDM0ASilVITSBKCUUhFKE4BSSkUoTQBKKRWhNAEopVSE\n8ioBiEgfEVkvIhtF5O5i3q8qIukikikiy0QkybU8RkReEZHvRWS1iJzr6y+glFKqYspMACISBTwH\nXAh0AAaLyEkeq40CdhljWgNPAVNcy68HjDGmM3AB8LivAldKKVU53twBdAMyjTHZxpg8IB3o77FO\nf2CG6/lc4DzX8/bApwDGmN+APSJyWqWjVkopVWneJIATgK1ur3Ncy4pdxxiTD+wVkXjgO+BSEYkW\nkRZAV6BZpaNWSilVaVX8tF1x/fsK0A5YAWQDXwL5ftqnUkqpcvAmAWwDktxeN3Utc5eDvbLfLiLR\nQKwxZpfrvXEFK4nIl8BGzx2IiA5IpJRSFWCMkbLXKp43RUArgFYikiwiVYFUYJ7HOvOB4a7nA3CV\n+4tIDRGp6Xp+PpBnjFlf3E6MMfowhokTJzoeQ7A89LfQ30J/i9IflVXmHYAxJl9ExgCLsQljmjFm\nnYhMAlYYYxYA04DXRSQT+B2bJAAaAh+KSD72rmFYpSNWSinlE17VARhjFgFtPZZNdHv+JzCwmM9l\nA55NRpVSSgUB7QkcZFJSUpwOIWjob/EX/S3+or+F74gvypEqHYSICYY4lFIqlIgIphKVwP5qBqoq\nYNs2WLAARo92OhJVmubNm5Odne10GCqCJCcnk5WV5fPt6h1AkDAGLr4YPvkE3nsPLrrI6YhUSVxX\nXU6HoSJIScdcZe8AtA4gSLz2GuzYYU/+o0fDvn1OR6SUCnd6BxAEtm+HLl1g8WL77/XXQ1QUTJ3q\ndGSqOHoHoALNX3cAmgAcZgxcdhl07gyTJ9tle/dCp07w6qvQu7ez8anjaQJQgaZFQGHqrbfgp59g\nwoS/ltWtCy+9BNddB4cOORebUk6YNGkSw4bZPqNbt24lNjbWZwn3pptu4qGHHgJgyZIlNGvmu7Ep\nly5dSrt27Xy2vUDQBOCw11+H+++HatWKLr/4YmjcGL780pm4VGhaunQpZ511FvXq1SMhIYGePXvy\n7bffOh1WuYnYi9pmzZqxb9++wtclmTFjBj179ixzuy+++CL33nvvcfupiKioKDZv3lz4+uyzz2bd\nunUV3p4TNAE46Ngx+OorKOm47dlTE4Dy3v79++nXrx+33noru3fvZtu2bUycOJFqnlcXPpCfH1yD\n+hpjyjyZHzt2zKf7rEzyCBaaABy0YYMt7mncuPj3zzpLE4Dy3saNGxERBg4ciIhQrVo1/va3v9Gx\nY0fAniQffPBBmjdvTmJiIiNGjGD//v1A8cUhLVq04NNPPwVsscyAAQMYNmwY9erVY8aMGRw7doyH\nH36YVq1aUbduXU4//XS2bbMDBa9fv54LLriA+vXr065dO956660S487KyiIlJYW6dety4YUXsnPn\nzsL3srOziYqKKjx5T58+nZYtWxIbG0vLli2ZNWsW69ev56abbmLZsmXUqVOH+Ph4AEaOHMnNN9/M\nJZdcQp06dcjIyGDkyJHcf//9hds3xvDII4/QoEEDTjzxRGbOnFn4Xq9evXjllVcKX7vfZZx77rkY\nY+jcuTOxsbG89dZbx/2G69evp1evXsTFxdGpUyfmz59f+N7IkSMZM2YMffv2JTY2lh49evDzzz+X\n+X/sa5oAHPTll/YkX5Izz4TlyyHILrZUkGrTpg3R0dGMGDGCRYsWsWfPniLvv/rqq7z22mssWbKE\nzZs3s3//fm655ZbC98u6op03bx4DBw5kz549DB06lMcff5zZs2ezaNEi9u7dyyuvvELNmjU5ePAg\nF1xwAVdffTU7d+4kPT2dW265hfXrix0ImCFDhnD66aezc+dOJkyYwIwZM4q8XxDXwYMHufXWW/nw\nww/Zt28fX331FV26dOGkk07ipZdeokePHuzfv59du3YVfnbWrFncd9997N+/n7OK+WPbsWMHu3bt\nYvv27UyfPp0bbriBzMzMEn+DgliWLFkCwJo1a9i3bx8DBgwo8v7Ro0fp168fffr04bfffuOZZ55h\n6NChRbY9e/ZsJk2axJ49e2jZsmWRoqlA0QTgoLISQEKCvTtYsyZwManKE/HNo7zq1KnD0qVLiYqK\n4oYbbqBhw4b079+f3377DYCZM2cybtw4kpOTqVmzJo888gizZ8/2umikR48e9OvXD4Bq1aoxbdo0\n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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Distributions and loss matrix" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# plot distributions and loss matrix\n", "\n", "pl.figure(2)\n", "ot.plot.plot1D_mat(a,b,M,'Cost matrix M')\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nYII=\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## OT solution (Earth Mover's Distance)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "G0=ot.emd(a,b,M)\n", "\n", "pl.figure(3)\n", "ot.plot.plot1D_mat(a,b,G0,'OT matrix G0')\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n/w/xqdjTkgKZjAAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Regularized Optimal transport (Entropic regularization)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# reg parameter\n", "lambd=1e-3\n", "\n", "Gs=ot.sinkhorn(a,b,M,lambd)\n", "\n", "pl.figure(4)\n", "ot.plot.plot1D_mat(a,b,Gs,'OT matrix Sinkhorn')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nL+KNAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 } ], "metadata": {} } ] }