学习笔记:Gaussian distribution 高斯分布特殊性质及简单具体实现

高斯分布(正态分布)

高斯分布可以写成如下形式:
ρ s ( x ) = ( 1 s ) ∗ e − π ( x − u ) 2 s 2 , s = 2 π ∗ σ ρ_s (x)=(\frac{1}{s})*e ^\frac{-π(x-u)^2}{s^2},s=\sqrt{2π}*σ ρs(x)=(s1)es2π(xu)2s=2π σ

当u=0,s固定不变时, ρ s ( x ) ρ_s (x) ρs(x)只与x的值有关。

性质:

1.乘法概率分布(product distribution)

即多维的高斯分布可以写成一维高斯分布的乘积。
ρ s ( x ) = ρ s ( x 1 ) ∗ ρ s ( x 2 ) ∗ . . . ∗ ρ s ( x n ) ρ_s (x)=ρ_s (x_1)*ρ_s (x_2)*...*ρ_s (x_n) ρs(x)=ρs(x1)ρs(x2)...ρs(xn)

n维高斯分布:
ρ s ( x ) = ( 1 s ) n ∗ e − π ║ x ║ 2 s 2 ρ_s (x)=(\frac{1}{s})^n*e ^\frac{-π║x║^2}{s^2} ρs(x)=(s1)nes2πx2

2.球状对称(Spherically Symmetric)

一维的高斯分布是左右对称的,二维是中心对称的,三维是球状对称的。所以,对于n维的高斯分布, ρ s ( x ) ρ_s (x) ρs(x)值只与x到原点的距离有关,与如何选择坐标轴无关。

3.在线段上产生均匀分布的点(Generating Uniform Elements on Line Segment)

对于一维高斯分布来说,设一个正整数为M,当 s = 5 M s=5M s=5M时, 高斯分布上的点模m(m<M)后取值等价于从[0,m)内随机取值。也就是说,可以从高斯分布转换成模m的均匀分布(对于所有的m<M都成立)

代码:

# encoding: utf-8
#本人不太会写模x的结果,所以比较简单地实现了一下
import math
import numpy as np
import matplotlib.pyplot as plt

def func(x,s,m):
    y=[]
    for i in x:
        c=(np.exp(-(i) ** 2*np.pi) / (s ** 2) / (s))+(np.exp(-(i-m) ** 2*np.pi) / (s ** 2) / (s))
        for j in range(1,200):
            c+=(np.exp(-(i+j*m) ** 2*np.pi) / (s ** 2) / (s))
            c+=(np.exp(-(i-(j+1)*m) ** 2*np.pi) / (s ** 2) / (s))
        y.append(c)
    return y

m1=[0.7,0.9,1.0,1.2]

for m in m1:
    s=1
    x = np.linspace(0.1,m, 100)         
    y = func(x,s,m)
    if m == 0.7:
        plt.plot(x, y,'blue', linewidth=m,label='m=0.7,sig=1')
    if m == 0.9:
        plt.plot(x, y,'orange', linewidth=m,label='m=0.9,sig=1')
    if m == 1.0:
        plt.plot(x, y,'green', linewidth=m,label='m=1.0,sig=1')
    if m == 1.2:
        plt.plot(x, y,'red', linewidth=m,label='m=1.2,sig=1')
plt.legend()        
plt.grid(True) 
plt.show()  

实验结果:
在这里插入图片描述
结论:可知当m越来越小并接近于0.5时,线段越来越趋近于一条水平直线。对于模m的x来说,相当于每个元素的取值概率都相同,从而能在线段上产生均匀分布的点。

这个性质能扩展到n维高斯分布。

参考资料:https://www.ichunqiu.com/course/50441

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值