Skip to content

Instantly share code, notes, and snippets.

@taku-y
Created August 18, 2016 14:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save taku-y/841937617c49bed1235e70cbd47ace8e to your computer and use it in GitHub Desktop.
Save taku-y/841937617c49bed1235e70cbd47ace8e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"application/javascript": [
"IPython.notebook.set_autosave_interval(0)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Autosave disabled\n",
"Populating the interactive namespace from numpy and matplotlib\n",
"Iteration 0 [0%]: ELBO = -3804.85\n",
"Iteration 100 [10%]: Average ELBO = -3188.88\n",
"Iteration 200 [20%]: Average ELBO = -2622.51\n",
"Iteration 300 [30%]: Average ELBO = -2518.63\n",
"Iteration 400 [40%]: Average ELBO = -2518.25\n",
"Iteration 500 [50%]: Average ELBO = -2518.27\n",
"Iteration 600 [60%]: Average ELBO = -2518.25\n",
"Iteration 700 [70%]: Average ELBO = -2518.31\n",
"Iteration 800 [80%]: Average ELBO = -2518.23\n",
"Iteration 900 [90%]: Average ELBO = -2518.33\n",
"Finished [100%]: Average ELBO = -2518.17\n"
]
}
],
"source": [
"%pylab inline\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from scipy import stats\n",
"import pymc3 as pm\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = np.random.RandomState(0).randn(100)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Applied log-transform to sd and added transformed sd_log_ to model.\n"
]
}
],
"source": [
"with pm.Model() as model: \n",
" mu = pm.Normal('mu', mu=0, sd=1, testval=0)\n",
" sd = pm.HalfNormal('sd', sd=1)\n",
" n = pm.Normal('n', mu=mu, sd=sd, observed=data)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iteration 0 [0%]: ELBO = -3106.81\n",
"Iteration 2000 [10%]: Average ELBO = -540.76\n",
"Iteration 4000 [20%]: Average ELBO = -221.06\n",
"Iteration 6000 [30%]: Average ELBO = -171.9\n",
"Iteration 8000 [40%]: Average ELBO = -157.41\n",
"Iteration 10000 [50%]: Average ELBO = -151.36\n",
"Iteration 12000 [60%]: Average ELBO = -148.73\n",
"Iteration 14000 [70%]: Average ELBO = -147.86\n",
"Iteration 16000 [80%]: Average ELBO = -147.57\n",
"Iteration 18000 [90%]: Average ELBO = -147.47\n",
"Finished [100%]: Average ELBO = -147.46\n"
]
}
],
"source": [
"advifit = pm.variational.advi(model=model, n=20000)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`advi()` returns `ADVIfit`, which is just a named tuple of three variables. `ADVIfit.elbo_vals` is the trace of ELBO during optimization. It can be used to confirm the convergence of the optimization. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8d0356e7b8>]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nUaF86dSpU1q0aJEuXLigtrY2FRcXa9y4cTpy5IiWLVsmm82mzMxMlZSUSJJKS0u1e/du2Ww2zZs3\nT7m5uWr1AQluAAAPuUlEQVRublZhYaGampqUkJCgtWvXKjk5WZWVlXrhhRdkt9uVk5OjefPmhbXD\nAAAgUEgzA2+//ba++c1v6vXXX9ePfvQjvfjii5KklStXasmSJdq2bZsaGxu1b98+nThxQuXl5dqx\nY4defvllrV69WqZpasuWLcrKytK2bduUl5enjRs3SpJWrFihdevWafv27dq/f7+OHTsWvt4CAIBO\nQgoDTz31lKZPny5JOnnypIYMGaLW1ladOHFCY8eOlSRNnTpVlZWVOnDggHJycmS32+VwOJSRkaGj\nR4+qqqpKeXl5kqQpU6Zo//79qq6uVkpKilwulwzDUG5urqqqqsLUVQAAEExIpwkkyev16vvf/77O\nnj2r1157TadPn1ZKSop/ucPhUG1trVJTU+VwOPzlaWlpqqurk9frVWpqakBZfX19QF2Hw6Hq6upQ\nmxiAVxMAABBcl2Fg165dKisrk2EYMk1ThmFo/vz5ys7OVllZmd577z0VFxdr1apVMk2zyw36fL5O\nZR3rDVYeLuFbEwAAA0uXYcDtdsvtdgeUHTp0SI2NjUpOTlZOTo4WLVqktLQ0nTlzxl+npqZGLpdL\nTqdTx48fD1ru9XqVmJiompoaOZ1OOZ1O1dXVBdR1Op1ddiI9PanLOomJcd2qh97HuEQuxi6yMX7o\nENJpgoqKCn388ceaPXu2PvnkEw0ZMkR2u10jRozQ4cOHNWHCBFVUVKigoEB33HGHXn31VS1YsED1\n9fWqra3VqFGjlJ2drfLycj377LOqqKjQpEmTNHToULW0tOjkyZNyOp3as2eP1q5d22V76uqauqzT\n3Hy+W/XQu9LTkxiXCMXYRTbGL7KFO8iFFAbmzZun4uJi/e53v1Nra6uWLVsmSVq8eLGWLl0q0zQ1\nfvx4TZw4UZKUn58vj8cjwzC0fPlySVJBQYGKiork8XiUnJysNWvWSJJKSkq0cOFCSdKMGTM0fPjw\nG+0jAAC4DsMM54n5PnK9dDtn9buSpCe+dpemTritt5qEbuLoJHIxdpGN8Yts4Z4Z4AmEAABYHGEA\nAACLIwwAAGBxhAEAACyOMAAAgMURBgAAsDjLhAHeTQAAQHCWCQMAACA4wgAAABZHGAAAwOIIAwAA\n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\nS+MJhAAAWBxhAAAAiyMMAABgcWG9gLC3rVq1Sh988IEMw9DixYt177339nWTIOngwYP6x3/8R40e\nPVqmaSozM1Pf/e53VVRUJNM0lZ6erp///OeKjo7W22+/rddff112u11ut1t///d/r7a2NhUXF+vk\nyZOy2+1atWqVbrvttr7u1oD36aef6h/+4R/01FNPyePx6L//+79veMyOHDmiZcuWyWazKTMzUyUl\nJX3dzQHr6vH7yU9+og8//ND/cLfvfOc7ys3NZfz6oZ///Oc6fPiw2tvb9b3vfU/33ntv7//umRHq\n4MGD5jPPPGOapml+9tln5uOPP97HLUKHAwcOmAsWLAgoKy4uNnfv3m2apmn+8pe/NLdv326ePXvW\nfOSRR8zm5mbz/Pnz5owZM8yGhgbzrbfeMv/pn/7JNE3TfP/9980f/vCHvd4Hqzl79qxZUFBgLlmy\nxHzjjTdM0wzPmBUUFJgffvihaZqmuXDhQvO9997rg94NfNcavz179nSqx/j1L1VVVeb3vvc90zRN\n8/Tp0+bkyZPN4uJi85133jFNs/d+9yL2NMHvf/97TZs2TZI0cuRINTY2qqWlpY9bhQ7mVTepHDx4\nUFOmTJF06V0UlZWV+uCDDzRu3DglJCQoNjZWEyZM0B/+8IeAsX3ooYf8z67AzRMbG6vS0tKAh3zd\nyJj98Y9/VGtrq06cONHpfSUIv2DjFwzj1/88+OCDevHFFyVJycnJOnv2rA4dOqSpU6dK6r3fvYgN\nA16vN+A9BqmpqfJ6vX3YIlzp2LFjmjdvnjwejyorK3X+/HlFR0dLuvQuimDvrXA4HP73VnSUG4Yh\nm82mtra2PumHVdhsNsXExASUnTt3LuQxMwxDXq9XKSkpneoi/IKNnyS98cYbmj17tgoLC3X69OlO\nfzcZv75nGIbi4uIkSWVlZZo8eXKf/O5F9DUDV7r6SBR9Z/jw4frBD36gr3/966qurtaTTz4ZsDO/\n1lhdqzzY+yzQu3o6Zubl943we9l3HnvsMaWkpGjMmDHauHGj1q1bp/vuuy+gDuPXf/zbv/2b/vmf\n/1mbNm3S1772NX95b/3uRezMQMe7DTrU1tYqPT29D1uEDi6XS1//+tclScOGDdMtt9yixsZGXbx4\nUVLg+ymufhfFle+tkOQPEVFRAya3RoyEhISQx8y8fOHTmTNnAup2510jCI+vfOUrGjNmjKRL08Sf\nfvqpXC4X49cP7du3T7/+9a9VWlqqxMTEPvndi9gwkJ2drd27d0uSPvroI7lcLsXHx/dxqyBJ//Iv\n/6LNmzdLkv/V1N/61rf0zjvvSJJ2796tSZMmady4cfrwww/V3NyslpYW/fGPf9T999+v7Oxsf913\n331XWVlZfdYXK5s4caL/dyyUMbPb7RoxYkSn95WgdyxYsEDV1dWSpAMHDuiuu+5i/Pqh5uZmrVmz\nRq+88oqSki69OKovfvci+nHEv/zlL3Xw4EHZ7XYtXbpUmZmZfd0kSGppaVFhYaGamprU1tamH/zg\nBxozZowWLVqkixcvaujQoVq1apXsdrsqKipUWloqm82mgoICTZ8+XT6fT88//7z+/Oc/KzY2VqtX\nr5bL5errbg1oH330kVavXq2TJ08qKipKLpdLv/jFL1RcXHxDY3bs2LGA95UsWrSor7s6IAUbv4KC\nAv3qV7/SoEGDlJCQoJUrV8rhcDB+/czOnTu1bt063XHHHf4p/p/97Gd6/vnne/V3L6LDAAAAuHER\ne5oAAACEB2EAAACLIwwAAGBxhAEAACyOMAAAgMURBgAAsDjCAAAAFkcYAADA4v5/2+RsxC4C1mcA\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8d122f2cf8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(advifit.elbo_vals)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" [-----------------100%-----------------] 500 of 500 complete in 0.2 sec"
]
}
],
"source": [
"with model:\n",
" step = pm.NUTS()\n",
" trace = pm.sample(500, step)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fb2a8bb4278>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb2a980cb70>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = sns.distplot(trace['mu'], label='NUTS')\n",
"xlim = ax.get_xlim()\n",
"x = np.linspace(xlim[0], xlim[1], 100)\n",
"y = stats.norm(means['mu'], sds['mu']).pdf(x)\n",
"ax.plot(x, y, label='ADVI')\n",
"ax.set_title('mu')\n",
"ax.legend(loc=0)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fb2a8af8710>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ndF2joQAWEZHzcj7Psbs9TpL0j+nY+fMXEon0s337NlasuOgcjzb56DRUvb1B4vH44N9TMVWl7gGL\niEja+u///Ws8+ujD532e229fz8aNG/hv/+0eHnnkFxw5cngcqhueAlhERNLW9OkVzJ+/gJdffmnY\n/Ua6pzx9egW//e0TfOUr9xGLxfjmN7/K888/M56lnkYBLCIiae0LX/gS//7vj5FIDHQhOxyOIa93\nd3dRVFT8saOGBnIkEsFut3Pxxau4775v8sMfPsiLLz4/kWUrgEVEJL0VFBRy5ZVX89RTTwCwdOky\nNm7cAEA8HueFF57j0ktXf+yooesQ/dmffY1t27YO/r21tZVp06ZPaN0ahCUiIucl3Bca87E2ovR9\nbBT0WHz2s/fw9NN/BODP/uwv+Lu/+zF/+tOTxONxPvGJa1m16rKPHTG0Bfzd7/4lP/3pj3nssV9i\nt9vxer1861vfGVMto6XlCM8gE5bHAl3HZDLScoRv7W4a1SjSvlCQK5aUaznC85AJ1wCT5zrO9zng\n4mIv7e3n/hzwZKLlCEVEJOUMwzivD4R5eV6i0al5N3TEAP7DH/7A008/jWEYmKbJ3r172b59eypq\nExERyVgjBvCdd97JnXcOzATy3nvvsWHDhgkvSkREJNOdU7v/F7/4BV/96lcnqhYREZEpY9QBvHv3\nbsrLyykqKprIekRERKaEUQ/C+v3vf8/tt98+qn3HOiJsMsmEawBdx2RytmtwOJJ43J24Pc4Rz2Ej\nSnGxl7w8674fmfxvkW50Helt1AG8detWvv/9749q38kwNP58TJbh/edL1zF5DP8YUpDeUGRUE9L3\nhSK0twctGzWa6f8W6UTXMXmM9QPEqH6KW1tbcbvdZGXpqSUREZHxMKoAbmtr071fERGRcTSqAF68\neDGPPvroRNciIiIyZUzN6UdEREQspgAWERGxgAJYRETEAgpgERERCyiARURELKAAFhERsYACWERE\nxAIKYBEREQsogEVERCygABYREbGAAlhERMQCCmARERELKIBFREQsoAAWERGxgAJYRETEAgpgERER\nCyiARURELKAAFhERsYACWERExAJZVhcgkk5M0yQYDIx6f6/Xh2EYE1iRiKQrBbDIOQgGA2x89wi5\nLveI+4b7Qly7qhqfLy8FlYlIulEAi5yjXJcbl9trdRkikuZ0D1jEIolkkoN1XTy9uYFdNT30R+NW\nlyQiKaQWsIgFenoj/OS3O2jq6BvcVtdayyWLSqgq91lYmYikigJYJMV6wzH+7j930tTRx6pFpSyb\n7eWdfa3srQ3y5q4m7DaDylJ1cYtkOnVBi6RQLJ7k73+/i8a2EJ9YUcF/v2URCyvzmDfdw42XVWIY\nsO1AG/FE0upSRWSCKYBFUmjDu8epORHg0kWlfPbauUMeUSrwOlk4s4DecIx9tV0WVikiqaAAFkmR\ntu4wz75znDy3g89dNx/bGZ4PXlpdhNNhZ09NB6FwzIIqRSRVFMAiKfLbTYeJxZOsX1uNy3nm4ReO\nLDvL5/mJJ0z2H1crWCSTjSqA//SnP3Hrrbdyxx138Prrr090TSIZZ/uBVnYeaWdBZT6XLioddt/Z\n07w4sm0cawqSNM0UVSgiqTZiAHd3d/OLX/yCxx9/nEceeYSXX345FXWJZJT/3HQQgLs+MXfEqSnt\nNhszS72EI3FaOvuG3VdE0teIAbx582Yuv/xycnNzKS4u5q/+6q9SUZdIxjhU382+Y50snVM06seL\nZk8beBa45sTo550WkfQyYgA3NjYSDof5H//jf/C5z32Od955JxV1iWSM57ccB+DGS2eO+piSglzc\nzizqmnv1SJJIhhpxIg7TNOnu7ubhhx+moaGBz3/+87z66qupqE0k7Z1o7+ODox0sqipk3oz8UR9n\nGAazp/nYXdNJfWuvZscSyUAjBnBxcTHLly/HMAxmzJiB2+2ms7OTwsLCsx7j96f/LD6ZcA2g6xhv\nDkcSj7sTt8c54r42omw5NDCS+Y61c896DWc75wXVfnbXdNLY1sfSuSWD5ywu9pKXZ933Y7L8W5yP\nTLgG0HWkuxED+PLLL+f+++/ny1/+Mt3d3fT19Q0bvgBtbcFxK9AKfr837a8BdB0TIRAI0huKkKR/\nxH17esJs2dNKcZ6TixaUnvUaznbObBt4crOpbw3SEwhjsxn0hSK0tweJRq15gnAy/VuMVSZcA+g6\nJpOxfoAYMYBLS0v55Cc/yfr16zEMg+9///tjeiORqaa+LUw0nuTKC6dhsw0/8vlsyotcHG7ooSPQ\njz8/d5wrFBErjWoxhvXr17N+/fqJrkUkoxxr7sMw4Iol5WM+x7RiN4cbemjq6FMAi2QYzYQlMgE6\nA/109cZYNDOPAm/OmM9TVugCoKk9NF6licgkoQAWmQCHG3oAuGxh8XmdJ8dhp8jnpK07TCyux5FE\nMokCWGScJZMmtU1BcrJtLJyZd97nKy92kTShpUuzYolkEgWwyDhr6eojEkswvdiJfYyDrz5qWpEb\ngKZ2BbBIJlEAi4yz480Dj1RUFI/PoCl/wUCQN3XoPrBIJlEAi4yjZNKkrqUXp8OOP88xLue022z4\n83Pp7o0S1X1gkYyhABYZR61dYfqjCSpLPSOuenQu/PkDs2R1BqLjdk4RsZYCWGQc1Z7sfp5ZNr5T\n6/kLBrqzO4IKYJFMoQAWGSemaVLXEiQn205pgWtcz+3POxnAagGLZAwFsMg46QhE6I8mqChxj3nq\nybPJcdjxuR10BmMkk+a4nltErKEAFhknJ07OVjW92D0h5/fnO4knTJq7Rl4IQkQmPwWwyDhpbAth\nAOVFExXAA93Qx5p7J+T8IpJaCmCRcRCJJWjvDlOc7yTHYZ+Q9yg5GcC1zXoeWCQTKIBFxkFzRx8m\nA6sXTZQ8j4Nsu0GtWsAiGUEBLDIOGif4/i+AYRgUeh209UQI9mk0tEi6UwCLnCfTNDnRHiIn205h\nnnNC36vQmw18+LyxiKQvBbDIeeoJRenrj1Ne7MI2jrNfnUmBd2B6y2NNgQl9HxGZeApgkfPU3Dmw\nSlF50fhOvnEmBadawE1qAYukOwWwyHlq7QwDjPvsV2eS67CT587mWFMA09SEHCLpTAEsch5M06Sl\nq4/cHDteV3ZK3rOyxE1PKEpXMJKS9xORiaEAFjkPveEY4UiCkgLXuK5+NJzKkoGW9jF1Q4ukNQWw\nyHloGex+zk3Ze1aWDDzqVNusgVgi6UwBLHIeWroGBmCVFqYugGf4B1rAtRoJLZLWFMAi56GlM4wj\ny0a+Jydl7+lyZlFSkEttc1ADsUTSmAJYZIxC/TF6wzFKCnJTdv/3lKpyH6H+OK3d4ZS+r4iMHwWw\nyBgNPn5UOPGPH31cVZkX0IQcIulMASwyRm09AwF8apnAVJpV7gM0IYdIOsuyugCRdNXe3Y9hQKHv\n/O7/JswkTYljBENd2Aw7duzYjWzKsmeSn+U/4zEzS70YhlrAIulMASwyBomkSWcgQqE3hyz7mTuS\nTNMkGBwISIcjSSAwtLXaFw/zXtsONre8RyDeC/Ghx+8Ov8207Dksyr2EgqySIa/lOOxMK3ZzvCVI\nIpnEblNnlki6GTGAt27dyje+8Q3mzp2LaZrMnz+f733ve6moTWTS6gr2kzRNivLO3v0c7gvx+vZO\n8guL8Lg76Q19OHNVW7KR7bFXiBPDZtqpYC5zfcswDIOEGSeSDHM4spMTsaOciB1lenY1F7vXDTl/\nVZmPxrYQTe19VJR4JuxaRWRijKoFfMkll/DQQw9NdC0iaaO9ux+A4hGWH3TmunC5vbg9TpIMHHM8\nsp/3QpswMFiaewW+YDE5tlwKs4e2ciscc2mJ17G3bwuNsSP0BQNcZP8whKvKvby1u4ljTQEFsEga\nGlW/lZ41FBmqvedkAOePfv1f0zQ5EN7G1tBLZBnZXOW9jfm5K8nGccb9DcOgLHsma32fZpZjEV2J\nVrbEXiAY6wU+MhBLawOLpKVRBfDRo0f56le/yt13383mzZsnuiaRSa+9p59su40895nD80z2hbew\nO/w2uTYP13g/jT97+qiOMwwbF7nXUZ1zIUGzi0cP/Iau/m5mlHjIshsaiCWSpkbsgp45cyb33Xcf\nN9xwA/X19Xz+859n48aNZGVp/JZMTdF4kkAoSlnh6BdgqA8fZV//Vty2PK723YHL5j2n9zQMg2Wu\nNZjxJEcju3nkg8f41kX3MaPEQ11LL7F4kuwsDcQSSScjpmhpaSk33HADADNmzKC4uJiWlhamTz/7\np3e//9x+uUxGmXANoOsYbw5Hkv7YwJ+n+T14PWfvgg6HHNhs2RjOKG80P4sdO+tKbqPI4T/jfsOd\n65SVXE6Zy8Hbje+zqekVFlRVc6wpSG8sybzyvPO6ttGaLP8W5yMTrgF0HeluxAB+5plnaGtr4957\n76WtrY2Ojg5KS0uHPaatLb3vSfn93rS/BtB1TIRAIEhjWwgAnyuLYG//WfcNhaJgi/F2bAORZD8r\nXGtxRPMIRvtP289mS5CTe/ZzndLXF+XaWWs53HWcZw9uYo1v4BfXjv3NFOROfK/UZPq3GKtMuAbQ\ndUwmY/0AMWKf1dq1a9m6dSt333039913Hz/4wQ/U/SxTWlfvQBN4pBHQAEeNXXTEm5jtWsjsnAvG\n5f1z7A6+uPi/YjfsbOt7CbIiug8skoZGTFK3280//dM/paIWkbTQ3RvD6bCTmzP8j083bdQZB/DY\n8rm88JP0943f0wSV3go+Ned6njzyHM45ezjWVDBu5xaR1NCoDZFz0Ncfpy+SoMCbM+wALNNMcti+\nA4BL3NeRbRv/5QrXzriShYXzMPLaaDGP0h+Nj3yQiEwaCmCRc9DYMbAAQ6Fv+O7n2ug+eo1uysxZ\nFGWXT0gtNsPGZ+bdhmHayKo4xNETXRPyPiIyMRTAIuegsb0PGH4Bhlgywu6+zdjNLOaYF05oPX5X\nEQvdy7HlhHm14e0JfS8RGV8KYJFzMBjA3rMH8L7+rUTMMJXJBTiZ+LWCb5qzDjOezcHIewSjvRP+\nfiIyPhTAIuegsT2M3WbgPcsMWMFEF4f7d+Ky+Zhhzk9JTTOLC7G1zCNpxHj+2MaUvKeInD8FsMgo\nxeJJmrvC5LmzsJ1lANbuvs2YJLnQdSV27CmpyzAMZmVfQDLs4q3Gd2kOtaTkfUXk/CiARUbpRHuI\nZBLy3dlnfD2Q6KAxdoQCeynTs+ektLaq8nxi9fNJkuSZmhdT+t4iMjYKYJFRqmsZmK0n33PmAD4Q\n3gbAwtyLRz1H9HipKveR7C4hzyhhV9temkOtKX1/ETl3CmCRUaprHRjglHeGFnAo0UNd9CA+exHT\nsmenujSqyn2AgSe4ABOTTXWvp7wGETk3CmCRUapvCWIYkOc+fQasA/3vY2Ky0HlRylu/AAXeHPI8\nDtrq8ih1+dnavJ3uSE/K6xCR0VMAi4xC0jSpa+2lJN9Jln3oj004GaI2sg+3LY8KxzyLKoSqMh89\nvTEuK7mchJnglbo3LatFREamABYZhfbuMP3RBNOLc0977VD/dpIkWOC8CJth3Y/UrPKBFVkK4lXk\nOXy8dWILfbE+y+oRkeEpgEVGoa5l4P7v9OKhE2tEk/0c7d9NruFhZs4CK0obNHAfGOqaw6ytvJJI\nIsobje9YWpOInJ0CWGQUTg3Aml40NICPRfaRIMZc5zLshrXLdM4qG2gB1zYFuGLaKnKzcnm1/i2i\niZildYnImSmARUah/uQjSB/tgjZNk6ORD7BhpypnsVWlDfK6HBTnOTnWFCDHnsOV0y+lNxbi/dZd\nVpcmImegABYZhbrWXvI9DryuDx9BaokdJ5TsodIxH4dt+NWRxotpmgSDAQKBnjN+VRTnEuqPc6yh\njeW+xRgYvKluaJFJydo+M5E0EOiL0hWMsHRO0ZDtRyIfAFDtXJqyWsJ9IV7f3kl+YdEZX08kEwBs\nfL+RYneS+YVzONBzhLpgA5XeipTVKSIjUwtYZAT1J+//zijxDG4LJQI0xY5RaC+lIKs0pfU4c124\n3N4zfpX78wAI9kOuy80q/0oA3mrcktIaRWRkCmCREdSfHAE9s9Q7uK0mshuAOc6JXe/3XBX5BrrC\nO3r6AZiXN5siZwHvNe8gHA9bWZqIfIwCWGQEp+aAnlE60AJOmHFqIntxGE5mOOZaWdppsrNs5Hkc\ndAT6SZomNsPG5dNWEU3GeLd5u9XlichHKIBFRlDX2kuOw44/f2AEdFOylqgZpipnseWPHp1JSX4u\n8YRJd+/A40erp12C3bDzZuMWTNO0uDoROUUBLDKMaCxBU0eIGSWewTWA6xIHAZids8TK0s6qpGDg\ng0J7IAqA1+Fhmf8CmkMtHOk+ZmVpIvIRCmCRYTS2hzBNqDw5AKu9v5Mus4WSrBl47HkWV3dmpQUD\nk4W090QHt105/TIA3jqhwVgik4UCWGQYp+7/Vp4cgLW9Y+DRo1k5iyyraSTu3Cxczizae6KDXc7V\n+VWU5Bazq22PBmOJTBIKYJFhfPQRpKSZZHvHbrLIZrpjjsWVnZ1hGJQW5BKNJ2np6h/ctqp8JbFk\nnO2tH1hcoYiAAlhkWHWtvRgGTC92c6jrKD3RAOW2KrKM7JEPtlDJyW7omqbewW0Xl64A4N2m9y2p\nSUSGUgCLnEXSNGlo7aW8yI0j286Wk8FVYZ9cjx6dSWnhwECsjwZwUW4B8/LncLSnlra+DqtKE5GT\nFMAiZ3FqDeAZJR7C8X52tu2mKKeAAqPE6tJGlOd24MiycfQjAQywqnxgZqx3m9UKFrGaAljkLE7d\n/60s8bC9dRexZIyVRUsxTj6ONJkZhkFxnoOuYJT2ng8HXS3zL8Fhd7C1+X2SZtLCCkVEASxyFnUt\nHw7A2tL0PgYGy4tTt/DC+fLnOQDYf7xrcJszK4fl/iV09HdxVM8Ei1hqVAEciUS49tpreeqppya6\nHpFJ41QL2JUXpaanlvkF1eQ7fBZXNXol+TkA7K/tGrJ9VdlAN/QWdUOLWGpUAfzwww+Tn58/0bWI\nTCr1rUHy3A4OBvYCcEnZCosrOjc+VxY+Vxb7ajuHTEE5t2A2BTn57Gj9gEgiOswZRGQijRjANTU1\n1NTUsGbNmlTUIzIp9IZjdAQiVJS4ea9lJ9m2LC70L7a6rHNiGAbzKnwE+mI0toUGt9sMG6vKVhBJ\nRNndvs/CCkWmthED+MEHH+R//a//lYpaRCaNhpPdzwUlEVr6WrmgaCHOLKfFVZ27eRUDXeb7ajuH\nbF9ZugyA91t2pbwmERkw7FIuTz31FMuXL2f69OkAo15Jxe/3jrzTJJcJ1wC6jrHavL8VgGR+E3TB\nJ+atxu/34nAk8bg7cXtGDuNwyIHNlo335L7esxzz8f3O5ZzDsRFl+YJS/uOVWo40Bbn7I99Dv99L\n5cHp7OsS5wQHAAAgAElEQVQ8iCvPjtvhGvF8Hz023WXCNYCuI90NG8Cvv/46DQ0NvPrqqzQ3N5OT\nk0NZWRmXXXbZsCdtawuOa5Gp5vd70/4aQNdxPvYfbQdMjvbuxWl3UpFVSVtbkEAgSG8oQpL+Ec8R\nCkWx2RLk5Pbj9TgJ9p75mI/udy7nHElfKIIZjVFe5GL3kXaamnvIsn/Y6XVh0RLqehp5ef8WLpt2\n8Yjng8z4P5UJ1wC6jslkrB8ghg3gn/3sZ4N//vnPf05FRcWI4SuSCepbe3Hk9RCIBbi07CKy7ZN7\n6snhLJpZyMvbGzja2MP8yoLB7ReVXsgzNRvY1rJz1AEsIuNHzwHLlGeaJoFAz+BXZ1cXje0h3OUt\nACz0zh18LRgMQJqtab+oaiB09xwbeh+4OLeImb4ZHOw6QiCa3i0QkXQ0bAv4o+67776JrEPEMsFg\ngI3vHiHX5QagOxQjYSaIuBtx4KT5eA6tRhMAne0tuNw+XJ70uWe1aGYhWXYbHxzt4I41Q1dxuqh0\nGccD9exo3c2aitUWVSgyNakFLALkuty43F5cbi/hmB2brwPTHqUyZz4eT97ga85ct9WlnrMch50F\nlfnUt/bSGRh673hFyVIMDLa17LSoOpGpSwEs8jFdwQj2ooEW7wzHPIurGR8XVhcD8MHRoasg5efk\nUZ1fRU1PLZ39XWc6VEQmiAJY5GM6An3Y81vJNbwUZZVbXc64WDqnCDg9gGGgGxr0TLBIqimART7C\nNE26jAaMrDgzcqrTYuWj0fDn51Je5GJfbSfRWGLIa8tKlmAzbGxvVQCLpJICWOQj+iJxzLyB7ucK\nx1yLqxlfF1YXE40nOVDXPWS7J9vN/IJq6oKNtIc7z3K0iIw3BbDIR5zqfs5KuCi0l1ldzri68GQ3\n9K4j7ae9trxkCQA7Wj9IaU0iU5kCWOQjGvprMbLi+I3ZGdP9fEp1RR6e3Gy2H24j+bFpZS8svgCb\nYWNH626LqhOZehTAIh/RzsAi9VW5mTH6+aPsNhvL5hbT0xul5kRgyGseh5t5+XM4HqynI6zR0CKp\noAAWOSlhxonkNkLUyTRXhdXlTIiV8/wAbD/Ydtprg93QbeqGFkkFBbDISXV9tWCP4wxXZFz38ymL\nZhXgdNh5/1DraaubXei/AAND3dAiKaIAFjmpNnwIgBJjtsWVTJzsLDtL5xTR1t1P/ck1j0/xOjzM\nLZhDbaBOk3KIpIACWARImAk6qSUZcTLdnZndz6esnF8CwPtn6IZecbIbeqdawSITTgEsAnQkT5C0\nxUh2lVKcl2t1ORNqyexCsrNsbDt4ejf0Mv8SDAy2K4BFJpwCWARoStYCkN07Hadj1IuEpSWnI4ul\nc4po6uijoS005DWvw8Pc/NkcCxynq7/7LGcQkfGgAJYpL2EmaU7UYUZzKM7OjLmfR7JqYSkAW/e3\nnPbaqdHQu9r2prQmkalGASxTXm2wjrgRIdFVkvHdz6csnVNEjsPOu/taTuuGXupfDMDONnVDi0wk\nBbBMeXu6DgCQ6CqjKM9pcTWp4ci2s2JuMe09/dQ0DZ2UIz8nj9l5MznSfYxgtPcsZxCR86UAlikt\naSbZ230Q4g6SgQKKfFMjgAEuOdUNva/1tNeW+ZdgYvKBuqFFJowCWKa0Yz11BGO9JLpKyPc4cWTb\nrS4pZRZXFeJ2ZrH1QAvJ5OmTcgDsbNtjRWkiU0JmD/cUGcGp+5zxzlL8+Zl1/9c0TYLBwLD7LJ2d\nzzv72jlY38XCmYWD24tzC5nhnc7BriP0xcK4sjPreyMyGSiAZcoyTZOdbXvIIptwoIiSyswKmXBf\niNe3d5JfWHTWfbLtAy3ft3c1DAlgGOiGrg82srt9H6vKV05orSJTkbqgZcqqDzbS2d+FKzINTFvG\ntYABnLkuXG7vWb8qpxXhzLaxq6aLeCI55NhlJ7uhd6kbWmRCKIBlytpxsvu5r8VPTrYNryvb4opS\nz2YYVPhzCfUn2Fc7dP7nMncJZe5S9nUepD8esahCkcylAJYpaaD7eTfZtmyCrQUU+RwZuwLSSCqK\nB0Z+v/1BPYFAz5CvRb65xJJx3m/YQSDQQ09Pz2nPDYvI2OgesExJzX2ttPa1U5kzl0DSTpHPYXVJ\nlsm1R3Fmw44jXVQU5WC3f/hBJJocuH/8au0OehrzsRn1rL5gBj5fnlXlimQMBbBMSTtbB+5r5vRN\nB6B4CgewYRhML8rhaHOEzj6DmWXewddyTQ/unjzakg3kuHLJNpLDnElEzoW6oGVK2tW2G7thp7Mx\njyy7Qb5n6t3//ajphQMfQI59bFYswzCY7phDnBitsXorShPJWApgmXLaw53U956gOm8Ojc0RKkvc\n2G1T8/7vKT5XFvkeBw2tISKxxJDXKrKrAWiIHrGiNJGMpQCWKefUYzXFVGEC8yq8wx8wRVSV+0ia\nJnXNwSHbC7PKcBpuTsRqSJrqghYZLyMGcH9/P9/85je55557+MxnPsNrr72WgrJEJs7Otj0YGPS3\nDwwwmlfhs7iiyaFq2sD34VjT0AA+1Q0dNftpizdZUZpIRhoxgF955RWWLFnCb37zG372s5/xN3/z\nN6moS2RC9EQCHOs5TnV+FUdq+8lx2JlZ4ra6rEnBk5tNSUEuzZ199PXHhrw23TEHgIZojRWliWSk\nEUdB33jjjYN/PnHiBOXlU2PBcslMu9r2YmIy17uADzr7WDqnaMhjN1NdVbmP1q4wx5qCLK76cGpK\nf1YFDsNJY/QYST0HLDIuRn0P+K677uJ//s//yf333z+R9YhMqFP3f7ND0wBYNKtwuN2nnJllXgwD\nak4MHQ1tM2xMy55N2AzREDphUXUimWXUAfz444/z8MMP8+d//ucTWY/IhAnF+jjUfZSZ3hkcrx/o\nYl00s8DiqiYXp8PO9GI3XcEI3b1Dp5881Q29t+uAFaWJZJwRu6D37t1LUVERZWVlLFiwgEQiQWdn\nJ4WFZ285+P3pP6o0E64BdB0ftffYHpJmkstmLefp97rJ9+SwbFEZgUAAj7sTt8c54jnCIQc2Wzbe\nMex7tmPO55zjse/H91s0u4iGthCN7X3MKPtwxqs55jze7c1mf/AwxcWetJ66Uz8Xk0umXMe5GjGA\n33vvPU6cOMH9999Pe3s74XB42PAFaGsLDvv6ZOf3e9P+GkDX8XFv1rwHgC8yg87AUVYtKqW9vZdA\nIEhvKEKS/hHPEQpFsdkS5OSe275ej5Ng75mPGes5x2vfj+9X7Mshy25w8HgXi2bmDwnacsdM6vuO\nsPPYISq800asYTLSz8XkkgnXMdYPECN2QX/2s5+lo6ODu+++m6985Ss88MADY3ojESv1x/vZ33mY\nae4yGuoHBhEtnXP2dXKnsiy7jcpSL73hGG3dQ8O7IrsKGHiUS0TOz4gt4JycHH7605+mohaRCbO3\n4wDxZJxl/gvY+VY7NsNgyWwF8NlUlfuoORHgWFOAkoIP10kud8wkqy+LnW27uXn2dRZWKJL+NBOW\nTAk7TrbYqj3zqTkRYN6MPDy5U3v+5+GUF7lwOuzUNgVJJj987CjbyGZe3myaQi20hFotrFAk/SmA\nJeNFEzH2dhzAn1tE84ksTGBZdbHVZU1qNpvBrDIvkViCEx2hIa8tLlgAfPihRkTGRgEsGW9/5yGi\niSjL/EvYdaQDgAvnKoBHMjg15ceeCV6YNxebYWNn224ryhLJGApgyXinguKCwkXsq+2kvMhFaYHL\n4qomv+I8J15XNvWtvcTiHy7CkJvlZH5BNfXBRtrDnRZWKJLeFMCS0eLJOLvb91GQk0+w3U00nmSZ\nWr+jYhgGVeU+4gmT+tbeIa8t9y8BUCtY5DwogCWjHeo6Sjjez7KSC3jv4MCgoZXzSiyuKn1UlZ+5\nG3qpfzEGBjtbdR9YZKwUwJLRTrXQFhcsYsehdvz5TqrKp+asO2OR53FQ5MvhREeI/mh8cLvX4aE6\nv4pjgeN0R3osrFAkfSmAJWMlkgl2te3F6/AQaPMQiSW4ZGFpWk+haIWqaT5ME2o/tk7wspJT3dBq\nBYuMhQJYMtbh7hp6YyGW+5ewbX8bAKsWllpcVfqZVXayG7ppaDf0Mv8FAOxs1X1gkbFQAEvG2tH6\nAQCL8hez62gH04vdVJR4LK4q/bicWZQVuWjr7ifYFxvcnp+Tx+y8mRzpPkZPJL3n8hWxggJY0opp\nmgQCPSN+dfd0saN1N95sD90tbuKJJJcs1OCrsZp9cjBWTdPHRkOXLMXEZJdGQ4ucsxHnghaZTILB\nABvfPUKuyz3sfu3JJkLxPlb5V7Blz8Do50sWqft5rCpLPWzZZ1BzIoRpfjg15XL/Ev54+Bm2t37A\nVRWrLaxQJP0ogCXt5LrcuNzDj2RuDw0sPTgzp5rXjncxryJPk2+cB0e2nRl+N8dbemlsD5OXlw9A\ngTOfKt9AN3QgGsTn0AhzkdFSF7RkHNNM0hA9igMnzfUDK/lcsTQ9166dTE5NTfn+oaGzX60oWYKJ\nqWeCRc6RAlgyTnv8BBGzj1JbJVsPdJHjsHPRAr/VZaW96X43jiwb2490DlkhaXnJUgB26D6wyDlR\nAEvGqY8eBsDZV0FXMMrFC0pwOnS35XzZbTZmlrnoCcU4WN89uH2gG7qSw11HCUZ7hzmDiHyUAlgy\nimkmaYwewWE46WwauB955dJyi6vKHLPLBx7j2rK3ecj2U6OhNSmHyOgpgCWjtMeb6Df7KMuazYn2\nCP78HKqn51ldVsYoK3SS585m28E2YvHE4PblJ2fFOvXstYiMTAEsGaU+eggAe2AaSRNWLSjW1JPj\nyDAMVswtJByJD66tDFDoLGCWr5JD6oYWGTUFsGSMpJmkIXqYHCOX5uMuDODi+UVWl5VxLjn5PX1r\nd9OQ7StOdkPv0NSUIqOiAJaM0RavJ2KG8RtVdAailBbkYEuGR5w1KxgMgDny+WVAeVEus8q87Knp\npLs3Mrh9xcnR0O+37rSqNJG0oqGhkjHqIgPdz/H2gUFX0wpsvL69jvzC4VvBne0tuNw+XB5NIjFa\nly8pp7b5EO/sbeaGVTOBgdHQc/KqONpdS1d/NwXOfIurFJnc1AKWjJA0EzTGjuI03Jw4noPTYafE\nl4Uz14XL7R32y5k7/LSWcrpVi0rJshu89UHTkKkpLypdhonJdg3GEhmRAlgyQnPsODEzQn58FpFY\nkqpyHzabBl9NFE9uNsvn+mnq6KPmI8sULi9Zgs2w8X7LLgurE0kPCmDJCKdGP4dbBhZcqK7wWVnO\nlHDFyeer3/7gw8FYXoeH+QXVHA/W09rXblVpImlBASxpL27GOBGtwWX4aGnMptCXQ4HXaXVZGW/x\nrEIKvDm8u7+VaOzDZ4JXli4DYHurWsEiw1EAS9prjtUSJ4arvxLTNJgzTRNvpILNZrD6gjLCkTjb\nD7cNbr+weDFZhp1tLRoNLTIcBbCkvVOjn3sairAZUDVNo5lT5fIlp3dDu7JzWVy0gKZQCyd6m892\nqMiUpwCWtBZNRmiKHcNNAYEOJxUlHi28kEJlhS6qp+exr7aLjp7+we0rSy8EUCtYZBijCuCf/OQn\n3HXXXXz6059m48aNE12TyKg1RA+TJEF2cAZgMEfzPqfcFUvLMYHNez5sBS8pXoTD7mBbyw6SZtK6\n4kQmsRED+N133+Xo0aM8/vjj/PM//zN//dd/nYq6REblePQAAJ3Hi3E67Ewv1jO9qXbxghIc2Tbe\n/KCJ5Mlngh12B8v9S+jo76Km57jFFYpMTiMG8CWXXMJDDz0EgM/nIxwOD3nwXsQqoUSA9ngj3mQZ\nkT6Hnv21SG5OFqsWltLe08/eY52D2y8pWwHA1ub3rSpNZFIbMYANw8DpHHik4/e//z1r1qzR6jIy\nKdSdbP0mO6YBevbXSlcvnw7AazsaB7fNK5hDnsPH9tYPiCViVpUmMmmNehDWpk2beOKJJ/jf//t/\nT2Q9IqNimibHIwewYaejvkDP/lqsqtzHrDIvO4+00xkYGIxlM2xcUraCcLyf3R37La5QZPIZ1XDR\nN998k0cffZRf/epXeDyeEff3+9P/MZBMuAbIvOtwOJJ43J2EHT0Ek10UJGYRimezqKoIr2doAIdD\nDmy27NO2f9xo9zvffc92TKrefzzOGeqNUlzsJS/v9P9Xt1w1h3/83U7eP9LBf/3kAgA+mX0FG+te\nY2fnLj65+PIRz58qmfZzke4y5TrO1YgB3Nvby9/+7d/y2GOP4fWO7pvU1hY878Ks5Pd70/4aIDOv\nIxAI0huKcCg0MMtSX1MpBlBemEuwt3/IcaFQFJstQU5u/8dPOab9zmdfr8d5Wn2pfP/xOqcNaG8P\nEo2e3nm2qCKP3Bw7L2w+xjUXlpNlt5GLjwrPNHY07aWmsQmvY+QP8BMtE38u0lkmXMdYP0CM2AX9\n/PPP093dzTe/+U3uuecePv/5z9PcrIfrxTpJM0ld9CDZOOluyqOsyEVujp79tVqOw87qxeV090bZ\ndaRjcPuqshUkzSTva2pKkSFG/K21fv161q9fn4paREalPdlIxAyT3z+PgGmjqlyDryaLNcun8fL2\nBl7b2cjK+X4AVpYu54kjz7G1eTtXV0yebmgRq6nZIGmnPjkw9WRfUxk2AypLre/WnCpM0yQYDJz1\ndV8OzC73sPdYJzX1rVRV+MnL8bKwcB77Og/SHGqlzF2SwopFJi8FsKSV3liIlmQdHqOQtrZcKko8\nOLLtVpc1ZfT19fL69iD5hUVn3afYl0VNE/zHpkN8/Y4cfL48Li1fyb7Og2xp2sZ/qb4xhRWLTF6a\nC1rSyo6OPZiYOHurAIOqsqk5etJKzlwXLrf3rF9zZ/rJybbT0BEnnhiYhnKp/wLcWS62NG0jkUyM\n8A4iU4MCWNKGaZpsa9+JDRtddcXYbQYVJep+nmzsNhvVFT6i8STbD3cBkG3L4uKy5QRjvezRM8Ei\ngAJY0khtoJ7W/nYKkhX0Bg1mlHjIztJ/4clofmUBAG980DI4de3qaZcAsPnEVsvqEplM9NtL0sY7\nTe8BYHTNAGBWubqfJytPbjbTi500tIc5VN8NwHRPOTO9M9jbcZDuSI/FFYpYTwEsaSGSiPJ+y07y\nsn20N+SRnWXTykeT3NxpA/8+G7c1DG5bPe1iTEy2NG2zqiyRSUMBLGlhR+sH9CcizHYuIBxJUlni\nwW7Xf9/JrMjnYIbfxY5DbbR2hwFYWboMhy2bzSfe0zrBMuXpN5ikhVP3DeNtAysfzdLkG5OeYRis\nubAEE3jl/YFWcG6WkxUlF9LR38nhrhprCxSxmAJYJr267kaO9tSyoGAu+w7HcWTZKC9yWV2WjMKy\nOQXkeRy8sesE4UgcgMumXQzA2yfetbI0EcspgGXSe/HI6wBUOZbQG45TUezEZtOa1Okgy25j7YoK\n+qMJ3trdBMCcvFmUuUrY2baHQDS9J+EXOR8KYJnUwvF+3ji+lYKcfNrqBkY9z/DnWlyVnIs1y6aR\nZbfx8rYGkkkTwzC4qmI1CTPB2416JEmmLgWwTGpbm7cTiUdYXb6K7Qc7yHNnU5znsLosOQc+l4PL\nFpfS2h1m15F2YGCFJKc9h7dObNHMWDJlKYBl0jJNkzcaNmO32cmPVRPqj7OsugDDUPdzurn2ooFn\ntzdsrQPAmeVkVflKuiM9fNC+z8rSRCyjAJZJ63B3Dc19rVxasZw9h3oBWFFdaHFVMhYVJR6Wzini\ncEPP4MQcV01fDcDrDW9bWZqIZRTAMmm90fgOANfMupIdh9spznNSWaLRz+nq5stmAfDsO7UAlLlL\nmF9QzeHuGk70NltWl4hVFMAyKXVHetjVtofpnnK6m1xEoglWLSpV93Maq67IY0FlPntqOqltHlhT\neE3FQCv41IctkalEASyT0usNm0maSa6afhmv7RiYxOHSxWUWVyXn66aTreDn3jkOwAVFCynIyefd\n5vcJx8MWViaSegpgmXT64xHebNyCJ9vNorwlbD/QSmWJR3M/pxnTNAkGAwQCPYNfFYU2ZvhdbD/Y\nxqHaZkK9vVxSvJxoIsrbWiVJppgsqwsQ+bh3mt4jHA9zU9W17DrURSJpqvWbhsJ9IV7f3kl+YdGQ\n7RXFOdS39fHbV45x8fwC+vrycWRn82r9W1xdcTlZNv1akqlBLWCZVBLJBK/Wv0m2LYurpq/mnX0t\nGAasWlRqdWkyBs5cFy63d8hXdaWfPLeDurYwScOJz1XAxcXL6Y70sK1lp9Uli6SMAlgmlZ1tu+no\n7+LS8ovp77NxpKGHJXOKKfDmWF2ajBPDMLhgdiGmCXtrOwG4ovQSbIaNTXWvY5qmxRWKpIYCWCYN\n0zTZVPc6BgZrZ1zBln0tAKxZUWFxZTLeqsp9eHKzOdzQQziSID8nj5Uly2gKtbC344DV5YmkhAJY\nJo0j3TXUBRtZ6l+MP7eYLftayLIbrF46zerSZJzZbAZL5hSSTJrsrxtYkGFd5VUAbKp73crSRFJG\nASyTxsaTv3jXVV5FfWsvJ9pDXFhdjCc32+LKZCLMmZaHz5XNsZY+2nsiVHinsbBwHoe7a6gN1Fld\nnsiEUwDLpHA8UM/ejgPMyZvF7LxZbNk70P186SKNfs5UNpvBsrnFmCZseO8EAOsq1wCw8fhrFlYm\nkhoKYJkUnj+2EYCbqq4jmTR5d38Lrpwsls4pGuFISWczy7zku7N4/1An9a29zC+oZqZ3Bjvb9tAQ\nPGF1eSITSgEsljseqGdPxwHm5FUxr2AOB+u66ApGuGiBn+ws/RfNZIZhcMEsHybwn68cBuCm2dcB\nH34oE8lU+u0mljv1i/bm2ddiGAZv7xmYmF/dz1NDWaGTBTN87KvtYndNB4sK51Hlm8mu9r3UBRqs\nLk9kwiiAxVKnWr/VeVWU2oppbuvgvQMtFPtyKMs3CAR66On5cCrDYDAAekw049y6ugLDgP985QiJ\npMnNJ1vBz6kVLBlsVHO+HTp0iK997Wt84Qtf4O67757ommQKOdX6vbp0NZu2HqWxG2Jxk7JCB5tP\ntoQ97k56QxEAOttbcLl9uDxey2qW8VdelMuaC6fx2s4TvLqjkXUrq6nOr2JPx36O9dRRlVdpdYki\n427EFnA4HOaHP/whl112WSrqkSnkWE/dQOs3v4rZ3pk4c10cb+3HMGBhVcng1IVuj2/wz85cLciQ\nqf7LlbNx5WTx1Js19ISi3Fx1qhX8ksWViUyMEQM4JyeHX/7yl5SUlKSiHpkiTNPkiSPPAHDL7Osx\nDIOu3hhdwQgzSjzk5mhC/qnG53Zwx5rZhCMJfvfqEeYWzGFeQTX7Ow9xuKvG6vJExt2IAWyz2XA4\nHKmoRaaQHW27qek5zoX+C6jOrwLgWHMfMLBwu0xNa5ZNZ1aZly17W9h/vItPzb4egCeOPEPSTFpc\nncj4mpBmht+f/vfnMuEaYHJeRywR49l3N2A3bNx78afxe71EExHqWsN4XdnMn1WEzTCGHOP1OAEI\nhxzYbNmDfx/OaPediHOead+zHZOq9x+fc4Lb7RzX97cRpbjYS17ewP/Vr9+1nG899Ab/b+Mh/uHP\nr+GKtot5q+499of2cXXV+NwKm4w/F2Oh60hvExLAbW3BiThtyvj93rS/Bpi81/Fy3Ru0hNq5puIK\nsvpzaesP8txbtSSSJvNm5BM6OeDqFK/HSbC3H4BQKIrNliAnt3/E9xntvhNxzo/v+9FrsOL9x+uc\nA/v3j+v794UitLcHiUYHOuTynVmsWzmDjdvq+dWTH3D9ZdfybsNO/t/OJ5njnIsz6/xWxpqsPxfn\nStcxeYz1A4QeQ5KU6o2FeKH2ZXKzcrmhah0AiWSSN3e3YrcZ6n6egkzTJBgMDD5qFgj0sG55EUU+\nBxu21tFY38eVpavoiQZ57vCLWq5QMsaILeC9e/fy4x//mBMnTpCVlcWLL77Iz3/+c3w+Xyrqkwzz\n/LFNhONhbq++GXe2C4Adh9rp7o0xp9xFTrbd4gol1cJ9IV7f3kl+4dBpRxfP9PLG7g5++cIR1lw4\nixy289qJd7i4eBmVfj2WJOlvxABevHgxv/nNb1JRi2S4ukADbzRsxp9bxFUVqwe3b9xWD0D1NI9V\npYnFnLkuXO6h3Xiz3F5aehIcrOvmcGOcpXOu4L3QS7zQ8Ar/n/8L1hQqMo7UBS0pkUgm+I8Df8DE\n5K75t5NtG/jsd7Cui8MNPSyq9OF16dEjGWrlfD95bgcH6rqxByrIN/x80LWPPe37rS5N5LwpgCUl\nXm14i/reE6wqW8mCwrmD25/ZXAvAtReVW1SZTGZZdhtXXliOzTB4Z3cL883LsBk2Hj/4JP3x0Q0a\nE5msFMAy4TrCnTxX8xKebDe3V988uP1IYw/7artYNKuAqjJ1P8uZFfqcrJhfTH80wYHDBmvKLqMr\n0s2fajZYXZrIeVEAy4QyTZPHDz5JNBnj9uqb8Tg+nErymbdrAbhl9SxripO0sXBmAeVFLpq7ImS3\nz6fUVcIbDe9Q01NrdWkiY6YAlgm1pfl99nUeZEHBXC4pWzG4/UhDD7trOpg3I5/5lQUWVijpwDAM\nLl9SjiPLxnNbmlhXeiMmJv++/w/EknGryxMZEwWwTJjWvnZ+d+gpnHYnn11wB8bJ2a2SpslvXx5Y\nfP3ONXOsLFHSiMuZxUXz8oknTJ7a0M1lpato6Wvl6aPPW12ayJgogGVCxJNxfr33P4gmonx2/m0U\n5xYOvrZ1fwvHmgJcvKBEE2/IOZlW5OS6lWW09/TTtGcmpS4/r9a/xe72fVaXJnLOFMAyIZ6teYm6\nYAOrylZyUdnywe3RWII/vnaULLvBnVer9Svn7vqLp7F0ThH7jwWY2b+GLFsWv9n/O7r6u60uTeSc\nKIBl3B3sPMKmutcpzi1i/bxbh7z27Du1dAQirLtoBv78XGsKlLRlmiahUJC71lRQ7Mvh9S29XOhc\nTSjWx68++He6e7oGp7PUlJUy2SmAZVx1hLv49d7/wDAMvrj4szizPlwJ53hzkOffqaPI5+RTl8+y\nrp4Mvh0AABL5SURBVEhJWwPTVtax/XAby6t92G0GW950UZSs5FhvHb/e+QJv7W5i47tHCAYDVpcr\nMiwFsIyb/niER3Y/RjDWyx1zb2GW78P5euOJJL96bj9J0+QLNy7A6dCsVzI2p6atLC8p5PIlZcQT\n0LV/IbmGlyOJnXRkNZHrco98IhGLKYBlXCTNJP+273Eae5u4YvqlrJm+esjrT791jIa2Xq66cBqL\nZxWe5Swi52ZWuY+lc4oIhQzMmovIIputoZfoSrZaXZrIiBTAMi6eq3mJXe17mZc/h/Vzbx185Ahg\n5+F2nnvnOMV5TtZfU21hlZKJLqwuYs40H11tOTibLyFJkm2xTXRFeqwu7f9v7+6DmzjvBI5/dyXr\nxbL8/gK2Y14dHIwLGIpDIDZxqEnaSzNpxoWQNyhpMpAUCO3cQOkEph0GbkLSpkOnOXK5kCY39TWA\nkyHl8naEJBQMOBBeDBcwAeNXCWHZsmzJsqTn/jAYKLYkYvA68Hw8Glve9e7vJ6312312n2clKSRZ\ngKV++0f9Xj6o2UGyOYkFeY+hUy/dUtDm7OC1948RpVd57id5RJtk07N0fSmKwp3jhjA0KZpzZ63E\nNI/Hh5c3q/+bji6P1uFJUp9kAZb6paKxkr9+vZWYKAsLvzefmKhL597aOnz8cfNhPJ1+npg1hqw0\na4glSdK3p1MV7snPIC3BzLnqIZhaR2LznONPh17HI2/aIA1SsgBL10QI0dPN44szu3n7+DuYdEZ+\nlv0I0QFjzzS7o5n1fz1A4/kOSr5/G9Py5N2OpBtLr1MpnpRJSrwZ59fZxHiGccZ1lj999bq8c5I0\nKMn2QOmatLW5+HhvNS3Gcxz0f4oOPflqCadOBTlFIwBd/iD/ONaMo9XHlJwkZhfL877SwIjSq8yc\nnMmOyrPYjuSQkCs4TQ1/OvSfPDv+Z1d0i5MkrckjYOma2Y21HPB/ioqeQutDpFtHEG2xEm2xoujN\nfFHlxNHqIyPJxOwZw664IEuSbrQovcq03EQm356EsyoHtTWDb1rPsOGr/6DN59Y6PEnqIQuwFLGg\nCPJB3acc9e/GqJiYEfsTkqIuNS23uDv5YO9Zml2djM6Mo+COBHSqLL7SwFNVhUfvHU7pPdl4Towj\n4EjntOssL1ZuoN7VpHV4kgTIAixFqCvQxZvHyvisaTcWJZbi2J+SqB/SM/10o4vte2po6+gib2Qi\nU3PTUOWRr6QhRVG4v2AY/zp3EtHnJtNVP4rz3mZWfPRvnHBWax2eJMkCLIVna7fz4pcbqLR9RZYl\ng7ui/oUYXTzQfb53z9EmvjjUff63cEI6E29Pkc3O0qBx+23xrHnqTgrTZuA7lYenq5NXDrzG5mMf\nExRBrcOTbmHyIiwppL2NX1J2ohxfwMe09AJmDSlib5UDgAZHOxVVNtyeLhKsRgrHDyUuxqhxxJJ0\nNbNRz2MlY7irYSh/3ZtGvflzPm36mIqzR/jpqIf5/ugsudMoDThZgKVetfncbDm5jf22g93djHLn\nMiltAi5XK+1eP/tO1HPW5kYB8kYm8r3RyVed7xVCRDwgflubC+TNa6TrpK9tLzkGVv/0Xj6qzGJb\n3XY85iY2ffMam/dP4oHcAgrGpmGI0vWyREm6/mQBlq4QFEF2N+zjvVP/Q4ffwzDrbczPnUtKdBKd\nvgDb9zXwyZd2ggJS4s1MuSOVpLjeu3Z037mmmfjEpLDrbXbYiLbEEh0jB+uQ+i/UthdjMeJph3vj\n7udYx2HO6A/SPmQP/1VdTdmuPO7KHknhhHRuS43RIHLpViILsNSjuuU071Zv57SrBpPOSGn2gxRm\nTiUQgB0H6vj7nhqcbZ2YDSqTctIYMdQattnu4p1rwulol91DpOurr23PEmMiSPfAHN+PmU5WWxan\n9ZXUUgtxO/ms4Sz/u2k4I9ISKRw/lCl3pGE2yo9K6fqTW5XE6dYa/n76Y443nwAgP/V7PJz9APpg\nNB/ureWTL+twtnVi0Kv8IH8IFhPExsZqHLUkXR9WNYGFYx/npOc0W6rfx5VZjSm9ltr6Ybz5UTNl\nO6opuCOVwvEZEe10SlKkZAG+ifl8PioPH0enXn2xe1AEqfXVUtVxjIauBgByErK5f/hMfK1xbP64\nnsqv7fi6ghiiVO6bksWsgiyUgIddRxoHOhVJumGEELjdbdxuHcnzuc+wq2kv/7DvJ3DbCcyZNQjH\nMD4/1s7nhxpJTzIzKTuR/OxEEqyGkMu1WmNlsZZCkgX4Jub1erG1CizWS+ey2gMuzvr+j1OdR/AE\nu5t9E5R0ktqyMbYP54+f1+H2nAYgOc5EcX4mheOHEm2KAsDlkneXkW4u/3y+2EQ2hbphnOEYpwNH\n8aecwJx8kqiONGx1GWyraGdbRT1JsQayUsxkJJswGXRXLfMHBaOJjY3TIiXpO0IW4FtAa5eTMx0n\nafBX41bOAaAE9ehbR+BtzKDBHUP3MbCN+BgDRRPSmZo7hNGZcXIwDemW0Nv54vHcTa4o4GznCb7p\nPILT0oRhTBNq0IDOPRRnYzLnv0ni4CmVpDgTmSkWMlNiSIyVXfGkyERUgNeuXcuhQ4dQFIVf//rX\n5OXl3ei4pGskhMDZ1kmNrY1qm52atrPY/Wdx6xtRujq65wGCrUkEmocQOD8UVeixWgwkDjWSFB1g\nxqRhZCSZe5rN3L1045DdhaRbiV4xMNI0jpGmcTj9No63VHJOqccXW4MxtgZF6NB1JNHaHE9zYxKH\nTlkxRUWREmdAVfVMGBNFWoJZNkVLvQpbgPfv309NTQ1lZWWcOnWKlStXUlZWNhCxSX0QQtDs6uSb\nhlaON9VzxtmA3WvHb3CiWFpRjV4wAkZQAnr07UOJ6UonSQwnzmQlergeS04UMeYo1At9d92OGo6f\nauBMoyXkumV3IelWlaBP4/ZgPmPUyYjYAHW+amz+GlwWO1EWO1EAQgcdVpraYtlSFcs7lTHE6hLI\nTk9hVHosI9NjGZZmlX2NJSCCArxnzx5mzpwJwKhRo3C5XLS3t2OxhP6glvpHCIE34KXV6+Zss4Na\np4M6pwN7ezOtXS0E9O0oRg+KLgDdo0KiAwyYGWIaxaiELCbfNoYjBzqwpiREtE5ztCVslyHZXUi6\n1SkoJEWlkxyVDoAn2M65rlrs/nqcfhutFgd6S0vP/D7gqM/I4YZoxBkzii+aOEMcqTEJZMQnMjw5\nmRGpyaTEWnp2iKVbQ9gC7HA4GDduXM/zhIQEHA7HTV2AXd42mr1OhBAIuPD9wpe49D0oggQJIoQg\nIILdz0WAgAgSCF74LgL4g366An5aOjx0+n34Al10BnwXfvbRGfTh8Xvx+r34gp34hJcuvKD00tZr\n7n7oRRQxagJp0amMSkonKy6DzJihJJoSepq7jEZBlXJ8QF87SbrVmFULWcYcsow5AASEnyZ3DWnp\nAVoCbTS222hw23EZnIATAPeFxzde+KIOqAPh16MGDegxYtRdeKhGTPruhznKiFFnIEqnx6CLIiHW\ngs8bxKDToVf16BQd0UYDZkMUOlVFQUVVFFRFRVVUFBRURUFBQVEUFFQUpXuHApTLfuaKJvOL07t/\nf2XuF+fvTahpF3X30Lh1W9Ou+SIsIW7uE4CHz1Xx7zve1GTdIqhAQI8IRIE/Fl3QhFlnxmqIJckc\nR2ZCEqNThzAsMQ2LPjrseSVVVfF1tKAEO8OuO9jlpVO0h53P62lHVfV0tLcN2LwqPjraO2/Y+gci\np8tz0GL9122ZHR14vYFB//pHuj3dqPWbvBampFx5FbQ/6MfpbeW8t5lmTwuNrmaaXE7Oe1px+9rp\nFB78Sic+1UWXLoAbIEj3IbSvl5XcJHdVXDr1KbLNt2sdhibCFuDU1FQcDkfPc7vdTkpKSsi/SUn5\n7u7R3JtyJ/eOvVPrMK6bpx+bpXUIkiRdMJQEYLjWYUiDRNjbEU6bNo0PP/wQgKqqKtLS0oiOjr7h\ngUmSJEnSzSzsEfDEiRPJzc1lzpw56HQ6XnjhhYGIS5IkSZJuaoq42U/qSpIkSdIgFLYJWpIkSZKk\n608WYEmSJEnSgCzAkiRJkqSBft2Mwe/3s3z5choaGtDpdKxdu5bMzMxe5122bBlGo5G1a9f2Z5U3\nRCR5bNiwgV27dgFQVFTEwoULtQg1pEjy2L59O2+88QY6nY6CggKef/55jaLtXSQ5uFwuli1bhsVi\n4ZVXXtEo0r6FGjt99+7d/P73v0en01FYWMiiRYs0jLRvoXLw+Xy88MILnDx5ki1btmgYZXih8qio\nqOh5L0aMGMGaNWs0jLRvoXL429/+xpYtW9DpdOTk5Azqi2QjuafASy+9xFdffcVbb72lQYSRCZVH\ncXEx6enp3QOdKArr168nNTW174WJfigvLxe//e1vhRBC7Nq1SyxdurTX+Xbt2iVKS0vF8uXL+7O6\nGyZcHnV1dWLJkiVCCCECgYAoKSkRdrt9wOMMJ1weHo9HFBcXi46ODiGEEKWlpaK6unrA4wwlkm1q\n6dKl4s9//rNYvHjxQIcX1r59+8QzzzwjhBCiurpazJ49+4rpP/zhD0VTU5MIBoNi7ty5g+71FyJ8\nDr/73e/Epk2bxMMPP6xFeBELl0dJSYmw2WxCCCEWL14sPvvsswGPMZxQOXg8HjFv3jwRCASEEEI8\n8cQT4uDBg5rEGU649+Li7+fMmSMef/zxgQ4vYuHyKC4uFh6PJ+Ll9asJ+vJxou+66y4OHDhw1Tw+\nn49XX311UB4xXhQuj4yMDP7whz8A0NLSgqqqxMTEXLUcrYXLw2QysW3bNsxmMwDx8fG0tLRctRwt\nRbJNrVmzhvz8/IEOLSJ9jZ0OUFtbS3x8PGlpaSiKQlFRERUVFVqG26tQOUB3a9bF6YNZuDy2bt3a\nc3SSmJg46P4XIHQOJpOJN954A1VV8Xg8uN1ukpOTtQy3T+HeC4B169axbNkyLcKLWLg8hBDXNFpk\nvwqww+EgMTER6B47VFVV/H7/FfNs3LiRRx55ZFCPHR1JHtD9wf/jH/+YRYsW9RSxwSSSPC4OovL1\n11/T0NDAhAkTBjzOUK4lh8Ho8vjh0tjpvU1LTEzEbrcPeIzhhMoBBvfrf7lweVz8TLLb7ezevZui\noqIBjzGccDlA92dsSUkJ999/f5+nALUWLo/y8nIKCgpIT0/XIryIRfJ+rFq1irlz5/Lyyy+HXV7E\n54DfeecdNm/e3DP+sBCCw4cPXzFPMBi84nlNTQ1Hjx7lueeeY+/evZGu6ob6NnlctHLlShYvXsxj\njz1Gfn4+GRkZNzzevvQnjzNnzvCrX/2Kl156CZ1Ou9ui9SeH74pQe8PXsqespe9KnOH0lsf58+dZ\nuHAhq1evJi4urpe/Glx6y+Hpp59m3rx5PPXUU0yaNImJEydqENm1uTyP1tZWtm7dyqZNm2hsbPxO\nbW//HOuSJUu4++67iY+PZ9GiRXz00UeUlJT0+fcRF+DS0lJKS0uv+N2KFStwOByMGTOm5yhFr7+0\nyJ07d9LY2MicOXNoa2vD6XTy+uuvs2DBgkhXe919mzyampp67gpltVrJz8/nyJEjmhbgb5MHdOfy\ni1/8ghdffJExY8YMWLy9+bY5DGahxk5PTU3l3LlzPdNsNlvoCzQ08m3Gfx+MwuXhdrv5+c9/zi9/\n+UumTp2qRYhhhcqhtbWVkydPMnnyZAwGA4WFhRw4cGBQFuBQeVRUVOB0Onn00Ufp7OyktraWdevW\nsXz5cq3C7VO4berBBx/s+bmwsJATJ06ELMD9aoKeNm0aH3zwAQA7duygoKDgiulPPvkk7733HmVl\nZaxatYqioiJNi29fwuXR3NzM6tWrCQaDBAIBqqqqGD58uAaRhhYuD+g+il+1ahU5OTkDHV5EIskB\nrv1cy0AJNXZ6RkYG7e3tNDQ04Pf72blzJ9OnT9cy3F5FMv77YH39Lxcuj3Xr1jF//nymTZumVYhh\nhcrhYo8Bj8cDwOHDhxkxYoRmsYYSKo9Zs2bx/vvvU1ZWxoYNGxg7duygLL4QOg+3282CBQvo6uoC\nYP/+/WRnZ4dcXr+GogwGg6xcuZKamhqMRiPr1q0jLS2NjRs3UlBQwPjx43vm3bdvH+Xl5YOyG1Ik\neWzcuJFPPvkEgBkzZgzK7iPh8oiLi+Ohhx4iLy8PIQSKojB//nzuuecerUPvES6HvLw8nnzySdxu\nNzabjdGjR/Pss8/2Wai18PLLL7Nv376esdOPHTuG1Wpl5syZVFZWsn79egDuu+8+5s2bp22wfQiV\nw5IlS2hqaqK6uprc3Fxmz57Nj370I61D7lVfeUyfPp0pU6YwYcKEnv+FBx544KoWmcEg1Hvx7rvv\n8vbbb6PX68nJyWH16tVah9unUHlcVF9fz4oVK/jLX/6iYaShhcrjrbfeory8HJPJxNixY/nNb34T\ncllyLGhJkiRJ0oAcCUuSJEmSNCALsCRJkiRpQBZgSZIkSdKALMCSJEmSpAFZgCVJkiRJA7IAS5Ik\nSZIGZAGWJEmSJA3IAixJkiRJGvh/pt02pplIQvMAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb2a980c128>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ax = sns.distplot(trace['sd_log_'], label='NUTS')\n",
"xlim = ax.get_xlim()\n",
"x = np.linspace(xlim[0], xlim[1], 100)\n",
"y = stats.norm(means['sd_log_'], sds['sd_log_']).pdf(x)\n",
"ax.plot(x, y, label='ADVI')\n",
"ax.set_title('log(sigma)')\n",
"ax.legend(loc=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Using arbitrary optimizer\n",
"By default, `advi()` uses (a modified) adagrad for optimization of variational parameters. In addition, we can use an arbitrary optimizer, which is a function that returns a dictionary representing an update of a shared variable ([link](http://deeplearning.net/software/theano/tutorial/examples.html#using-shared-variables])), given the loss function to be minimized and the parameters to be optimized. It should be noted that `advi()` applys the given optimizer to minimize negative ELBO, which is equivalent to maximize ELBO. \n",
"\n",
"[Lasagne](http://lasagne.readthedocs.io/en/latest/), a deeplearning framework, ships with a number of useful optimization functions. We can use these functions with wrapping the interface in some way. The below code defines the adam optimizer with the default parameters. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.5/site-packages/theano/tensor/signal/downsample.py:6: UserWarning: downsample module has been moved to the theano.tensor.signal.pool module.\n",
" \"downsample module has been moved to the theano.tensor.signal.pool module.\")\n"
]
}
],
"source": [
"import lasagne\n",
"adam = lambda loss, param: lasagne.updates.adam(loss, [param])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can specify the optimizer by setting it to an argument, `optimizer`. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iteration 0 [0%]: ELBO = -3106.81\n",
"Iteration 2000 [10%]: Average ELBO = -423.9\n",
"Iteration 4000 [20%]: Average ELBO = -220.93\n",
"Iteration 6000 [30%]: Average ELBO = -189.87\n",
"Iteration 8000 [40%]: Average ELBO = -173.76\n",
"Iteration 10000 [50%]: Average ELBO = -162.26\n",
"Iteration 12000 [60%]: Average ELBO = -153.51\n",
"Iteration 14000 [70%]: Average ELBO = -149.63\n",
"Iteration 16000 [80%]: Average ELBO = -148.05\n",
"Iteration 18000 [90%]: Average ELBO = -147.54\n",
"Finished [100%]: Average ELBO = -147.45\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f8d0312b048>]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nT4ZhyDRNGYahZcuWKTMzUzt37tTbb7+tF198UZK0ePFipaena+zYsVq/fr127tzZYX3BYLBDWdt6\nw5UDAIC+1WUYyMnJUU5OTofyvXv36tChQ3r++edDowS33357aPltt92mV199VRkZGTp79myovKio\nSKmpqfL7/SotLVV8fLyKiork9/vl9/tVUlLSrq7f7+9yI1JSErqsg4GL/hu86LvBjf5Dm4iuGSgs\nLNTvfvc7bd26VU6nM1T+8MMPq7q6WpJ04sQJTZ48WRkZGTp8+LACgYCKiopUXFysSZMmKTMzU/v3\n75ckHTx4UPPmzdOoUaNUW1ur8+fPKxAI6NChQ7r11lt7YTMBAEBnDDOCsfhnnnlGf/rTnzRy5MjQ\nEP/27dv1L//yL9q2bZs8Ho/8fr82btwot9utnTt36g9/+IMMw9D3v/99ZWRkqK6uTqtWrVJFRYW8\nXq82b96s+Ph4/cd//Id++tOfSpI+//nP66GHHurtbQYAAJeIKAwAAIChgxkIAQCwOMIAAAAWRxgA\nAMDiIpp0aKB4+umn9eabb8owDK1Zs0bTp0+PdpOg1jtJvvvd72ry5MkyTVPp6en6xje+oVWrVsk0\nTaWkpOgnP/mJnE6n/vCHP+jXv/617Ha7cnJy9JWvfEWBQECrV6/W+fPnZbfb9fTTT2vMmDHR3qwh\n791339W3v/1tPfTQQ8rNzdUnn3xy1X32zjvv6KmnnpLNZlN6errWrVsX7c0csi7vvx/+8Id66623\nQpO7ff3rX1d2djb9NwD95Cc/0cmTJ9XS0qJvfvObmj59ev9/98xB6sSJE+ajjz5qmqZpvvfee+Z9\n990X5RahzfHjx83ly5e3K1u9erV54MAB0zRN82c/+5n58ssvm3V1deYdd9xh1tTUmA0NDebdd99t\nVlZWmr///e/NH/3oR6ZpmuZf/vIX83vf+16/b4PV1NXVmXl5eeaTTz5p/va3vzVNs3f6LC8vz3zr\nrbdM0zTNFStWmP/+7/8eha0b+jrrv0OHDnWoR/8NLMeOHTO/+c1vmqZpmuXl5eZtt91mrl692nz1\n1VdN0+y/796gPU3w2muvhSY5SktLU1VVlWpra6PcKrQxL7tJ5cSJE5o/f76k1mdRFBQU6M0339SM\nGTPk8Xjkdrs1e/Zs/e1vf2vXt7fccotOnjzZ7+23Grfbrfz8/HaTfF1Nn73++utqbm7WuXPnNG3a\nNEnSggULVFBQ0P8bZwHh+i8c+m/guemmm/Tzn/9ckuT1elVXV6e//vWvWrBggaT+++4N2jBw+TMP\nkpKSVFpaGsUW4VJnzpzR0qVLlZubq4KCAjU0NIQmqEpOTlZxcXHYZ1G0PbeirdwwDNlsNgUCgahs\nh1XYbDa5XK52ZfX19RH3mWEYKi0tVWJiYoe66H3h+k+Sfvvb32rx4sVauXKlysvLO/zdpP+izzAM\nxcTESJL27dun2267LSrfvUF9zcClLj8SRfSMGzdO3/nOd3TnnXeqsLBQX/va19rtzDvrq87Kwz3P\nAv2rp31mXpyMjO9l9Nx7771KTEzU1KlTtW3bNm3dulWzZs1qV4f+Gzj+9V//Vf/0T/+kl156SZ/7\n3OdC5f313Ru0IwNtzzZoU1xcrJSUlCi2CG1SU1N15513SpLGjh2r4cOHq6qqSk1NTZLaP5/i8mdR\nXPrcCkmhEOFwDJncOmh4PJ6I+8y8eOFTRUVFu7rdedYIesfNN9+sqVOnSmodJn733XeVmppK/w1A\nR44c0S9+8Qvl5+crPj4+Kt+9QRsGMjMzdeDAAUnSqVOnlJqaqri4uCi3CpL0z//8z9q+fbskhR5N\n/aUvfUmvvvqqJOnAgQOaN2+eZsyYobfeeks1NTWqra3V66+/rjlz5igzMzNU989//rMyMjKiti1W\nNnfu3NB3LJI+s9vtmjhxYuiaj7ZnkKB/LF++PPQI+OPHj2vKlCn03wBUU1OjzZs368UXX1RCQuuD\no6Lx3RvU0xH/7Gc/04kTJ2S327V27Vqlp6dHu0mQVFtbq5UrV6q6ulqBQEDf+c53NHXqVD3++ONq\namrSqFGj9PTTT8tut+vgwYPKz8+XzWZTXl6e7rrrLgWDQT3xxBP64IMP5Ha7tWnTJqWmpkZ7s4a0\nU6dOadOmTTp//rwcDodSU1P105/+VKtXr76qPjtz5ozWrl0r0zQ1c+ZMPf7449He1CEpXP/l5eXp\nH//xHxUbGyuPx6ONGzfK5/PRfwPMnj17tHXrVo0fPz40xP8P//APeuKJJ/r1uzeowwAAALh6g/Y0\nAQAA6B2EAQAALI4wAACAxREGAACwOMIAAAAWRxgAAMDiCAMAAFgcYQAAAIv7/wFfOfxhDsf9FQAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8d035c4f28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"advifit = pm.variational.advi(model=model, n=20000, accurate_elbo=False, optimizer=adam)\n",
"plt.plot(advifit.elbo_vals)"
]
}
],
"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.5.1"
},
"nav_menu": {},
"toc": {
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 6,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": true
},
"widgets": {
"state": {},
"version": "1.1.1"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment