Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rakhmaevao/7f94bf034d937642833c8a91506f538d to your computer and use it in GitHub Desktop.
Save rakhmaevao/7f94bf034d937642833c8a91506f538d to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Руководство для байесовского ниндзя (от студента Дейва)\n",
"\n",
"Это адаптация и перевод материала с канала [Student Dave](https://www.youtube.com/channel/UCUxiT_SKEUs1oWT6i9P3vPQ).\n",
"Так как его сайт не работает, контакта с ним нет, а его материал очень полезный.\n",
"\n",
"## Зачада\n",
"Дейв ставит задачу для бейсовского ниндзя. Необходимо с некоторой точностью найти в кустах перепелку. Где перепелка до опыта не известно, но перепелка дает N криков. По крику с заданой дисперсией можно определить её положение в кустах.\n",
"\n",
"Благодаря теореме Байеса удается по N крикам скорректировать плотность вероятности от равномерного распределения в начале до нормального с очень мелой дисперсией в конце N опытов.\n",
"\n",
"Пример показывает аллгортим итерративного байесовского фильтра.\n",
"\n",
"## Решение\n",
"\n",
"### Входные данные\n",
"\n",
"Опредлеение по крику задано двумерным каусовым распределением с дисперсиями по x, y равное двум.\n",
"Но правльно для многомерных с. в. использовать понятие ковариационной матрицы.\n",
"\\begin{equation}\n",
"K = \\begin{bmatrix}\n",
"\\sigma_x^2 & 0 \\\\\n",
"0 & \\sigma_y^2\n",
"\\end{bmatrix} = \\begin{bmatrix}\n",
"4 & 0 \\\\\n",
"0 & 4\n",
"\\end{bmatrix}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# %matplotlib notebook\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import cm\n",
"from matplotlib.ticker import LinearLocator, FormatStrFormatter\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from math import *\n",
"from numpy import linalg as la\n",
"from matplotlib.animation import FuncAnimation\n",
"import pandas as pd\n",
"\n",
"# written by StudentDave\n",
"# for licensing and usage questions\n",
"# email scienceguy5000@gmail.com\n",
"# recursive bayesian estimation example:\n",
"# adapted from Michael A. Goodrich\n",
"# 3 Sept 2004, CS 470\n",
"# Ported to python rahmaevao@gmil.com 2020\n",
"\n",
"\"\"\"\n",
"Перепел кричит N раз, и для каждого крика ниндзя слышит перепела в каком-то месте.\n",
"Ошибка в оценке того, где находится крик, будет определяться как гауссовская,\n",
"где фактически находится перепел со стандартным отклонением 2.\n",
"\"\"\"\n",
"\n",
"N = 100 # Number of squawks (experiences)\n",
"quail = [3, 5] # where the quail is hiding\n",
"\n",
"# Ковариационная матрица измерений\n",
"K=[[2**2, 0 ],\n",
" [0, 2**2]]\n",
"\n",
"#squawks = np.array([sd * np.random.randn(N) + quail[0], sd * np.random.randn(N) + quail[1]])\n",
"squawks = []\n",
"for i in range(N):\n",
" x = K[0][0] * np.random.randn() + quail[0]\n",
" y = K[1][1] * np.random.randn() + quail[1]\n",
" squawks.append([x, y])\n",
"squawks = np.array(squawks) \n",
"\n",
"fig, ax = plt.subplots() \n",
"ax.scatter([quail[0]], [quail[1]], c='red', alpha=1, edgecolors='none', s=200, label = \"Там где сидит перепелка на самом деле\")\n",
"\n",
"ax.set(xlim=(0, 10), ylim=(0, 8))\n",
"ax.set_title(\"Расположение перепела и опредление его положения по звуку\")\n",
"ax.set_xlabel(\"x\")\n",
"ax.set_ylabel(\"y\")\n",
"\n",
"sc = ax.scatter(squawks[0], squawks[1], label = \"Измеренное положение перепелки\")\n",
"\n",
"def animate(i):\n",
" storage = []\n",
" for j in range(range(1, N)[i-1]):\n",
" storage.append(squawks[j])\n",
" sc.set_offsets(storage)\n",
" return sc\n",
"\n",
"anim = FuncAnimation(fig, animate, frames=N, interval=80, blit=False)\n",
"ax.legend(loc='lower right')\n",
"\n",
"plt.show()\n",
"# anim.save('top_view.gif', writer='imagemagick')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"На график выше виден сам перепел и наше измрение о нем по его крикам.\n",
"\n",
"Теперь строим поверхность - вероятность нахождения перепела в кадрате от 2 до 4 по иксу и от 4 до 6 по игреку (куст). Распределение равномерное."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"# До опыта (априори) веротность нахождения перепела равномерна\n",
"search_area_x = np.arange(0, 10, 0.1) # Область поиска\n",
"search_area_y = np.arange(0, 8, 0.1) # Область поиска\n",
"prior=np.ones((len(search_area_y),len(search_area_x))) # Initialize all one --> uniform prior\n",
"\n",
"prior=prior/np.sum(np.sum(prior))\n",
"\n",
"fig1 = plt.figure()\n",
"ax1 = fig1.gca(projection='3d')\n",
"ax1.set_zlim(0, 1)\n",
"\n",
"s_x, s_y = np.meshgrid(search_area_x, search_area_y)\n",
"# Plot the surface.\n",
"ax1.plot_surface(s_x, s_y, prior, cmap=cm.coolwarm, linewidth=0, antialiased=False)\n",
"ax1.set_xlabel('x')\n",
"ax1.set_ylabel('y')\n",
"ax1.set_zlabel('p(x, y)')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Байесовская итерративная оценка\n",
"\n",
"До опыта (априори) вероятность того, что перепелка будет в любом месте кустов одинакова. Априорное распределение равномерное.\n",
"Теорема Байеса позволяет уточнять распределение по результатам опыта.\n",
"Для корректировки распределения (изначально равномерного) до высокоточного (после $ N $ измерений) необходимо воспользоваться формулой Байеса для непрерывных случайных величин:\n",
"\n",
"\\begin{equation}\n",
"f_{apost}(X) = \\frac{f_{apr}(X) \\cdot f_{mes}(Y)}{\\int f_{apr}(X) \\cdot f_{mes}(X) dX}\n",
"\\end{equation}\n",
"\n",
"где $ X $ - вектор-столбец-перменная вида $\\begin{pmatrix} x\\\\ y\\end{pmatrix}$;\n",
"\n",
"$ f_{apost}(X) $ - уточненное распределение;\n",
"\n",
"$ f_{apr}(X) $ - распределение известное до опыта;\n",
"\n",
"$ f_{mes}(X) $ - распределение модели измерения.\n",
"\n",
"Дисперсия распределения модели измерения известна ниндзя заранее. За математическое ожидание примнимается точка пространства, а за случайную величину приравниваем к замеру (вероятность гипотезы о том, что в этой точке пространства сидит перепелка при получении замера):\n",
"\n",
"\\begin{equation}\n",
"f_{mes}(X) = \\frac{1}{(2\\pi)^2 detK} e^{0.5 (Y-X)^T K^{-1} (Y-X)}, \n",
"\\end{equation}\n",
"где $K$ - ковариационная матрица;\n",
"$Y$ - результат замера вида $\\begin{pmatrix} x\\\\ y\\end{pmatrix}$;\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"a, b = prior.shape\n",
"size = a * b\n",
"prior = prior.reshape(size)\n",
"search_area_x = s_x.reshape(size)\n",
"search_area_y = s_y.reshape(size)\n",
"search_area = []\n",
"for i in range(len(search_area_y)):\n",
" search_area.append([search_area_x[i], search_area_y[i]])\n",
"search_area = np.array(search_area)\n",
" \n",
"fig1 = plt.figure()\n",
"ax2 = fig1.gca(projection='3d')\n",
"\n",
"def pdf2d(x, mu, k):\n",
" xT = (x - mu).transpose()\n",
" mul1 = np.dot(xT, la.inv(K))\n",
" mul2 = np.dot(mul1, x - mu)\n",
" return 1/(2*pi*sqrt(la.det(K))) * exp(-(1/2) * mul2)\n",
"\n",
"posteriors = [prior]\n",
"for squawk in squawks:\n",
" prior = posteriors[len(posteriors)-1]\n",
" posterior = np.array(list(map(lambda exp_v, prior: pdf2d(x = squawk, mu=exp_v, k=K) * prior, search_area, prior)))\n",
" posterior=posterior/np.sum(posterior)\n",
" posteriors.append(posterior)\n",
" \n",
"posterior = posterior.reshape(a, b)\n",
"\n",
"surf = ax2.plot_surface(s_x, s_y, posterior, cmap=cm.coolwarm, linewidth=0, antialiased=False)\n",
"ax2.set_xlabel('x')\n",
"ax2.set_ylabel('y')\n",
"ax2.set_zlabel('Вероятность')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.animation as animation\n",
"\n",
"fig2 = plt.figure()\n",
"ax3 = fig2.gca(projection='3d')\n",
"\n",
"\n",
"plot = ax3.plot_surface(s_x, s_y, posterior, cmap=cm.coolwarm, linewidth=0, antialiased=False)\n",
"\n",
"def animate(i):\n",
" ax3.clear()\n",
" posterior = posteriors[i].reshape(a, b)\n",
" plot = ax3.plot_surface(s_x, s_y, posterior, cmap=cm.coolwarm, linewidth=0, antialiased=False)\n",
" ax3.set_xlabel('x')\n",
" ax3.set_ylabel('y')\n",
" ax3.set_zlabel('p(x, y)')\n",
" return plot,\n",
"\n",
"pam_ani = animation.FuncAnimation(fig2, animate, frames=N, interval=120, blit=False)\n",
"pam_ani.save('posteriors2.gif', writer='imagemagick')\n"
]
}
],
"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.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment