基本概念
- 概率:一个随机事件发生的可能性大小,为0到1之间的实数
- 随机变量:建立在随机事件上的变量,一个随机事件可以有多个随机变量
- 概率分布:一个随机变量
X
X
X取每种可能值的概率, 概率分布需要满足下列条件:
P ( X = x i ) = p ( x i ) , ∀ i ∈ { 1 , . . . , n } ∑ i = 1 n p ( x i ) = 1 , p ( x i ) ≥ 0 , ∀ ∈ { 1 , . . . , n } \begin{aligned} &P(X=x_i)=p(x_i),&\forall{i}\in\{1,...,n\}\\ &\sum_{i=1}^{n}p(x_i)=1,\\ &p(x_i)\geq0,&\forall\in\{1,...,n\} \end{aligned} P(X=xi)=p(xi),i=1∑np(xi)=1,p(xi)≥0,∀i∈{1,...,n}∀∈{1,...,n}
其中, P P P表示概率, p p p表示随机变量 x x x取具体值时的概率
通俗解释:所有随机变量发生的概率和为1,每种随机变量发生的概率总是大于等于0
随机变量
根据随机变量取值类型不同,可以分为两类:离散型随机变量和连续随机变量
离散型随机变量
典型的离散型随机变量分布有:
- 伯努利分布(Bernoulli Distribution)
- 二项分布(Binomial Distribution)
伯努利分布(Bernoulli Distribution)
再一次实验中(一次伯努利分布,即只会发生一次事件),假设事件A出现概率为
μ
\mu
μ,不出现的概率为
1
−
μ
1-\mu
1−μ,用变量
X
X
X表示事件A出现的次数,则
X
∈
{
0
,
1
}
X\in\{0, 1\}
X∈{0,1},其相应分布为
p
(
x
=
1
)
=
μ
,
p
(
x
=
0
)
=
1
−
μ
\begin{aligned} &p(x=1)=\mu,\\ &p(x=0)=1-\mu \end{aligned}
p(x=1)=μ,p(x=0)=1−μ
也即
p
(
x
)
=
μ
x
(
1
−
μ
)
(
1
−
x
)
p(x)=\mu^x(1-\mu)^{(1-x)}
p(x)=μx(1−μ)(1−x)
二项分布(Binomial Distribution)
在n次伯努利分布中,若以变量
X
X
X表示事件A出现的次数,则
X
∈
{
0
,
.
.
.
,
n
}
X\in\{0,...,n\}
X∈{0,...,n},其相应分布为
P
(
X
=
k
)
=
(
n
k
)
μ
k
(
1
−
μ
)
n
−
k
,
k
=
1
,
.
.
.
,
n
\begin{aligned} &P(X=k)=\begin{pmatrix} n\\k \end{pmatrix} \mu^k(1-\mu)^{n-k}, &k=1,...,n \end{aligned}
P(X=k)=(nk)μk(1−μ)n−k,k=1,...,n
其中,
k
k
k表示事件A发生k次,
(
n
k
)
\begin{pmatrix}n\\k\end{pmatrix}
(nk)是组合数,表示从n个不同的元素中取出k个元素的所有组合的个数1(n次实验中有k次为事件A的有多少种组合),即
C
n
k
=
n
!
k
!
(
n
−
k
)
!
C_n^k=\frac{n!}{k!(n-k)!}
Cnk=k!(n−k)!n!
连续随机变量
取值来自某个连续的区间,可以取区间上的任意一点,通常取值可以有无限多个。因此,对于连续随机变量概率分布一般用概率密度函数(Probability Density Function,PDF) 描述,用符号
p
(
x
)
p(x)
p(x)表示
∫
−
∞
+
∞
p
(
x
)
d
x
=
1
\int_{-\infty}^{+\infty}p(x)dx=1
∫−∞+∞p(x)dx=1
在函数区间上对概率密度函数积分结果为1。根据积分定义的几何意义,区间上的概率密度函数做积分表示这个函数与坐标轴围成的图形面积,从概率角度来讲就是区间上事件发生的概率,由于积分区间就是事件发生的完整取值区间,因此在完整区间上的该积分结果总是12,也就是说事件发生的任何一个取值一定落在这个区间中,或者说区间中发生事件的概率为1
此外,由于区间上实际上的点是无穷多的,因此说随机变量取某个点的概率总是近乎为0,只有表示随机变量取到某个区间的概率才有意义。为了表示随机变量
X
X
X的取值小于等于
x
x
x的概率,需要用累积分布函数(Cumulative Distribution Function,CDF) 表示
c
d
f
(
x
)
=
P
(
X
≤
x
)
cdf(x)=P(X\leq x)
cdf(x)=P(X≤x)
对于连续随机变量,
c
d
f
(
x
)
=
∫
−
∞
x
p
(
t
)
d
t
cdf(x)=\int_{-\infty}^{x}p(t)dt
cdf(x)=∫−∞xp(t)dt
很好理解,就是曲线与坐标轴在区间
(
−
∞
,
x
]
(-\infty, x]
(−∞,x]的面积,即随机变量落在该区间的概率
如图,蓝色线为概率分布函数、红色线为累积分布函数,表示的是一个 μ = 0 , σ 2 = 2 \mu=0,\sigma^2=2 μ=0,σ2=2的高斯分布,随着 x x x不断变大,随机变量落在 ( − ∞ , x ] (-\infty, x] (−∞,x]的概率不断增大
典型的连续随机变量分布:
- 高斯分布(正态分布,Gaussian Distribution)
高斯分布
随机变量
X
X
X服从一个位置参数为
μ
\mu
μ、方差为
σ
2
\sigma^2
σ2的正态分布,可以记为
X
∼
N
(
μ
,
σ
2
)
X\sim N(\mu,\sigma^2)
X∼N(μ,σ2)3,概率密度函数为:
p
(
x
)
=
1
2
π
σ
e
x
p
(
−
(
x
−
μ
)
2
2
σ
2
)
p(x)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})
p(x)=2πσ1exp(−2σ2(x−μ)2)
如上图即是位置参数 μ = 0 \mu=0 μ=0(通俗可以理解成函数中心点位置),方差 σ 2 = 1 \sigma^2=1 σ2=1(用方差来表示图像尖锐程度)的高斯分布图像
随机向量
随机向量是由一组随机变量构成的向量。
用联合概率分布(Joint Probability Distribution) 表示离散随机向量的概率分布,用联合密度函数(Joint Probability Density Function) 表示连续随机向量的概率分布
P
(
X
1
=
x
1
,
X
2
=
x
2
,
.
.
.
,
X
k
=
x
k
)
=
p
(
x
1
,
x
2
,
.
.
.
,
x
k
)
P(X_1=x_1, X_2=x_2, ..., X_k=x_k)=p(x_1, x_2, ..., x_k)
P(X1=x1,X2=x2,...,Xk=xk)=p(x1,x2,...,xk)
上式表示事件
x
1
,
.
.
.
,
x
k
x_1, ..., x_k
x1,...,xk同时发生的概率。
为了表示随机向量中不同变量之间的关系,需要用条件概率(Conditional Probability) 来建模
例如,对于随机向量
(
X
,
Y
)
(X, Y)
(X,Y),已知
X
=
x
X=x
X=x的条件下,随机变量
Y
=
y
Y=y
Y=y的条件概率为:
p
(
y
∣
x
)
≜
P
(
Y
=
y
∣
X
=
x
)
=
p
(
x
,
y
)
p
(
x
)
p(y|x)\triangleq{P(Y=y|X=x)=\frac{p(x,y)}{p(x)}}
p(y∣x)≜P(Y=y∣X=x)=p(x)p(x,y)
一般把其中的
p
(
x
)
p(x)
p(x)也成为边缘概率(Marginal Probability)
如下图所示,
P
(
A
)
P(A)
P(A)为事件A发生的概率,
P
(
B
)
P(B)
P(B)为事件B发生的概率,
P
(
A
a
n
d
B
)
P(A\ and\ B)
P(A and B)为事件AB同时发生的概率。
那么,假如已知
P
(
A
)
P(A)
P(A),那么B事件在发生的概率就是
P
(
A
∣
B
)
=
P
(
A
a
n
d
B
)
P
(
A
)
P(A|B)=\frac{P(A\ and \ B)}{P(A)}
P(A∣B)=P(A)P(A and B),即已知
P
(
A
)
P(A)
P(A)条件下
P
(
B
)
P(B)
P(B)的条件概率
例如,
可以计算得:
P
(
男
∣
计算机
)
=
p
(
男
,
计算机
)
p
(
男
)
=
0.4
0.5
=
80
%
P
(
男
∣
教育
)
=
p
(
男
,
教育
)
p
(
男
)
=
0.1
0.5
=
20
%
P
(
女
∣
计算机
)
=
.
.
.
=
20
%
P
(
女
∣
教育
)
=
.
.
.
=
80
%
P
(
计算机
∣
男
)
=
p
(
计算机,男
)
p
(
计算机
)
=
80
%
.
.
.
\begin{aligned} & P(男|计算机)=\frac{p(男, 计算机)}{p(男)}=\frac{0.4}{0.5}=80\% \\ \\ & P(男|教育)=\frac{p(男, 教育)}{p(男)}=\frac{0.1}{0.5}=20\% \\ \\ & P(女|计算机)=...=20\% \\ \\ & P(女|教育)=...=80\% \\ \\ & P(计算机|男)=\frac{p(计算机, 男)}{p(计算机)}=80\% \\ & ... \end{aligned}
P(男∣计算机)=p(男)p(男,计算机)=0.50.4=80%P(男∣教育)=p(男)p(男,教育)=0.50.1=20%P(女∣计算机)=...=20%P(女∣教育)=...=80%P(计算机∣男)=p(计算机)p(计算机,男)=80%...
采样(Sampling)
给定一个概率分布
p
(
x
)
p(x)
p(x),生成满足条件的样本就叫采样
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
N
)
∼
p
(
x
)
x^{(1)},x^{(2)},...,x^{(N)}\sim p(x)
x(1),x(2),...,x(N)∼p(x)
∼
\sim
∼符号表示服从于
采样方法
直接采样
直接采样方式只能采集均匀分布
U
n
i
f
o
r
m
[
0
,
1
)
Uniform[0, 1)
Uniform[0,1) 的随机变量,如果要采集其他非
[
0
,
1
)
[0,1)
[0,1)范围内的均匀分布数据需要对区间进行平移或缩放,例如对区间
[
a
,
b
)
[a, b)
[a,b)进行缩放,区间两个端点同时除以b,得到区间
[
a
b
,
1
)
[\frac{a}{b}, 1)
[ba,1)。
较为常用的直接采样方法是使用线性同余发生器(Linear congruential generator),公式如下:
x
t
+
1
=
(
a
x
t
+
c
)
m
o
d
m
x_{t+1} = (ax_t+c)\bmod{m}
xt+1=(axt+c)modm
该方法是一个迭代的方法,对于该方法,首先要给定一个变量
m
m
m用来取余数(一般较大),还需要给定
x
x
x的初始值,经过线性变换后对
m
m
m取模得到下一次迭代值,然后不断迭代生成新的值。
上述方法经常用于计算机中生成在区间
[
0
,
m
]
[0,m]
[0,m]范围内的随机数,实际上式中所有参数都需要凭经验去取得。
下例为C语言中生成随机数的案例:
static unsigned long int next = 1; // 种子,即x
int rand(void)
{
next = next * 1103515245 + 12345; // a = 1103515245, c = 12345
reutrn (unsigned int)(next / 65536) % 32768; // m = 32768
}
void srand(unsigned int seed) // 修改种子
{
next = seed;
}
通过上述代码可以知道,如果使用相同的种子将会产生相同的随机数,这对于后面梯度下降最优解的复现具有重要意义。
间接采样
除了均匀分布的随机变量需要使用直接采样方式外,其他所有分布方式都要通过间接采样来实现。
对于离散分布,可借助下面的思路来实现采样
假设一共有三个随机事件
a
1
,
a
2
,
a
3
a_1,a_2,a_3
a1,a2,a3,发生的概率分别为0.6、0.1、0.3,则可以通过直接采样,生成区间
[
0
,
1
)
[0,1)
[0,1)范围内的随机数,之后对
a
1
,
a
2
,
a
3
a_1,a_2,a_3
a1,a2,a3进行排序,假设就按照这个顺序,然后根据累积分布函数的概念,得下列式子:
c
d
f
(
0.6
)
=
p
(
a
1
)
c
d
f
(
0.7
)
=
p
(
a
1
,
a
2
)
c
d
f
(
1
)
=
p
(
a
1
,
a
2
,
a
3
)
\begin{aligned} & cdf(0.6)=p(a_1) \\ & cdf(0.7)=p(a_1, a_2) \\ & cdf(1)=p(a_1, a_2, a_3) \\ \end{aligned}
cdf(0.6)=p(a1)cdf(0.7)=p(a1,a2)cdf(1)=p(a1,a2,a3)
即可以近似认为事件
a
1
,
a
2
,
a
3
a_1,a_2,a_3
a1,a2,a3发生的区间分别为
[
0
,
0.6
)
,
[
0.6
,
0.7
)
,
[
0.7
,
1
)
[0, 0.6),[0.6, 0.7),[0.7, 1)
[0,0.6),[0.6,0.7),[0.7,1)。因此当产生的随机数落入区间
[
0
,
0.6
)
[0,0.6)
[0,0.6)即认为该样本为事件
a
1
a_1
a1,同理落入
[
0.6
,
0.7
)
,
[
0.7
,
1
)
[0.6, 0.7),[0.7, 1)
[0.6,0.7),[0.7,1)分别可以认为是事件
a
2
,
a
3
a_2, a_3
a2,a3
对于其他连续分布,还可以可以采用类似的方式,比如逆变换采样(Inverse Transform Sampling)
比如说一个连续随机变量的密度函数为
p
(
x
)
p(x)
p(x),其对应的累积分布函数为
y
=
c
d
f
(
x
)
y=cdf(x)
y=cdf(x),一般来说由于累积分布函数的结果表示随机变量在区间
(
0
,
x
]
(0,x]
(0,x]取值的概率,其取值范围在
[
0
,
1
]
[0,1]
[0,1]内均匀分布,可以用直接采样方式进行采样(对累积分布函数y轴进行直接采样),最后利用累积分布函数的逆函数将直接采样的结果转换成对应的
x
x
x值,这个值就是最终满足
p
(
x
)
p(x)
p(x)的采样结果
x
=
c
d
f
−
1
(
y
)
,
x
∼
p
(
x
)
,
y
∼
U
n
i
f
o
r
m
(
0
,
1
)
x=cdf^{-1}(y),\ x\sim{p(x)},\ y\sim{Uniform(0,1)}
x=cdf−1(y), x∼p(x), y∼Uniform(0,1)
期望
期望表示随机变量的均值
对于离散变量,其均值为在对应分布下变量取值的平均大小(变量取值乘对应概率求和)
E
[
X
]
=
∑
n
=
1
N
x
n
p
(
x
n
)
\mathbb{E}[X]=\sum_{n=1}^{N}x_np(x_n)
E[X]=n=1∑Nxnp(xn)
对于连续随机变量,均值为
E
[
X
]
=
∫
R
x
p
(
x
)
d
x
\mathbb{E}[X]=\int_{\mathbb{R}}xp(x)dx
E[X]=∫Rxp(x)dx
根据经验,高斯分布下一般均值为
μ
\mu
μ ,即其位置参数
大数定律(Law of Large Numbers)
该定律意思就是说当样本数量足够大时,样本均值与真实均值(期望)充分接近
也就是说,假如有N个独立分布的样本
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
N
)
∼
p
(
x
)
x^{(1)},x^{(2)},...,x^{(N)}\sim{p(x)}
x(1),x(2),...,x(N)∼p(x),那么则有:
X
^
N
=
1
N
(
x
(
1
)
+
x
(
2
)
+
.
.
.
+
x
(
N
)
)
→
E
[
X
]
f
o
r
N
→
∞
\hat{X}_N=\frac{1}{N}(x^{(1)}+x^{(2)}+...+x^{(N)}) \rightarrow \mathbb{E}[X]\ \ for\ \ N\rightarrow\infty
X^N=N1(x(1)+x(2)+...+x(N))→E[X] for N→∞
为什么计算样本均值是用的样本间的平均数,而上面提到的期望公式是变量乘概率求和,二者是否一样?
简单验证下,例如取10个数,3个为1,7个为0,则 p ( 1 ) = 0.3 , p ( 0 ) = 0.7 p(1)=0.3, p(0)=0.7 p(1)=0.3,p(0)=0.7,用加权平均的计算结果为 1 + 1 + 1 10 = 0.3 \frac{1+1+1}{10}=0.3 101+1+1=0.3,变量乘以概率求和为 0.3 + 0.3 + 0.3 = 0.9 0.3+0.3+0.3=0.9 0.3+0.3+0.3=0.9
解答:这里说的样本均值指的是实际的样本的平均值,不是期望,大数定律是说样本数量足够大时,样本的平均值和实际期望之间若存在一个差额4,那么这个差额是趋近于0的。这里的样本就是用来计算期望的样本,不是重新模拟随机采样得到的。