Skip to content

Instantly share code, notes, and snippets.

@hagino3000
Last active August 29, 2015 14:15
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 hagino3000/49c01fb692e94cf717c7 to your computer and use it in GitHub Desktop.
Save hagino3000/49c01fb692e94cf717c7 to your computer and use it in GitHub Desktop.
PRML 2.3.5
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:c3c6ec8c52feefc26e93c391e3165df278aeba83107d5b2795cd77ed460b27ba"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# PRML 2.3.5 ~ 2.3.6"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.3.5 \u9010\u6b21\u63a8\u5b9a\n",
"\u30c7\u30fc\u30bf\u70b9\u3092\u4e00\u5ea6\u306b1\u3064\u305a\u3064\u51e6\u7406\u3057\u3066\u306f\u7834\u68c4\u3059\u308b\u3002\u521d\u51fa\u306fp70?\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def unlimited_normal_source(mean, variance):\n",
" while(1):\n",
" yield np.random.normal(mean, np.sqrt(variance))\n",
" \n",
"class SequentialMeanEstimator():\n",
" def __init__(self, source):\n",
" self.source = source\n",
" self.mean = 0\n",
" self.count = 1\n",
" \n",
" def update(self):\n",
" new_sample = self.source.next()\n",
" self.mean = self.mean + 1/float(self.count)*(new_sample - self.mean)\n",
" self.count += 1\n",
" return self.mean"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 479
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"s = SequentialMeanEstimator(unlimited_normal_source(50, 5))\n",
"ret = []\n",
"for _ in range(1000):\n",
" ret.append(s.update())\n",
"\n",
"plt.plot(ret)\n",
"plt.title(u'\u9010\u6b21\u63a8\u5b9a\u306b\u3088\u308b\u30ac\u30a6\u30b9\u5206\u5e03\u306e\u5e73\u5747\u5024\u306e\u63a8\u5b9a')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 495,
"text": [
"<matplotlib.text.Text at 0x1237e8dd0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREJO7/\nAc9o7sAnhWMiAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x1237084d0>"
]
}
],
"prompt_number": 495
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Robbins-Monro\n",
"\u9010\u6b21\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u304c\u5c0e\u51fa\u3067\u304d\u306a\u3044\u7269\u3067\u3082\u3001\u8a08\u7b97\u3067\u304d\u308b\u6c4e\u7528\u7684\u306a\u624b\u7d9a\u304d\u3002\u672c\u6587\u4e2d\u306e\u4f8b\u306f\u30ac\u30a6\u30b9\u5206\u5e03\u306e\u5e73\u5747\u3092\u4f8b\u3068\u3057\u3066\u3044\u308b\u304c\u3001\u3053\u308c\u306fRobbins-Monro\u3092\u3084\u308b\u307e\u3067\u3082\u306a\u3044\u306e\u3067\u3001\u30ac\u30a6\u30b9\u5206\u5e03\u306e\u5206\u6563\u306b\u3064\u3044\u3066\u9010\u6b21\u3067\u51fa\u3057\u3066\u307f\u308b\u3002\u5e73\u5747\u306f\u65e2\u77e5\u3068\u3059\u308b\u3002\n",
"\n",
"$\\theta^{(N)} = \\theta^{(N-1)} - a_{N-1}\\frac{\\partial}{\\partial V_{N-1}}\\{-lnp(x_{N} | \\mu, V_{(N-1)})\\}$\n",
"\n",
"\u5909\u5f62\u3059\u308b\u3068\n",
"\n",
"$\\theta^{(N)} = \\theta^{(N-1)} - a_{N-1}\\{0.5/V_{N-1} - (x_{N} - \\mu)^2/2V_{N-1}^2\\}$\n",
"\n",
"$a_{N-1}$ \u3092 $0.999^{N-1}(V_{N-1})$ \u3068\u304a\u304f\u3068\u3001\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class SequentialVarianceEstimator():\n",
" def __init__(self, source, mean):\n",
" self.source = source\n",
" # \u5206\u6563\u306e\u521d\u671f\u5024\n",
" self.variance = 3\n",
" self.count = 1\n",
" # \u5e73\u5747\u306f\u65e2\u77e5\u3068\u3059\u308b\n",
" self.mean = mean\n",
" # A(N)\u306e\u521d\u671f\u5024\n",
" self.A = 1\n",
" \n",
" def update(self):\n",
" new_sample = self.source.next()\n",
" self.A = self.A*0.999\n",
" self.variance = self.variance - self.A * (0.5 - ((new_sample - self.mean)**2)/(2 * self.variance))\n",
" self.variance = float(self.variance)\n",
" self.count += 1\n",
" return self.variance"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 530
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"s = SequentialVarianceEstimator(unlimited_normal_source(50, 40), 50)\n",
"ret = []\n",
"for _ in range(5000):\n",
" ret.append(s.update())\n",
"\n",
"plt.plot(ret)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 531,
"text": [
"[<matplotlib.lines.Line2D at 0x1276e1d50>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAbkAAAEyCAYAAABnI64zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAMTQAADE0B0s6tTgAAIABJREFUeJzt3Xl8FOXhx/HP7CbZhCNAgHAjHqAURRRBC+Lxw1S04kFV\n1GopXtVWUasVFUUaFerVYm09ULRae2A96l2NqK2oKB4VERUtiCgKSLgMyWaP+f3x7Gbv7GZ3k+xu\nvu/XK69kZ3ZnZiez+53nmed5BkRERERERERERERERERERERERERERERERERERERERERERERERERE\nRERERERERERERERERDq8YqAk7LETKG+nbREREcnIMKABGBx4/BNgA7As8PNf4KX22TQREZH0OYBX\ngK1A78C0c4Fft9cGiYhIx1WU5eVdBHwK9AQaA9N6A7VZXo+IiEhS2Qy57wHnAWOB9wA7ML0SWJvF\n9YiIiKTEkaXlFAMPYEJuG2CFzesHjACeBZYCDwFDsrReERGRhLJVkrsGeA14Oc68wcBG4EdAPXAc\n8DwwKvA4rjlz5rgAV5a2T0RE2o97zpw57vZYsZX8KUmNAxYAYwiF1hpMiG3DdBnwE6q+BPgXcB0m\nGGMEAq4hC9smIiLtrLa2dk1FRcXw9gi6bJTkTsEEWXi3gH6YVpbrganAd3Fe11yIuQDOP/98XC4V\n5poze/Zsqqur23sz8oL2VWq0n1KnfZWc2+3mzjvv3BXzvZ6XITcjzrTPgcMwJbkXMSW3WwLzJgED\ngOXJFuxyuRRySdi2rX2UIu2r1Gg/pU77KvdluwtBUFegGybkTgduBT7AlN6+xFyX87TSukVERIDW\nC7meYX9/A/y4ldbTIX30kcWjjzq5+movVVVV7b05eUP7KjXaT6nTvsp92epCIG3olluKuOEGc36i\nD1nqtK9So/2UOu2r3KeQy0Ndu5qGqrad5IkiIh2cQi4Pde9ufr/zTuIeIBdeWERZWSn77VeS8Dki\nIoVOIZfHLrmkmPo43ekfecTBvfea6syPP27+X7xsmcWaNdnoLikiknvyPuT+/ncH8+Y523sz2tTW\nreb32287mDGjOGb+GWdElt6aq9Y85BAXBx+s0p6IFKa8D7np00uoro79oi9kd98dahT7/vvJS2Er\nVzb/nNpaleREpDDlfch1VD16mOLZBx/E/gvLyiKLbgccEL+zqhquiEihU8jloc6dbYYMCSXU9u2R\n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\nvHQA+wBvtcsWtb/Xgf+LmlaGOWBWknyfrcP0Y+kXtYx9MQ0u8lEx8Dim1dr3CZXOcvqD1g5GAD+J\nmmZhrtW9i46roFMwJzgvYYYcfAPzvl7B1BJ0IfH79GL2V3SDiVGE9sPrxDbGGRVYT75JNBTj52R2\nvDS3H/NxPzWrow/kfCZwW9S0RzCNJcDsl1uIbF2YbJ9dEHhcHHh8HPl90vBrTLVSWdT0zpjrTtEf\ntI8wrQktTB+f6A/aC5jSIJgSYfQH7R5Mt4J8MxCzP8YGHluYhjXPBx7ruErsc0zrSkj+Pidjjptg\ni9wxwGeEBnXYD3NNNFjlvTvwP2KPw1xXggmikwOPLeBsYHHgcabHS7L9WDA6+kDOF2L6doXrhmmG\nvAJzVvgbIm+RlGyfOYArAq9fCizCXH/KRyXADswZXjz6oEU6EFMieQtTevsTof5fOq4S20yoM3gq\n7/NMzPWptzCd73eJmn8MZv+/jQmFRMdvrhsKPIXpBP42prFOsP9fNo6XZPtRpODtR6ipe/DnbcwH\nayz6oImISB5zEjl2XpArME9ERERERERERERERERERERERERERERERERERERERERERERERERERERE\nRERERERERERERERERERERERERKT1/D9/0VD9a+VCEwAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x127570290>"
]
}
],
"prompt_number": 531
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.3.6 \u30ac\u30a6\u30b9\u5206\u5e03\u306b\u5bfe\u3059\u308b\u30d9\u30a4\u30ba\u63a8\u8ad6\n",
"\n",
"\u5206\u6563 $\\sigma^2$ \u306f\u65e2\u77e5\u3068\u3057\u3001\u4e0e\u3048\u3089\u308c\u305fN\u500b\u306e\u89b3\u6e2c\u5024\u96c6\u5408\u304b\u3089\u5e73\u5747\u3092\u63a8\u5b9a\u3059\u308b\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import scipy.stats"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 483
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mu_0 = 0\n",
"sigma2_0 = 1\n",
"\n",
"def samples(mu, sigma2):\n",
" while(1):\n",
" yield np.random.norm(mu, np.sqrt(sigma2))\n",
"\n",
"def calc_mu_N(n, mu_0, mu, sigma2):\n",
" samples = []\n",
" mu_ML = 0\n",
" if n > 0:\n",
" samples = np.random.normal(mu, np.sqrt(sigma2), n)\n",
" mu_ML = np.average(samples)\n",
" \n",
" mu = sigma2/float(n*sigma2 + sigma2) * mu_0 + n*sigma2/float(n*sigma2 + sigma2) * mu_ML\n",
" sigma2N = sigma2*sigma2/(sigma2 + n*sigma2)\n",
" return mu, sigma2N"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 484
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = np.linspace(-1, 1, 100)\n",
"muN, sigma2N = calc_mu_N(0, 0, 0.8, 0.1)\n",
"y = scipy.stats.norm.pdf(x, muN, np.sqrt(sigma2N))\n",
"plt.plot(x, y)\n",
"\n",
"muN, sigma2N = calc_mu_N(1, 0, 0.8, 0.1)\n",
"y = scipy.stats.norm.pdf(x, muN, np.sqrt(sigma2N))\n",
"plt.plot(x, y)\n",
"\n",
"muN, sigma2N = calc_mu_N(2, 0, 0.8, 0.1)\n",
"y = scipy.stats.norm.pdf(x, muN, np.sqrt(sigma2N))\n",
"plt.plot(x, y)\n",
"\n",
"muN, sigma2N = calc_mu_N(10, 0, 0.8, 0.1)\n",
"y = scipy.stats.norm.pdf(x, muN, np.sqrt(sigma2N))\n",
"plt.plot(x, y)\n",
"plt.title(u'\u5206\u6563\u3092\u65e2\u77e5\u3068\u3057\u305f\u6642\u306e\u3001\u30ac\u30a6\u30b9\u5206\u5e03\u306e\u5e73\u5747$\\mu$\u306b\u5bfe\u3059\u308b\u30d9\u30a4\u30ba\u63a8\u8ad6')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 485,
"text": [
"<matplotlib.text.Text at 0x123defb10>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nhBBCCCFE1f0/NVb4ojeDSg8AAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x12332bcd0>"
]
}
],
"prompt_number": 485
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment