精华内容
下载资源
问答
  • 多维高斯分布

    2019-09-24 10:07:10
    简介   高斯分布是比较常见的概率分布,一维高斯分布如下: f(x)=12πσe−(x−μ)22σ2f(x)=\frac{1}{2\pi\sigma}e^{-{\...但是常见的一般是多维高斯分布,我们可以由一维的高斯分布推广到多维的高斯分布。 推导 ...

    简介

      高斯分布是比较常见的概率分布,一维高斯分布如下:
    f(x)=12πσe(xμ)22σ2f(x)=\frac{1}{2\pi\sigma}e^{-{\frac{(x-\mu)^2} {2\sigma^2}}}
    其中,σ\sigma是方差,μ\mu是平均值。但是常见的一般是多维高斯分布,我们可以由一维的高斯分布推广到多维的高斯分布。

    推导

      多维高斯分布的表示如下:
    P(xμ,Σ)=1(2π)n/2Σ1/2exp{12(xμ)TΣ1(xμ)}P(x|\mu,\Sigma)=\frac{1}{{(2\pi)}^{n/2}|\Sigma|^{1/2}}exp\{{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)}\}
    其中,μ=E(x)\mu=E(x)Σ=Cov(x)=E{(xμ)(xμ)T}\Sigma=Cov(x)=E\{(x-\mu)(x-\mu)^T\}μ\mu是均值向量,Σ\Sigma是协方差矩阵。
      由多维高斯分布可以推导出联合高斯分布,假设有多维变量X1X_1X2X_2,它们的联合高斯分布和之前的形式一样,只不过相关参数有所变化,相关参数如下:
    μ=[μ1μ2]\mu=\left[\begin{matrix}\mu_1\\\mu_2 \end{matrix}\right]
    Σ=[Σ11Σ12Σ21Σ22]\Sigma=\left[\begin{matrix}\Sigma_{11}&\Sigma_{12}\\\Sigma_{21}&\Sigma_{22}\end{matrix}\right]

      条件高斯分布P(X1X2=x2)P(X_1|X_2=x_2)的参数如下:
    μ12=μ1+Σ12Σ221(x2μ2)\mu_{1|2}=\mu_1+\Sigma_{12}\Sigma^{-1}_{22}(x_2-\mu_2)
    Σ12=Σ11Σ221Σ21\Sigma_{1|2}=\Sigma_{11}-\Sigma_{22}^{-1}\Sigma_{21}
      多维高斯分布可以由多个变量的联合概率分布推导出来,一开始,我们考虑n个彼此无关的高斯分布变量,它们的联合概率密度为
    f(x1,x2,...,xn)=i=0nf(xi)=1(2π)n/2i=1nσiexpi=1n(xiμi)2σ2f(x_1,x_2,...,x_n)=\prod_{i=0}^{n}f(x_i)=\frac{1}{(2\pi)^{n/2}\prod_{i=1}^{n}\sigma_i}\exp{-\sum_{i=1}^{n}\frac{(x_i-\mu_i)^2}{\sigma^2}}
    其中,μi\mu_ixix_i的均值,σi\sigma_ixix_i的方差。
    这和多维高斯分布是一致的,由于各个变量不相关,所以协方差矩阵Σ\Sigma是对角阵Σ=dialog(σ12,σ22,...,σn2)\Sigma=dialog(\sigma_1^2,\sigma_2^2,...,\sigma_n^2)
    利用多维高斯分布计算出来的结果与上式相同。

    极大似然估计

      我们可以利用极大似然估计对多维高斯分布的参数进行估计。给定数据X={x1,x2,...,xn}X=\{x_1,x_2,...,x_n\},已知xN(μ,Σ)x\sim N(\mu,\Sigma),估计参数μ\muΣ\Sigma的值。
      概率的对数似然函数如下:
    lnp(Xμ,Σ)=N2lndet(Σ)12n=1N(xnμ)TΣ1(xnμ)+const\ln p(X|\mu,\Sigma)=-\frac{N}{2}\ln \det(\Sigma) -\frac{1}{2}\sum_{n=1}^{N}(x_n-\mu)^T\Sigma^{-1}(x_n-\mu)+const
    将上式对μ\mu求导,得μlnp(Xμ,Σ)=n=1NΣ1(μxn)=Σ1n=1N(μxn)=0\nabla_{\mu} \ln p(X|\mu,\Sigma)=\sum_{n=1}^{N}\Sigma^{-1}(\mu-x_n)=\Sigma^{-1}\sum_{n=1}^{N}(\mu-x_n)=0
    于是,μ^=1Nn=1Nxn\hat\mu=\frac{1}{N}\sum_{n=1}^{N}x_n.

    将上式对Σ\Sigma求导,需要先用"trace trick"对对数似然函数变形,对于矩阵的迹,有以下性质:

    • 如果c是数值,那么tr(c)=ctr(c)=c
    • 如果A,B是两个矩阵而且AB和BA是有定义的,那么tr(AB)=tr(BA)tr(AB)=tr(BA)
    • ABA=BT\nabla_{A}{BA}=B^T
    • Aln(det(A))=(A1)T\nabla_{A}\ln(\det(A))=(A^{-1})^T
    • 如果x是k1的向量,A是kk的对称矩阵,那么x(xTAx)=2Ax\nabla_{x}(x^TAx)=2Ax

    将上述对数似然函数变形,得(因为是求导,所以我们忽略常数项)
    lnp(Xμ,Σ)=N2lndet(Σ)12n=1Ntr((xnμ)TΣ1(xnμ))=N2lndet(Σ)12n=1Ntr(Σ1(xnμ)(xnμ)T)=N2lndet(Σ)12tr(Σ1n=1N(xnμ)(xnμ)T)\begin{aligned} \ln p(X|\mu,\Sigma)=&-\frac{N}{2}\ln \det(\Sigma)-\frac{1}{2}\sum_{n=1}^{N}tr((x_n-\mu)^T\Sigma^{-1}(x_n-\mu))\\ =&-\frac{N}{2}\ln \det(\Sigma)-\frac{1}{2}\sum_{n=1}^{N}tr(\Sigma^{-1}(x_n-\mu)(x_n-\mu)^T)\\ =&-\frac{N}{2}\ln \det(\Sigma)-\frac{1}{2}tr(\Sigma^{-1}\sum_{n=1}^{N}(x_n-\mu)(x_n-\mu)^T) \end{aligned}
    将上式对Σ1\Sigma^{-1}求导,首先,
    Σ1lndet(Σ)=Σ1lndet(Σ1)=ΣT\nabla_{\Sigma^{-1}}\ln\det(\Sigma)=-\nabla_{\Sigma^{-1}}\ln\det(\Sigma^{-1})=-\Sigma^T
    于是,
    Σ1lnp(Xμ,Σ)=N2ΣT12n=1N(xnμ)(xnμ)T\nabla_{\Sigma^{-1}} \ln p(X|\mu,\Sigma)=\frac{N}{2}\Sigma^T-\frac{1}{2}\sum_{n=1}^{N}(x_n-\mu)(x_n-\mu)^T
    令上式等于0,得
    Σ=1Nn=1N(xnμ^)(xnμ^)T\Sigma=\frac{1}{N}\sum_{n=1}^{N}(x_n-\hat\mu)(x_n-\hat\mu)^T

    参考资料
    展开全文
  • python 多维高斯分布数据生成

    万次阅读 多人点赞 2018-10-26 17:16:05
    多维高斯分布
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    
    def gen_clusters():
        mean1 = [0,0]
        cov1 = [[1,0],[0,10]]
        data = np.random.multivariate_normal(mean1,cov1,100)
        
        mean2 = [10,10]
        cov2 = [[10,0],[0,1]]
        data = np.append(data,
                         np.random.multivariate_normal(mean2,cov2,100),
                         0)
        
        mean3 = [10,0]
        cov3 = [[3,0],[0,4]]
        data = np.append(data,
                         np.random.multivariate_normal(mean3,cov3,100),
                         0)
        
        return np.round(data,4)
    
    def save_data(data,filename):
        with open(filename,'w') as file:
            for i in range(data.shape[0]):
                file.write(str(data[i,0])+','+str(data[i,1])+'\n')
                
    def load_data(filename):
        data = []
        with open(filename,'r') as file:
            for line in file.readlines():
                data.append([ float(i) for i in line.split(',')])
        return np.array(data)
    
    def show_scatter(data):
        x,y = data.T
        plt.scatter(x,y)
        plt.axis()
        plt.title("scatter")
        plt.xlabel("x")
        plt.ylabel("y")
        
    data = gen_clusters()
    save_data(data,'3clusters.txt')
    d = load_data('3clusters.txt')
    show_scatter(d)
    

    在这里插入图片描述

    展开全文
  • 今天小编就为大家分享一篇python 多维高斯分布数据生成方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 理解多维高斯分布

    千次阅读 多人点赞 2018-05-16 16:40:27
    理解多维高斯分布 前言 在数理统计和机器学习中,经常用到高斯分布,这里根据网上的资源和理解,对多维高斯分布做一个小总结。 如有谬误,请联系指正。转载请注明出处。 联系方式: e-mail: FesianXu@163....

    前言

    在数理统计和机器学习中,经常用到高斯分布,这里根据网上的资源和理解,对多维高斯分布做一个小总结。如有谬误,请联系指正。转载请注明出处。

    \nabla 联系方式:

    e-mail: FesianXu@gmail.com

    QQ: 973926198

    github: https://github.com/FesianXu

    知乎专栏: 计算机视觉/计算机图形理论与应用

    微信公众号
    qrcode


    一维高斯分布

    标准的一维高斯分布是0均值和单位方差的,数学形式如(1):
    p(x)=12πexp(x22)(1) p(x) = \frac{1}{\sqrt {2\pi}} exp(-\frac{x^2}{2}) \tag{1}
    为了扩展成一般的一维高斯分布,我们引入一个线性变换x:=A(xμ)x := A(x-\mu),结合(1),有:
    p(x)=A2πexp(A2(xμ)22)(2) \begin{aligned} p(x) &= \frac{|A|}{\sqrt{2\pi}} exp(-\frac{A^2(x-\mu)^2}{2}) \\ \end{aligned} \tag{2}
    σ=1/A\sigma=1/A,式(2)变为:
    p(x)=1σ2πexp((xμ)22σ2)(3) p(x) = \dfrac{1}{\sigma\sqrt{2\pi}} exp(-\frac{(x-\mu)^2}{2\sigma^2}) \tag{3}
    从这里可以看出AAσ\sigma存在关系。在系数前乘上A|A|是为了整个分布的积分为1。这里的|\cdot|表示绝对值,在多变量下,则表示行列式。

    在一维高斯分布上,通过调整均值μ\mu和方差σ2\sigma^2可以调整分布的形状,使得其向左右平移,或者拉伸其"顶峰"。

    这里写图片描述

    多维高斯分布

    多维高斯分布其变量为nn维变量,每个变量之间可能会存在关系,为了描述这种关系,我们引入了协方差矩阵Σ\Sigma,其大小为n×nn \times n,其中每一个元素为:
    Σi,j=conv(Xi,Xj)=E(XiXj)E(Xi)E(Ej)(4) \begin{aligned} \Sigma_{i,j} &= conv(X_i, X_j) \\ &= E(X_iX_j)-E(X_i)E(E_j) \end{aligned} \tag{4}

    我们首先看看标准二维高斯分布的数学表达式(5),因为是标准二维高斯分布,所以每个变量之间是独立的:
    p(x,y)=p(x)p(y)=12πexp(x2+y22)(5) p(x,y) = p(x)p(y) = \frac{1}{2\pi} exp(-\frac{x^2+y^2}{2}) \tag{5}
    为了向量化公式,用向量v=[x  y]T\textbf{v}=[x \ \ y]^T,有:
    p(v)=12πexp(12vTv)(6) p(\textbf{v}) = \frac{1}{2\pi} exp(-\frac{1}{2} \textbf{v}^T\textbf{v}) \tag{6}
    这个时候,用v=A(xμ)\textbf{v} = \textbf{A}(\textbf{x}-\mu),其中的A\textbf{A}v\textbf{v}中每个分量的线性组合系数,也就是说A\textbf{A}表示了每个变量的线性关系。有:
    p(v)=A2πexp(12(xμ)TATA(xμ))(7) p(\textbf{v}) = \frac{|\textbf{A}|}{2\pi} exp(-\frac{1}{2} (\textbf{x}-\mu)^T \textbf{A}^T \textbf{A} (\textbf{x}-\mu)) \tag{7}
    Σ=(ATA)1\Sigma=(\textbf{A}^T\textbf{A})^{-1}表示其协方差,其中A|\textbf{A}|为行列式,有:
    p(v)=12πΣ1/2exp(12(xμ)TΣ1(xμ))(8) p(\textbf{v}) = \frac{1}{2\pi |\Sigma|^{1/2}} exp(-\frac{1}{2}(\textbf{x}-\mu)^T \Sigma^{-1} (\textbf{x}-\mu)) \tag{8}
    当维度大于2时,情形类似,nn维的高斯分布公式为:
    p(v)=1(2π)n/2Σ1/2exp(12(xμ)TΣ1(xμ))vRn(9) p(\textbf{v}) = \frac{1}{(2\pi)^{n/2} |\Sigma|^{1/2}} exp(-\frac{1}{2}(\textbf{x}-\mu)^T \Sigma^{-1} (\textbf{x}-\mu)) \\ \textbf{v} \in \mathbb{R}^n \tag{9}

    多维高斯分布的图像性质

    这里写图片描述
    以上三个图形的期望都为:μ=[0,0]T\mu =[0,0]^T,最左端图形的协方差Σ=I\Sigma=I,中间的Σ=0.6I\Sigma=0.6I,最右端的Σ=2I\Sigma=2I,我们可以看出:当变小时,图像变得更加“瘦长”,而当增大时,图像变得更加“扁平”。

    这里写图片描述

    Reference

    1. 斯坦福大学机器学习——高斯判别分析
    2. 多维高斯分布是如何由一维发展而来的?
    展开全文
  • 多维高斯分布讲解

    千次阅读 2018-03-09 14:40:53
  • 一维高斯分布与多维高斯分布 一维高斯分布 高斯分布(Gaussian distribution),又称正态分布(Normal distribution)。若随机变量X服从一个数学期望为μ、方差为σ^2 的正态分布,记为N(μ,σ^2)。其概率密度函数...
  • 多维高斯分布---【2】

    2019-12-12 16:23:08
    多维高斯分布1.一维高斯分布2.二维高斯分布3.多维高斯分布4.心声 1.一维高斯分布 \qquad在介绍二维高斯分布之前我们先介绍一下一维高斯分布的函数图像,如下所示: f(x)=12π⋅δ⋅e−(x−μ)22δ2 f(x)= \frac{1}{\...
  • 多维高斯分布模型

    万次阅读 多人点赞 2017-05-07 00:34:48
    多维高斯模型在机器学习中应用广泛,在学到 Generative Learning Algorithm的时候,碰到了高斯模型,才意识到一定要恶补一下这部分知识,之前上自然语言课的时候,就因为多维高斯模型不懂,全程懵逼。本来想把这部分...
  • 多维高斯分布(一)

    千次阅读 2019-05-15 16:11:34
    多维高斯分布(一) 多维高斯分布是机器学习里面很重要的数学知识,应用于线性高斯模型。本文主要讲已知联合概率分布,求边缘概率分布和条件概率分布。(由于不会在CSDN里面编辑数学公式,所以证明过程都是在word上...
  • 高斯分布是一类非常重要的概率分布,在概率统计,机器学习中经常用到。 一维高斯分布 一维高斯分布的概率密度函数(pdf)形式为: ...多维/多变量高斯分布 正态分布的概念可以扩展到一个以上的维...
  • 高斯分布2——多维高斯分布

    千次阅读 2020-04-01 13:52:11
    惯例依旧是手写版 本文推导了为什么二维高斯分布等高线是圆或椭圆,且等高线上的概率相等!
  • 多维高斯分布(二)

    2019-05-17 15:42:13
    本文继续讲多维高斯分布,前面一篇文章讲的是已知联合概率分布,求边缘概率分布和条件概率分布,本文主要讲已知其中某一个的边缘概率分布和条件概率分布,求另一个的边缘概率分布和条件概率分布。同样采用构造的方法...
  • matlab生成多组多维高斯分布数据

    千次阅读 2020-01-21 16:35:22
    matlab生成多组多维高斯分布数据 之所以写这么一个函数,是因为在练习用matlab实现聚类分析,用matlab生成的高斯分布数据可以作为很好的数据。当然,直接load进鸢尾花数据集也可以拿来练手,到后边再对鸢尾花数据集...
  • 协方差矩阵是实对称矩阵,也是半正定矩阵。所以协方差矩阵满足实对称矩阵和半正定矩阵的性质。 记Σ\SigmaΣ为协方差矩阵。 Σ\SigmaΣ是满秩的,也就是∣Σ∣|...多维高斯分布的概率密度函数: f(x)=1(2π)D/21∣Σ∣
  • 搞懂多维高斯分布的由来

    千次阅读 2019-04-15 17:53:44
    PRML的2.3节一开始就给出了多维高斯分布的形式: N(x∣μ,Σ)=1(2π)d2∣Σ∣12exp⁡{−12(x−μ)TΣ−1(x−μ)}(1)\begin{aligned}\Bbb{N}(\mathbf x|\mathbf{\mu},\mathbf\Sigma) &=\frac{1}{(2\pi)^{\...
  • 在深度学习中,我们通常对模型进行抽样并计算与真实样本... 下面对已知均值与协方差矩阵的两个多维高斯分布之间的KL散度进行推导。当然,因为便于分布之间的逼近,Wasserstein distance可能是衡量两个分布之间差异...
  • 高斯分布中,以数学期望μ表示钟型的中心位置(也即曲线的位置),而标准差(standard deviation)σ表征曲线的离散程度。 随机变量X服从数学期望为μ、方差为σ^2的正态分布,记为: X = N (μ,σ^2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,255
精华内容 2,902
关键字:

多维高斯分布