summaryrefslogtreecommitdiff
path: root/notebooks/plot_gromov.ipynb
diff options
context:
space:
mode:
authorRémi Flamary <remi.flamary@gmail.com>2018-02-16 15:13:59 +0100
committerRémi Flamary <remi.flamary@gmail.com>2018-02-16 15:13:59 +0100
commitbf78141c8849cce9b94a4e518bd6c7360e66f8dd (patch)
tree0642f657ee807b0def96e63faf86ebec98a31af7 /notebooks/plot_gromov.ipynb
parentfead9d6186020fdd37e167ddfa7a91c405188ce7 (diff)
update notebooks
Diffstat (limited to 'notebooks/plot_gromov.ipynb')
-rw-r--r--notebooks/plot_gromov.ipynb239
1 files changed, 148 insertions, 91 deletions
diff --git a/notebooks/plot_gromov.ipynb b/notebooks/plot_gromov.ipynb
index 87937f0..6a237e6 100644
--- a/notebooks/plot_gromov.ipynb
+++ b/notebooks/plot_gromov.ipynb
@@ -30,64 +30,7 @@
"metadata": {
"collapsed": false
},
- "outputs": [
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<matplotlib.figure.Figure at 0x7f275d787cf8>"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<matplotlib.figure.Figure at 0x7f2751491cc0>"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "It. |Loss |Delta loss\n",
- "--------------------------------\n",
- " 0|3.767714e-02|0.000000e+00\n",
- " 1|2.091125e-02|-8.017640e-01\n",
- " 2|1.607458e-02|-3.008895e-01\n",
- " 3|1.486883e-02|-8.109274e-02\n",
- " 4|1.484811e-02|-1.394896e-03\n",
- " 5|1.484791e-02|-1.400744e-05\n",
- " 6|1.484790e-02|-1.400803e-07\n",
- " 7|1.484790e-02|-1.400805e-09\n",
- " 8|1.484790e-02|-1.400768e-11\n",
- "It. |Err \n",
- "-------------------\n",
- " 0|7.522843e-02|\n",
- " 10|2.233137e-04|\n",
- " 20|5.767057e-07|\n",
- " 30|2.315565e-09|\n",
- " 40|9.789603e-12|\n",
- "Gromov-Wasserstein distances: 0.014847904422308234\n",
- "Entropic Gromov-Wasserstein distances: 0.011257422087381012\n"
- ]
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- "<matplotlib.figure.Figure at 0x7f275141c2b0>"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
+ "outputs": [],
"source": [
"# Author: Erwan Vautier <erwan.vautier@gmail.com>\n",
"# Nicolas Courty <ncourty@irisa.fr>\n",
@@ -98,18 +41,30 @@
"import numpy as np\n",
"import matplotlib.pylab as pl\n",
"from mpl_toolkits.mplot3d import Axes3D # noqa\n",
- "import ot\n",
- "\n",
- "\n",
- "#\n",
- "# Sample two Gaussian distributions (2D and 3D)\n",
- "# ---------------------------------------------\n",
- "#\n",
- "# The Gromov-Wasserstein distance allows to compute distances with samples that\n",
- "# do not belong to the same metric space. For demonstration purpose, we sample\n",
- "# two Gaussian distributions in 2- and 3-dimensional spaces.\n",
- "\n",
+ "import ot"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Sample two Gaussian distributions (2D and 3D)\n",
+ "---------------------------------------------\n",
"\n",
+ "The Gromov-Wasserstein distance allows to compute distances with samples that\n",
+ "do not belong to the same metric space. For demonstration purpose, we sample\n",
+ "two Gaussian distributions in 2- and 3-dimensional spaces.\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
"n_samples = 30 # nb samples\n",
"\n",
"mu_s = np.array([0, 0])\n",
@@ -121,27 +76,73 @@
"\n",
"xs = ot.datasets.get_2D_samples_gauss(n_samples, mu_s, cov_s)\n",
"P = sp.linalg.sqrtm(cov_t)\n",
- "xt = np.random.randn(n_samples, 3).dot(P) + mu_t\n",
- "\n",
- "\n",
- "#\n",
- "# Plotting the distributions\n",
- "# --------------------------\n",
- "\n",
- "\n",
+ "xt = np.random.randn(n_samples, 3).dot(P) + mu_t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Plotting the distributions\n",
+ "--------------------------\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f5c871e15f8>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
"fig = pl.figure()\n",
"ax1 = fig.add_subplot(121)\n",
"ax1.plot(xs[:, 0], xs[:, 1], '+b', label='Source samples')\n",
"ax2 = fig.add_subplot(122, projection='3d')\n",
"ax2.scatter(xt[:, 0], xt[:, 1], xt[:, 2], color='r')\n",
- "pl.show()\n",
- "\n",
- "\n",
- "#\n",
- "# Compute distance kernels, normalize them and then display\n",
- "# ---------------------------------------------------------\n",
- "\n",
- "\n",
+ "pl.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Compute distance kernels, normalize them and then display\n",
+ "---------------------------------------------------------\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f5c9220df60>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
"C1 = sp.spatial.distance.cdist(xs, xs)\n",
"C2 = sp.spatial.distance.cdist(xt, xt)\n",
"\n",
@@ -153,12 +154,68 @@
"pl.imshow(C1)\n",
"pl.subplot(122)\n",
"pl.imshow(C2)\n",
- "pl.show()\n",
- "\n",
- "#\n",
- "# Compute Gromov-Wasserstein plans and distance\n",
- "# ---------------------------------------------\n",
- "\n",
+ "pl.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Compute Gromov-Wasserstein plans and distance\n",
+ "---------------------------------------------\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "It. |Loss |Delta loss\n",
+ "--------------------------------\n",
+ " 0|3.731009e-02|0.000000e+00\n",
+ " 1|1.846414e-02|-1.020678e+00\n",
+ " 2|1.752056e-02|-5.385587e-02\n",
+ " 3|1.470479e-02|-1.914863e-01\n",
+ " 4|1.371582e-02|-7.210441e-02\n",
+ " 5|1.263823e-02|-8.526431e-02\n",
+ " 6|1.190590e-02|-6.151022e-02\n",
+ " 7|1.014664e-02|-1.733837e-01\n",
+ " 8|1.011396e-02|-3.230516e-03\n",
+ " 9|1.011363e-02|-3.245532e-05\n",
+ " 10|1.011363e-02|-3.245682e-07\n",
+ " 11|1.011363e-02|-3.245683e-09\n",
+ " 12|1.011363e-02|-3.245598e-11\n",
+ "It. |Err \n",
+ "-------------------\n",
+ " 0|7.847531e-02|\n",
+ " 10|2.424218e-03|\n",
+ " 20|4.250670e-02|\n",
+ " 30|5.679949e-05|\n",
+ " 40|1.219762e-08|\n",
+ " 50|1.121975e-11|\n",
+ "Gromov-Wasserstein distances: 0.01011363084946804\n",
+ "Entropic Gromov-Wasserstein distances: 0.0063386519916289385\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f5c850d1550>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
"p = ot.unif(n_samples)\n",
"q = ot.unif(n_samples)\n",
"\n",