Created
April 8, 2016 16:17
-
-
Save xiangze/cca2beeab0da6d3fd703f2cce87437ea to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Inference of Gaussian mixture model with ADVI" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Here, we describe how to use ADVI for inference of Gaussian mixture model. First, we will show that inference with ADVI does not need to modify the stochastic model, just call a function. Then, we will show how to use mini-batch, which is useful for large dataset. In this case, where the model should be slightly changed. \n", | |
"\n", | |
"First, create artificial data from a mixuture of two Gaussian components. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Using gpu device 0: GeForce GTX 970 (CNMeM is disabled, CuDNN not available)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.collections.PathCollection at 0x7f5ec7d94c50>" | |
] | |
}, | |
"execution_count": 1, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nHZUAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f5ec7e4d7d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%matplotlib inline\n", | |
"\n", | |
"import pymc3 as pm\n", | |
"from pymc3 import Normal, Metropolis, sample, MvNormal, Dirichlet, \\\n", | |
" DensityDist, find_MAP, NUTS, Slice\n", | |
"import theano.tensor as tt\n", | |
"from theano.tensor.nlinalg import det\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"\n", | |
"n_samples = 100\n", | |
"rng = np.random.RandomState(123)\n", | |
"ms = np.array([[-1, -1.5], [1, 1]])\n", | |
"ps = np.array([0.2, 0.8])\n", | |
"\n", | |
"zs = np.array([rng.multinomial(1, ps) for _ in range(n_samples)]).T\n", | |
"xs = [z[:, np.newaxis] * rng.multivariate_normal(m, np.eye(2), size=n_samples)\n", | |
" for z, m in zip(zs, ms)]\n", | |
"data = np.sum(np.dstack(xs), axis=2)\n", | |
"\n", | |
"plt.figure(figsize=(5, 5))\n", | |
"plt.scatter(data[:, 0], data[:, 1], c='g', alpha=0.5)\n", | |
"plt.scatter(ms[0, 0], ms[0, 1], c='r', s=100)\n", | |
"plt.scatter(ms[1, 0], ms[1, 1], c='b', s=100)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Gaussian mixture models are usually constructed with categorical random variables. However, any discrete rvs does not fit ADVI. Here, class assignment variables are marginalized out, giving weighted sum of the probability for the gaussian components. The log likelihood of the total probability is calculated using logsumexp, which is a standard technique for making this kind of calculation stable. \n", | |
"\n", | |
"In the below code, DensityDist class is used as the likelihood term. The second argument, logp_gmix(mus, pi, np.eye(2)), is a python function which recieves observations (denoted by 'value') and returns the tensor representation of the log-likelihood. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Applied stickbreaking-transform to pi and added transformed pi_stickbreaking to model.\n" | |
] | |
} | |
], | |
"source": [ | |
"from pymc3.math import LogSumExp\n", | |
"\n", | |
"# Log likelihood of normal distribution\n", | |
"def logp_normal(mu, tau, value):\n", | |
" # log probability of individual samples\n", | |
" k = tau.shape[0]\n", | |
" delta = lambda mu: value - mu\n", | |
" return (-1 / 2.) * (k * tt.log(2 * np.pi) + tt.log(1./det(tau)) +\n", | |
" (delta(mu).dot(tau) * delta(mu)).sum(axis=1))\n", | |
"\n", | |
"# Log likelihood of Gaussian mixture distribution\n", | |
"def logp_gmix(mus, pi, tau):\n", | |
" def logp_(value): \n", | |
" logps = [tt.log(pi[i]) + logp_normal(mu, tau, value)\n", | |
" for i, mu in enumerate(mus)]\n", | |
" \n", | |
" return tt.sum(LogSumExp(tt.stacklists(logps)[:, :n_samples], axis=0))\n", | |
"\n", | |
" return logp_\n", | |
"\n", | |
"with pm.Model() as model:\n", | |
" mus = [MvNormal('mu_%d' % i, mu=np.zeros(2), tau=0.1 * np.eye(2), shape=(2,))\n", | |
" for i in range(2)]\n", | |
" pi = Dirichlet('pi', a=0.1 * np.ones(2), shape=(2,))\n", | |
" xs = DensityDist('x', logp_gmix(mus, pi, np.eye(2)), observed=data)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For comparison with ADVI, run MCMC. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" [-----------------100%-----------------] 1000 of 1000 complete in 1.6 sec" | |
] | |
} | |
], | |
"source": [ | |
"with model:\n", | |
" start = find_MAP()\n", | |
" step = Metropolis()\n", | |
" trace = sample(1000, step, start=start)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Check posterior of component means and weights. We can see that the MCMC samples of the component mean for the lower-left component varied more than the upper-right due to the difference of the sample size of these clusters. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(-6, 6)" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nsupBQScu4a2uWmlBVZlQdUUAO3IenXiXzSjqT1TStGnT2LNnDzabjYkTJ9KuXbsKn+PIandfExlZ\n2y/rBv+tvTJ15+TkXBVUng6ZuC3LzHE+m41atWoSkV727LOv8tefFTBrr4hTLbqdO3eSnJxMXFwc\nR48eZdKkScTFxTlzKZFSOTob6guD+loT5/ucCrrt27fTo0cPAJo3b86FCxfIyspyaP+giCN8eefA\nlSFc+3LtkvtdnRzn07Yw93Fq1jUtLY369evbf1+vXj3S0nRqg7iOLx89fuVMLzbss7nN8ps5PdGi\ne7y6j0smIxwd5nOkL+2L/LVu8N/am9a/jqSaSfZWUqPCCD7d9S/S8tKICIpgSLchVW7tZOdk8/HW\njyt9zbyamYSFBdt/b1zO5+kHxlSpltKum3c506N/f/76s+IIp4KuQYMGJVpwp0+fJjIyssLn+eNg\np78P0rqzdnd1tSIja/Pr1vfZJxkiAsPJzM/j+2uSsNWwkVqQxsVPF1e5K2ufRPj5munx86lZM6jC\n9xOUH0ZqZtovM735UfbPuSqfeXnXdTd//zmviFNd165du/LZZ58BcODAARo2bEitWrWcuZT4MXd2\nta5ccHvRdtHlXdkru8fbjm116P246/4Puq+E+zjVouvYsSNt2rQhNjaWGjVqMHnyZFfXJX7Ak7ON\n7ljYe+U1KcShMHXXTK8vzCBbldNjdM8++6wr6xA/5MldBa7cWVHW8VKNWkTzo3FKuyQsSDsjBHBu\nvM2TJ3CU1tpxdoywrOOlSlt8LNagoBPAuXVr7u5queuU3vLuV6GuozUp6ATwzdX9lTmlt6Lz8IrT\nRv7qR8c0CeC+Y5SqoqJFw8VrPnzyELmBuQ7NAGt2s/pRi04A3zzxtjKn9AanBdO0XTOg4hapuqjV\nj4JOAN/8x1+Zo58qOg9PqjcFnfisyoSvL7ZIxXco6MQSfLFFWpxOJvEuBZ1US54OHl8+dqo60Kyr\nVEuePhLJl4+dqg7UopNqydXrBotaiHk1MwnKD7uqhai1e96lFp0Py87JJm7LMmZvnEnclmXk5OR4\nu6RKOXz4EJMeeYjDhw95u5SruHrdYFELMbOMFqLW7nmXgs6H+fqJs9k52bw850Xuv/UmXp7zYokg\nPnz4EF92u50pa9fwZbfbfS7sXB08FXVNdZ9X71LQ+TBfH9f5x/t/I2rKDFad+ImoKTP4+/uv2f9s\n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\nWZIspDDvAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f5eae241c10>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(5, 5))\n", | |
"plt.scatter(data[:, 0], data[:, 1], alpha=0.5, c='g')\n", | |
"mu_0, mu_1 = trace['mu_0'], trace['mu_1']\n", | |
"plt.scatter(mu_0[-500:, 0], mu_0[-500:, 1], c=\"r\", s=10)\n", | |
"plt.scatter(mu_1[-500:, 0], mu_1[-500:, 1], c=\"b\", s=10)\n", | |
"plt.xlim(-6, 6)\n", | |
"plt.ylim(-6, 6)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5eaf591d50>" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f5eae2b38d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.barplot([1, 2], np.mean(trace['pi'][-5000:], axis=0), \n", | |
" palette=['red', 'blue'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can use the same model with ADVI as follows. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Applied stickbreaking-transform to pi and added transformed pi_stickbreaking to model.\n", | |
"Iteration 0 [0%]: ELBO = -412.12\n", | |
"Iteration 100 [10%]: ELBO = -357.93\n", | |
"Iteration 200 [20%]: ELBO = -328.79\n", | |
"Iteration 300 [30%]: ELBO = -324.32\n", | |
"Iteration 400 [40%]: ELBO = -321.59\n", | |
"Iteration 500 [50%]: ELBO = -322.9\n", | |
"Iteration 600 [60%]: ELBO = -324.97\n", | |
"Iteration 700 [70%]: ELBO = -323.26\n", | |
"Iteration 800 [80%]: ELBO = -322.76\n", | |
"Iteration 900 [90%]: ELBO = -322.89\n", | |
"Finished [100%]: ELBO = -324.32\n", | |
"CPU times: user 3.04 s, sys: 104 ms, total: 3.14 s\n", | |
"Wall time: 7.12 s\n" | |
] | |
} | |
], | |
"source": [ | |
"with pm.Model() as model:\n", | |
" mus = [MvNormal('mu_%d' % i, mu=np.zeros(2), tau=0.1 * np.eye(2), shape=(2,))\n", | |
" for i in range(2)]\n", | |
" pi = Dirichlet('pi', a=0.1 * np.ones(2), shape=(2,))\n", | |
" xs = DensityDist('x', logp_gmix(mus, pi, np.eye(2)), observed=data)\n", | |
" \n", | |
"%time means, sds, elbos = pm.variational.advi( \\\n", | |
" model=model, n=1000, learning_rate=1e-1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The function returns three variables. 'means' and 'sds' are the mean and standart deviations of the variational posterior. Note that these values are in the transformed space, not in the original space. For random variables in the real line, e.g., means of the Gaussian components, no transformation is applied. Then we can see the variational posterior in the original space. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(-6, 6)" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f5ea3f2b390>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from copy import deepcopy\n", | |
"\n", | |
"mu_0, sd_0 = means['mu_0'], sds['mu_0']\n", | |
"mu_1, sd_1 = means['mu_1'], sds['mu_1']\n", | |
"\n", | |
"def logp_normal_np(mu, tau, value):\n", | |
" # log probability of individual samples\n", | |
" k = tau.shape[0]\n", | |
" delta = lambda mu: value - mu\n", | |
" return (-1 / 2.) * (k * np.log(2 * np.pi) + np.log(1./np.linalg.det(tau)) +\n", | |
" (delta(mu).dot(tau) * delta(mu)).sum(axis=1))\n", | |
"\n", | |
"def threshold(zz): \n", | |
" zz_ = deepcopy(zz)\n", | |
" zz_[zz < np.max(zz) * 1e-2] = None\n", | |
" return zz_\n", | |
"\n", | |
"def plot_logp_normal(ax, mu, sd, cmap):\n", | |
" f = lambda value: np.exp(logp_normal_np(mu, np.diag(1 / sd**2), value))\n", | |
" g = lambda mu, sd: np.arange(mu - 3, mu + 3, .1)\n", | |
" xx, yy = np.meshgrid(g(mu[0], sd[0]), g(mu[1], sd[1]))\n", | |
" zz = f(np.vstack((xx.reshape(-1), yy.reshape(-1))).T).reshape(xx.shape)\n", | |
" ax.contourf(xx, yy, threshold(zz), cmap=cmap, alpha=0.9)\n", | |
" \n", | |
"fig, ax = plt.subplots(figsize=(5, 5))\n", | |
"plt.scatter(data[:, 0], data[:, 1], alpha=0.5, c='g')\n", | |
"plot_logp_normal(ax, mu_0, sd_0, cmap='Reds')\n", | |
"plot_logp_normal(ax, mu_1, sd_1, cmap='Blues')\n", | |
"plt.xlim(-6, 6)\n", | |
"plt.ylim(-6, 6)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"TODO: We need to backward-transform 'pi', which is transformed by 'stick_breaking'. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"'elbos' contains the trace of ELBO, showing stochastic convergence of the algorithm. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x7f5ea3784990>]" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nGOpEREQKwVAnIiJSCIY6ERGRQjDUiYiIFIKhTkREpBAMdSIiIoVgqBMRESkEQ52IiEghGOpEREQK\nwVAnIiJSCIY6ERGRQjDUiYiIFIKhTkREpBAaR37po48+wpo1axATEwMAyMjIwEMPPYQjR45gxYoV\nUKlUSEpKwvLlywEA+fn52Lp1K1QqFebNm4esrCznvQMiIiIC4GCoA8BNN92EJUuWWGx75pln8OST\nTyI5ORmLFy/Gjh070LdvX2zevBnr169HVVUVcnJykJmZCUEQOlx4IiIiaua07vf6+nqcPXsWycnJ\nAICJEydi165d2Lt3LzIzM6FWq6HT6RAZGYnCwkJnvSwRERE1cTjU9+3bhzlz5uC+++7DkSNHUFlZ\nCX9/f+lxnU6H0tJSVFRUQKfTWWwvKyvrWKmJiIjIRpvd7xs2bMDGjRshCAJEUYQgCJg6dSoWLFiA\nrKws/PDDD3jsscewdu1aiKLY5gvas49JSIiv3ftS+7F+uwbrufOxjjsf67hnaDPUs7OzkZ2d3eLj\nKSkpqKysRGBgIC5evChtLykpQWhoKPR6PYqKiiy26/V6uwpXVnbZrv2o/UJCfFm/XYD13PlYx52P\nddz5nHXS5FD3e35+PjZs2AAAKCwshE6ng1arRb9+/VBQUAAA2LZtG8aNG4e0tDRs374dDQ0NKCkp\nQWlpKeLj451SeCIiImrm0Oz36dOn49FHH8WmTZtgMBjwpz/9CQCwbNkyPPXUUxBFEUOHDkV6ejoA\nYMaMGcjJyYEgCFi5cqXzSk9EREQSQWzPIHcXmb74EwDAm3kTu7kkysXutK7Beu58rOPOxzrufN3a\n/U5ERESuh6FORESkEAx1IiIihWCoExERKQRDnYiISCEY6kRERArBUCciIlIIhjoREZFCMNSJiIgU\ngqFORESkEAx1IiIihWCoExERKQRDnYiISCEY6kRERArBUCciIlIIhjoREZFCMNSJiIgUgqFORESk\nEAx1IiIihWCoExERKQRDnYiISCEY6kRERArBUCciIlIIhjoREZFCMNSJiIgUgqFORESkEAx1IiIi\nhWCoExERKQRDnYiISCEY6kRERArBUCciIlIIhjoREZFCMNSJiIgUgqFORESkEAx1IiIihWCoExER\nKQRDnYiISCEY6kRERArBUCciIlIIhjoREZFCMNSJiIgUQtPdBZAzoI8O/WMCursYREREPYpLhvpz\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f5ea38c46d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.plot(elbos)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To demonstrate that ADVI works for large dataset with mini-batch, let's create 100,000 samples from the same mixture distribution. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(-6, 6)" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n3ryZu+++m927d5/x2AvSj258bWxHRwfPPfccq1evvhB/esb40Y9+xIIFC2bbjGnzxBNP4PV6+eUv\nf0lnZyff/OY32bFjx2ybdUZee+01urq62L59O0eOHOFb3/oW27dvn22zpmTfvn10dnayfft24vE4\nd911F5s2bZpts86KBx98kHA4PNtmTJt4PM4DDzzA448/TiaT4Sc/+QkbN2487fEXROgu9drYV155\nhWAwSFtb22ybMm3+8A//kNtvvx2AmpoaEonELFs0NS+//DKf/OQnAWhtbSWZTJLJZPD7/bNs2Zm5\n5pprWLt2LQChUIhcLocQolxNdLFz9OhRPvjggzMKxcXG3r17ueGGG/D5fPh8Pr773e+e8fgLsnS9\nlGtjS6USP/vZz/j6178+26acFZqm4fF4APjFL37BZz7zmVm2aGqGh4epqakp/zsSiTA8PDyLFk0P\nl8tV7n68Y8cONm7ceMmIHNjL7vvvv3+2zTgrenp6yOVyfPnLX+aP//iPefnll894/Ix7dJdybex4\n251v5BtvvJFt27YRCAQAuBjTDiez+6tf/So33HADjz76KO+99x5/8zd/M9tmnjUX47U+E88++yy/\n+c1veOihh2bblGnz+OOPc80119Dc3AxcOtdcCEE8HufBBx+ku7ube++9l+eff/60x8+40LW3t9Pe\n3j7hMac2FuCqq66it7d3pv/sjDCZ7du2bePFF1/k4Ycf5vjx4+zfv58f//jHtLa2zpKVpzKZ3WAL\n4K5du3jwwQdRVXUWLDs76uvrJ3hwg4OD1NXVzaJF02fPnj387d/+LQ899FD5S/FSYPfu3XR3d/P0\n00/T39+Px+OhsbGR6667brZNOyO1tbVcccUVKIrCggUL8Pv9jIyMTFgRTEBcAN566y1x//33CyGE\n6OzsFHfdddeF+LMzzv333y9effXV2TZjWhw/flzcfffdIp/Pz7Yp0+bNN98UX/ziF4UQQhw4cEDc\nc889s2zR9EilUuKOO+4QsVhstk05L/76r/9aPPbYY7NtxrTo7+8XX/ziF4VlWWJkZER84hOfOOPx\nFyQYIWtjLzw7d+4kkUhw3333lZezP//5z9G0i3fw2xVXXMGqVavYunUrqqry7W9/e7ZNmha/+93v\niMfjfP3rXy9f6x/+8Iey2cWHSENDA7feeiuf/exnURRlyntF1rpKJJI5j6yMkEgkcx4pdBKJZM4j\nhU4ikcx5pNBJJJI5jxQ6iUQy55FCJ5FI5jxS6CQSyZxHCp1EIpnz/H+nocO+GHp+1gAAAABJRU5E\nrkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f5ea3754e10>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"n_samples = 100000\n", | |
"\n", | |
"zs = np.array([rng.multinomial(1, ps) for _ in range(n_samples)]).T\n", | |
"xs = [z[:, np.newaxis] * rng.multivariate_normal(m, np.eye(2), size=n_samples)\n", | |
" for z, m in zip(zs, ms)]\n", | |
"data = np.sum(np.dstack(xs), axis=2)\n", | |
"\n", | |
"plt.figure(figsize=(5, 5))\n", | |
"plt.scatter(data[:, 0], data[:, 1], c='g', alpha=0.5)\n", | |
"plt.scatter(ms[0, 0], ms[0, 1], c='r', s=100)\n", | |
"plt.scatter(ms[1, 0], ms[1, 1], c='b', s=100)\n", | |
"plt.xlim(-6, 6)\n", | |
"plt.ylim(-6, 6)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"MCMC took 55 seconds, 20 times longer than the small dataset. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Applied stickbreaking-transform to pi and added transformed pi_stickbreaking to model.\n", | |
" [-----------------100%-----------------] 1001 of 1000 complete in 47.0 sec" | |
] | |
} | |
], | |
"source": [ | |
"with pm.Model() as model:\n", | |
" mus = [MvNormal('mu_%d' % i, mu=np.zeros(2), tau=0.1 * np.eye(2), shape=(2,))\n", | |
" for i in range(2)]\n", | |
" pi = Dirichlet('pi', a=0.1 * np.ones(2), shape=(2,))\n", | |
" xs = DensityDist('x', logp_gmix(mus, pi, np.eye(2)), observed=data)\n", | |
" \n", | |
" start = find_MAP()\n", | |
" step = Metropolis()\n", | |
" trace = sample(1000, step, start=start)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Posterior samples are concentrated on the true means, so looks like single point for each component. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(-6, 6)" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f5ea07f1a50>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.figure(figsize=(5, 5))\n", | |
"plt.scatter(data[:, 0], data[:, 1], alpha=0.5, c='g')\n", | |
"mu_0, mu_1 = trace['mu_0'], trace['mu_1']\n", | |
"plt.scatter(mu_0[-500:, 0], mu_0[-500:, 1], c=\"r\", s=50)\n", | |
"plt.scatter(mu_1[-500:, 0], mu_1[-500:, 1], c=\"b\", s=50)\n", | |
"plt.xlim(-6, 6)\n", | |
"plt.ylim(-6, 6)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"For ADVI with mini-batch, put theano tensor on the observed variable of the ObservedRV. The tensor will be replaced with mini-batches. Because of the difference of the size of mini-batch and whole samples, the log-likelihood term should be appropriately scaled. To tell the log-likelihood term, we need to give ObservedRV objects ('minibatch_RVs' below) where mini-batch is put. Also we should keep the tensor ('minibatch_tensors'). " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Applied stickbreaking-transform to pi and added transformed pi_stickbreaking to model.\n" | |
] | |
}, | |
{ | |
"ename": "TypeError", | |
"evalue": "For compute_test_value, one input test value does not have the requested type.\n \nBacktrace when that variable is created:\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py\", line 260, in dispatcher\n return self.dispatch_shell(stream, msg)\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py\", line 212, in dispatch_shell\n handler(stream, idents, msg)\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py\", line 370, in execute_request\n user_expressions, allow_stdin)\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/ipkernel.py\", line 175, in do_execute\n shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py\", line 2902, in run_cell\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py\", line 3006, in run_ast_nodes\n if self.run_code(code, result):\n File \"/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py\", line 3066, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"<ipython-input-12-6597477daea9>\", line 1, in <module>\n data_t = tt.matrix()\n\nThe error when converting the test value to that variable type:\nTensorType(float32, matrix) cannot store a value of dtype float64 without risking loss of precision. If you do not mind this loss, you can: 1) explicitly cast your data to float32, or 2) set \"allow_input_downcast=True\" when calling \"function\".\n[[ 0. 0.]]", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m<ipython-input-12-6597477daea9>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 6\u001b[0m for i in range(2)]\n\u001b[0;32m 7\u001b[0m \u001b[0mpi\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mDirichlet\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'pi'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ma\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0.1\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mones\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mxs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mDensityDist\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'x'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlogp_gmix\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmus\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0meye\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mobserved\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdata_t\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[0mminibatch_tensors\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mdata_t\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m/usr/local/lib/python2.7/dist-packages/pymc3/distributions/distribution.pyc\u001b[0m in \u001b[0;36m__new__\u001b[1;34m(cls, name, *args, **kwargs)\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[0mdata\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'observed'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[0mdist\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcls\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdist\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 25\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mVar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdist\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 26\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0mname\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__new__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# for pickle\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m/usr/local/lib/python2.7/dist-packages/pymc3/model.pyc\u001b[0m in \u001b[0;36mVar\u001b[1;34m(self, name, dist, data)\u001b[0m\n\u001b[0;32m 277\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnamed_vars\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mv\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 278\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 279\u001b[1;33m \u001b[0mvar\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mObservedRV\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdistribution\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdist\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 280\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mobserved_RVs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvar\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 281\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mvar\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmissing_values\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m/usr/local/lib/python2.7/dist-packages/pymc3/model.pyc\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, type, owner, index, name, data, distribution, model)\u001b[0m\n\u001b[0;32m 544\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mtype\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 545\u001b[0m \u001b[0mdata\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpandas_to_array\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 546\u001b[1;33m \u001b[0mtype\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTensorType\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdistribution\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 547\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 548\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTensorVariable\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m/usr/local/lib/python2.7/dist-packages/theano/tensor/var.pyc\u001b[0m in \u001b[0;36m<lambda>\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 280\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mtheano\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtensor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbasic\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxes\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 281\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 282\u001b[1;33m \u001b[0mshape\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mproperty\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;32mlambda\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mtheano\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtensor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbasic\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 283\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 284\u001b[0m size = property(lambda self: self.shape[0] if self.ndim == 1 else\n", | |
"\u001b[1;32m/usr/local/lib/python2.7/dist-packages/theano/gof/op.pyc\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *inputs, **kwargs)\u001b[0m\n\u001b[0;32m 619\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mins\u001b[0m \u001b[1;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnode\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 620\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 621\u001b[1;33m \u001b[0mstorage_map\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mins\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_test_value\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mins\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 622\u001b[0m \u001b[0mcompute_map\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mins\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mTrue\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 623\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m/usr/local/lib/python2.7/dist-packages/theano/gof/op.pyc\u001b[0m in \u001b[0;36m_get_test_value\u001b[1;34m(cls, v)\u001b[0m\n\u001b[0;32m 547\u001b[0m \u001b[1;31m# ensure that the test value is correct\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 548\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 549\u001b[1;33m \u001b[0mret\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtype\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfilter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtag\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtest_value\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 550\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 551\u001b[0m \u001b[1;31m# Better error message.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;32m/usr/local/lib/python2.7/dist-packages/theano/tensor/type.pyc\u001b[0m in \u001b[0;36mfilter\u001b[1;34m(self, data, strict, allow_downcast)\u001b[0m\n\u001b[0;32m 137\u001b[0m \u001b[1;34m'\"function\".'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 138\u001b[0m % (self, data.dtype, self.dtype))\n\u001b[1;32m--> 139\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 140\u001b[0m elif (allow_downcast is None and\n\u001b[0;32m 141\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mfloat\u001b[0m \u001b[1;32mand\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;31mTypeError\u001b[0m: For compute_test_value, one input test value does not have the requested type.\n \nBacktrace when that variable is created:\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py\", line 260, in dispatcher\n return self.dispatch_shell(stream, msg)\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py\", line 212, in dispatch_shell\n handler(stream, idents, msg)\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/kernelbase.py\", line 370, in execute_request\n user_expressions, allow_stdin)\n File \"/usr/local/lib/python2.7/dist-packages/ipykernel/ipkernel.py\", line 175, in do_execute\n shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py\", line 2902, in run_cell\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py\", line 3006, in run_ast_nodes\n if self.run_code(code, result):\n File \"/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py\", line 3066, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"<ipython-input-12-6597477daea9>\", line 1, in <module>\n data_t = tt.matrix()\n\nThe error when converting the test value to that variable type:\nTensorType(float32, matrix) cannot store a value of dtype float64 without risking loss of precision. If you do not mind this loss, you can: 1) explicitly cast your data to float32, or 2) set \"allow_input_downcast=True\" when calling \"function\".\n[[ 0. 0.]]" | |
] | |
} | |
], | |
"source": [ | |
"data_t = tt.matrix()\n", | |
"data_t.tag.test_value = np.zeros((1, 2)).astype(float)\n", | |
"\n", | |
"with pm.Model() as model:\n", | |
" mus = [MvNormal('mu_%d' % i, mu=np.zeros(2), tau=0.1 * np.eye(2), shape=(2,))\n", | |
" for i in range(2)]\n", | |
" pi = Dirichlet('pi', a=0.1 * np.ones(2), shape=(2,))\n", | |
" xs = DensityDist('x', logp_gmix(mus, pi, np.eye(2)), observed=data_t)\n", | |
" \n", | |
"minibatch_tensors = [data_t]\n", | |
"minibatch_RVs = [xs]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Make a generator for mini-batches of size 200. Here, we take random sampling strategy to make mini-batches. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def create_minibatch(data):\n", | |
" rng = np.random.RandomState(0)\n", | |
" \n", | |
" while True:\n", | |
" ixs = rng.randint(len(data), size=200)\n", | |
" yield data[ixs]\n", | |
"\n", | |
"minibatches = [create_minibatch(data)]\n", | |
"total_size = len(data)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Run ADVI. It's much faster than MCMC, though the problem here is simple and it's not a fair comparison. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# Used only to write the function call in single line for using %time\n", | |
"# is there more smart way?\n", | |
"def f():\n", | |
" return pm.variational.advi_minibatch(\n", | |
" model=model, n=1000, minibatch_tensors=minibatch_tensors, \n", | |
" minibatch_RVs=minibatch_RVs, minibatches=minibatches,\n", | |
" total_size=total_size, learning_rate=1e-1)\n", | |
"\n", | |
"%time means, sds, elbos = f()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The result is almost the same. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"from copy import deepcopy\n", | |
"\n", | |
"mu_0, sd_0 = means['mu_0'], sds['mu_0']\n", | |
"mu_1, sd_1 = means['mu_1'], sds['mu_1']\n", | |
"\n", | |
"fig, ax = plt.subplots(figsize=(5, 5))\n", | |
"plt.scatter(data[:, 0], data[:, 1], alpha=0.5, c='g')\n", | |
"plt.scatter(mu_0[0], mu_0[1], c=\"r\", s=50)\n", | |
"plt.scatter(mu_1[0], mu_1[1], c=\"b\", s=50)\n", | |
"plt.xlim(-6, 6)\n", | |
"plt.ylim(-6, 6)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The variance of the trace of ELBO is larger than without mini-batch because of the subsampling from the whole samples. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"plt.plot(elbos)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.6" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment