{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### 一.概率与图的关系\n", "概率图模型(PGM)其实可以拆开看做“概率”+“图”,它是以图的方式呈现随机变量的联合概率分布,这一节主要主要介绍有向无环图,即贝叶斯网,假如我们有如下的一个联合概率分布,它可以按照链式规则展开如下: \n", "\n", "\n", "$$\n", "p(a,b,c)=p(a)\\cdot p(b\\mid a)\\cdot p(c\\mid a,b)\n", "$$ \n", "\n", "那么它可以用有向图表示为: \n", "![avatar](./source/12_概率图初探demo.png)\n", "\n", "但是,很多情况下变量之间是具有条件独立性的,即某些变量之间并不会互相影响,比如对上面的模型做一个马尔科夫假设,让每一个随机变量只与它的前一个随机变量有关: \n", "\n", "$$\n", "p(a,b,c)=p(a)\\cdot p(b\\mid a)\\cdot p(c\\mid b)\n", "$$ \n", "\n", "那么,此时的概率图可以表示为: \n", "\n", "![avatar](./source/12_概率图初探demo2.png) \n", "\n", "#### 小结一下\n", "\n", "通过概率图的方式,我们可以非常简单直接的表示概率的分布关系,反过来,我们也可以通过图很容易的推导出它的联合概率分布公式: \n", "\n", "$$\n", "p(x)=\\prod_ip(x_i\\mid x_{Pa(i)})\n", "$$ \n", "\n", "这里$Pa(i)$表示第$i$个节点的前驱节点,比如上面$b$的前驱节点即为: $Pa(b)=a$ " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 案列演示\n", "再比如如下的概率图: \n", "\n", "![avatar](./source/12_概率图初探demo3.png)\n", "\n", "可以很快写出它的联合概率分布: \n", "\n", "$$\n", "p(a,b,c,d,e)=p(a)\\cdot p(b\\mid a)\\cdot p(c\\mid a,b)\\cdot p(d\\mid b)\\cdot p(e\\mid c)\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 二.条件独立性的好处\n", "上面提到了条件独立性,接下来聊一下它,假如: \n", "\n", "$$\n", "p(c\\mid b)=p(c\\mid a,b)\n", "$$ \n", "\n", "可以发现不管$a$存在与否,对条件概率$p(c\\mid b)$都没有影响,那么就称在$b$被观测的条件下,$a$与$c$条件独立,之所以可以这样做,因为随机变量大多满足这样的客观规律,比如你当前的心情可能只与最近一个小时内所遇到的事情相关,难道你还会被一星期前某个瞬间的心情所影响吗? \n", "\n", "\n", "对随机变量做条件独立假设还有一个计算上的好处:**极大地降低了参数量**\n", "\n", "比如对$p(a,b,c)$如果每个随机变量都有10种取值情况,那么$p(a,b,c)$的参数量有$10^3$,但如果对其做条件独立性假设:$p(a,b,c)=p(a)\\cdot p(b\\mid a)\\cdot p(c\\mid b)$后参数量将只有:10($p(a)$)+100($p(b\\mid a)$)+100($p(c\\mid b)$)=210,对于更加高维的随机变量,将会极大地降低参数量" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }