PRML 1.2 概率论

Posted Real&Love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PRML 1.2 概率论相关的知识,希望对你有一定的参考价值。

PRML 1.2 概率论

贝叶斯概率

考虑一组由参数驱动的

考虑由一组参数 w w w和观察数据 D D D驱动的概率分布。根据关于 w w w的观点,我们可以通过以下两种方式来考虑 w w w值:

frequentist POV频率学派: w w w是唯一的,但未知的,我们可以通过 D D D来估计我们离 w w w有多近

bayesian POV贝叶斯: D D D是唯一的(观察到的); w w w是一个随机变量(可能会改变,我们将在 D D D中看到它的影响)

在频率型POV和贝叶斯型POV中,我们都使用了MLE P ( D ∣ w ) \\mathbb{P}(D|w) P(Dw)
p ( w ∣ D ) = p ( D ∣ w ) p ( w ) p ( D ) p(w | D) = \\frac{p(D|w)p(w)}{p(D)} p(wD)=p(D)p(Dw)p(w)

  • p ( w ∣ D ) p(w|D) p(wD)表达观测到 D \\mathcal{D} D 之后估计参数 w w w 的不确定性
  • p ( w ) p(w) p(w)是先验概率,表达参数 w w w 的假设
  • p ( D ∣ w ) p(D|w) p(Dw)是似然函数,表达观测数据的效果,参数的不确定性通过概率分布来表达

高斯分布

高斯分布由以下定义
N ( x ∣ μ , σ 2 ) = 1 2 π σ 2 e − 1 2 σ 2 ( x − μ ) 2 \\mathcal{N}(x | \\mu, \\sigma^2) = \\frac{1}{\\sqrt{2\\pi\\sigma^2}}e^{-\\frac{1}{2\\sigma^2}(x - \\mu)^2} N(xμ,σ2)=2πσ2 1e2σ21(xμ)2

代表高斯分布的另一种方法是考虑指示的精确性 β : = 1 / σ 2 \\beta := 1 / \\sigma^2 β:=1/σ2
N ( x ∣ μ , β − 1 ) = β 1 / 2 2 π σ 2 e − β 2 ( x − μ ) 2 \\mathcal{N}(x | \\mu, \\beta^{-1}) = \\frac{\\beta^{1/2}}{\\sqrt{2\\pi\\sigma^2}}e^{-\\frac{\\beta}{2}(x - \\mu)^2} N(xμ,β1)=2πσ2 β1/2e2β(xμ)2

def norm_pdf(x, mu, sigma2): 
    return 1 / np.sqrt(2 * np.pi * sigma2) * np.exp(-(x - mu)**2 / (2 * sigma2))
xrange = np.linspace(-4, 4, 100)
plt.plot(xrange, norm_pdf(xrange, 0, 1), label=r"$\\mu=0; \\ \\sigma^2=1$")
plt.plot(xrange, norm_pdf(xrange, 1, 2), label=r"$\\mu=1; \\ \\sigma^2=2$")
plt.plot(xrange, norm_pdf(xrange, -1, 3), label=r"$\\mu=-1; \\ \\sigma^2=3$")
plt.legend(fontsize=15)

在这里插入图片描述

在D 维随机向量 x \\text{x} x 的高斯分布定义

N ( x ∣ μ , Σ ) = 1 ( 2 π ) D / 2 1 ∣ Σ ∣ 1 / 2 exp ⁡ { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } \\mathcal{N} ( \\text{x}|\\boldsymbol{\\mu},\\Sigma ) = \\frac1{( 2\\pi )^{D/2}}\\frac1{|\\Sigma|^{1/2}} \\exp\\{-\\frac12 ( \\text{x}-\\boldsymbol{\\mu} )^T\\Sigma^{-1} ( \\text{x}-\\boldsymbol{\\mu} ) \\} N(xμ,Σ)=(2π)D/21Σ1/21exp{21(xμ)TΣ1(xμ)}

from numpy.linalg import inv
Xrange = np.mgrid[-3:3:0.1, -3:3:0.1]
Sigma = np.array([[0.1, -0.8]]).T
Sigma = np.exp(Sigma @ Sigma.T)

def norm_pdf_v(X, mu, sigma):
    diff_term = (X - mu[:, None])
    D = len(X)
    den = (2 * np.pi) ** (D / 2) * np.sqrt(det(sigma))
    num = np.einsum("inm,ij,jnm->nm", diff_term, inv(sigma), diff_term)
    num = np.exp(-num / 2)
    return num / den
plt.title("Multivariate Normal", fontsize=15)
plt.contourf(*Xrange, norm_pdf_v(Xrange, mu0, Sigma), cmap="viridis", levels=20);

在这里插入图片描述

以上是关于PRML 1.2 概率论的主要内容,如果未能解决你的问题,请参考以下文章

PRML第二章笔记

一起啃PRML - 1.2.1 Probability densities

PRML 2.1 二元变量

PRML 1.6 信息论

PRML为何是机器学习的经典书籍中的经典?

一起啃PRML - 1.2.2 Expectations and covariances 期望和协方差