多元高斯分布:
假设
y
1
,
y
3
,
.
.
.
,
y
d
y^1,y^3,...,y^d
y1,y3,...,yd 分布独立,服从分布
N
(
0
,
1
)
N(0,1)
N(0,1)
联合分布
y
=
(
y
1
,
y
2
,
.
.
.
,
y
d
)
y=(y^1,y^2,...,y^d)
y=(y1,y2,...,yd) 服从分布
g
(
y
)
=
∏
j
=
1
d
1
2
π
e
−
(
y
j
)
2
2
=
1
(
2
π
)
d
2
e
−
1
2
y
T
y
g(y)=\prod_{j=1}^d \frac{1}{\sqrt{2\pi}}e^{-\frac{(y^j)^2}{2}}=\frac{1}{(2\pi)^{\frac{d}{2}}}e^{-\frac{1}{2}y^Ty}
g(y)=j=1∏d2π1e−2(yj)2=(2π)2d1e−21yTy
期
望
:
E
(
y
)
=
0
;
方
差
:
V
a
r
(
y
)
=
1
期望:E(y)=0 \ \ \ ;\ \ \ 方差:Var(y)=1
期望:E(y)=0 ; 方差:Var(y)=1
做变化:
x
=
T
y
+
μ
x=Ty+\mu
x=Ty+μ令:
∑
=
T
T
T
\sum=TT^T
∑=TTT
f
(
x
)
=
g
(
y
)
∣
d
e
t
(
T
)
∣
−
1
(
d
e
t
指
行
列
式
)
f(x)=g(y)|det(T)|^{-1} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (det指行列式)
f(x)=g(y)∣det(T)∣−1 (det指行列式)
=
1
(
2
π
)
d
2
(
d
e
t
∑
)
1
2
e
[
−
1
2
(
x
−
μ
)
T
∑
−
1
(
x
−
μ
)
]
=\frac{1}{(2\pi)^{\frac{d}{2}}(det\sum)^{\frac{1}{2}}}e^{[-\frac{1}{2}(x-\mu)^T\sum^{-1}(x-\mu)]}
=(2π)2d(det∑)211e[−21(x−μ)T∑−1(x−μ)]
期
望
:
E
(
x
)
=
T
E
(
y
)
+
μ
=
μ
期望:E(x)=TE(y)+\mu=\mu
期望:E(x)=TE(y)+μ=μ
方
差
:
V
a
r
(
x
)
=
V
a
r
(
T
y
+
μ
)
=
T
V
(
y
)
T
T
=
∑
方差:Var(x)=Var(Ty+\mu)=TV(y)T^T=\sum
方差:Var(x)=Var(Ty+μ)=TV(y)TT=∑
条件高斯分布与边缘分布:
如果两组变量是联合高斯分布,那么以⼀组变量为条件,另⼀组变量同样是高斯分布。类似地,任何⼀个变量的边缘分布也是高斯分布。
x
=
(
x
b
x
a
)
x=\big(_{x_b}^{x_a}\big)
x=(xbxa)
μ
=
(
μ
b
μ
a
)
\mu=\big(_{\mu_b}^{\mu_a}\big)
μ=(μbμa)
∑
=
(
∑
b
a
∑
b
b
∑
a
a
∑
a
b
)
\sum=\bigg(_{\sum_{ba}\ \ \ \sum_{bb}}^{\sum_{aa}\ \ \ \sum_{ab}}\bigg)
∑=(∑ba ∑bb∑aa ∑ab)
Λ
=
(
∑
)
−
1
\Lambda=(\sum)^{-1}
Λ=(∑)−1
Λ
=
(
Λ
b
a
Λ
b
b
Λ
a
a
Λ
a
b
)
\Lambda=\bigg(_{\Lambda_{ba} \ \ \ \Lambda_{bb}}^{\Lambda_{aa}\ \ \ \Lambda_{ab}}\bigg)
Λ=(Λba ΛbbΛaa Λab)
条件分布是高斯分布:
p
(
x
a
∣
x
b
)
=
N
(
x
a
∣
μ
a
∣
b
,
Λ
a
a
−
1
)
p(x_a|x_b)=N(x_a|\mu_{a|b},\Lambda_{aa}^{-1})
p(xa∣xb)=N(xa∣μa∣b,Λaa−1)
μ
a
∣
b
=
μ
a
−
Λ
a
a
−
1
Λ
a
b
(
x
b
−
μ
b
)
\mu_{a|b}=\mu_a-\Lambda_{aa}^{-1}\Lambda_{ab}(x_b-\mu_b)
μa∣b=μa−Λaa−1Λab(xb−μb)
边缘分布是高斯分布:
p
(
x
a
)
=
N
(
x
a
∣
μ
a
,
(
∑
)
a
a
)
p(x_a)=N(x_a|\mu_a,(\sum)_{aa})
p(xa)=N(xa∣μa,(∑)aa)
极大似然估计:
L
=
n
2
l
o
g
d
e
t
(
∑
)
−
1
−
∑
i
=
1
n
1
2
(
x
i
−
μ
)
T
(
∑
)
−
1
(
x
i
−
μ
)
L=\frac{n}{2}logdet(\sum)^{-1}-\sum_{i=1}^n\frac{1}{2}(x_i-\mu)^T(\sum)^{-1}(x_i-\mu)
L=2nlogdet(∑)−1−i=1∑n21(xi−μ)T(∑)−1(xi−μ)
多元高斯分布可视化:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mpl
if __name__ == '__main__':
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
d = np.random.randn(10000000, 2)
N = 30
density, edges = np.histogramdd(d, bins=[30, 30])
print("样本总数: ", np.sum(density))
density = density/density.max()
x = y = np.arange(N)
t = np.meshgrid(x,y)
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(t[0], t[1], density, c='r', s=15*density, marker='o', depthshade=True)
ax.plot_surface(t[0], t[1], density, cmap='rainbow', rstride=1, cstride=1, alpha=0.9, lw=1)
ax.set_xlabel("x轴")
ax.set_ylabel("y轴")
ax.set_zlabel("z轴")
plt.title("二元高斯分布")
plt.tight_layout(0.1)
plt.show()