频率派——统计机器学习
频率派认为
θ
\theta
θ
是未知的变量,
X
X
X
服从概率分布,然后通过极大似然估计求参。
似然:
P
(
X
∣
θ
)
P(X|\theta)
P
(
X
∣
θ
)
,X是确定的,而
θ
\theta
θ
是变量,它描述对于不同的
θ
\theta
θ
,
X出现的概率是多少
。所以我们需要最大化似然函数
P
(
X
∣
θ
)
P(X|\theta)
P
(
X
∣
θ
)
,来求出最适合的参数。
高斯分布
在实际生活中,很多问题的数据可以被建模成
包含一定噪声的高斯分布模型
高斯分布模型是具有如下概率分布的模型:
θ
:
(
u
,
o
)
\theta:(u,o)
θ
:
(
u
,
o
)
p
(
x
∣
θ
)
=
1
2
Π
e
x
p
−
(
x
−
u
)
2
2
o
2
p(x|\theta)=\frac{1}{\sqrt{2Π}}exp^{-\frac{(x-u)^2}{2o^2}}
p
(
x
∣
θ
)
=
2Π
1
e
x
p
−
2
o
2
(
x
−
u
)
2
,它代表随机变量
x
i
x_i
x
i
取不同值的概率大小,u表示高斯分布的均值,o代表分布的标准差。
假设有一批n个样本的数据服从高斯分布,
d
a
t
a
=
(
x
1
,
x
2
.
.
.
x
n
)
n
,
p
data=(x_1,x_2…x_n)_{n,p}
d
a
t
a
=
(
x
1
,
x
2
…
x
n
)
n
,
p
每个
x
i
x_i
x
i
的似然函数是
p
(
x
i
∣
θ
)
p(x_i|\theta)
p
(
x
i
∣
θ
)
,它表达每个样本在不同
θ
\theta
θ
下的出现的概率。
那么所有data的对数似然是
l
o
g
P
(
X
∣
θ
)
=
l
o
g
∏
i
=
1
n
P
(
x
i
∣
θ
)
=
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
=
∑
l
o
g
1
2
Π
e
x
p
−
(
x
−
u
)
2
2
o
2
logP(X|\theta)=log\prod_{i=1}^nP(x_i|\theta)=\sum_{i=1}^nlogP(x_i|\theta)=\sum log\frac{1}{\sqrt{2Π}}exp^{-\frac{(x-u)^2}{2o^2}}
l
o
g
P
(
X
∣
θ
)
=
l
o
g
∏
i
=
1
n
P
(
x
i
∣
θ
)
=
∑
i
=
1
n
l
o
g
P
(
x
i
∣
θ
)
=
∑
l
o
g
2Π
1
e
x
p
−
2
o
2
(
x
−
u
)
2
下面我们需要极大化似然函数来求参
θ
:
(
方差,标准差
)
\theta:(方差,标准差)
θ
:
(
方差,标准差
)
:
a
r
g
m
a
x
l
o
g
∏
i
=
1
n
P
(
x
i
∣
θ
)
argmaxlog\prod _{i=1}^nP(x_i|\theta)
a
r
g
ma
x
l
o
g
∏
i
=
1
n
P
(
x
i
∣
θ
)
等价于
极小化负对数似然
m
i
n
:
−
l
o
g
∏
i
=
1
n
P
(
x
i
∣
θ
)
min:-log\prod_{i=1}^n P(x_i|\theta)
min
:
−
l
o
g
∏
i
=
1
n
P
(
x
i
∣
θ
)
,简写:
m
i
n
:
−
l
o
g
∏
i
=
1
n
P
(
x
i
)
=
−
∑
i
=
1
n
l
o
g
∏
k
K
p
k
y
=
−
∑
i
=
1
n
∑
k
=
1
K
y
k
∗
l
o
g
p
k
min:- log\prod_{i=1}^nP(x_i)=-\sum_{i=1}^n log\prod_k^K p_k^y=-\sum_{i=1}^n \sum_{k=1}^K y_k*logp_k
min
:
−
l
o
g
∏
i
=
1
n
P
(
x
i
)
=
−
∑
i
=
1
n
l
o
g
∏
k
K
p
k
y
=
−
∑
i
=
1
n
∑
k
=
1
K
y
k
∗
l
o
g
p
k
其中
P
(
x
i
)
=
∏
k
=
1
K
p
k
y
P(x_i)=\prod_{k=1}^Kp_k^{y}
P
(
x
i
)
=
∏
k
=
1
K
p
k
y
注意:
p
k
代表该样本预测为类别
k
的概率
p_k代表该样本预测为类别k的概率
p
k
代表该样本预测为类别
k
的概率
, 本质上等于交叉熵损失函数
关于高斯分布的理解:
我们假设数据服从高斯分布,开始并不知道分布的均值和方差,那我们就需要求这个数据的均值和方差,那怎么求呢?
我们可以通过算法(EM,感知机)来用模型去拟合数据,模型提供预测概率分布,数据服从真实概率分布,随着模型的训练,预测概率分布在逐渐拟合真实概率分布,那如何衡量两个分布的差异?我们用到KL散度,似然函数,交叉熵。接下来我们需要使得两个分布更加接近, 那就需要最小化两个分布的差异(最小化交叉熵…)。模型参数在不断更新,在这个过程中(最小化损失函数)也是在最大化每个预测样本的似然函数,使每个样本更接近真实分布。本质上是在更新预测概率分布的均值和方差,直到最后收敛,我们可以找到最接近真实概率分布的均值和方差了。
如果有两个类别的数据,那么这两个类别的数据分布是不一样的,我们最终要求的是两个高斯分布分别的均值和方差。
模型的EM训练过程,直观的来讲是这样:我们通过观察样本的真实概率值和模型预测概率值的接近程度,来判断一个模型是否拟合良好。然后我们通过调整模型以让新模型更适配采样的真实概率值。反复迭代这个过程很多次,直到两个概率值非常接近时,我们停止更新并完成模型训练。
现在我们要将这个过程用算法来实现,所使用的方法是模型生成的数据来决定似然值,即通过模型来计算数据的期望值。通过更新参数μ和σ来让期望值最大化。这个过程可以不断迭代直到两次迭代中生成的参数变化非常小为止。该过程和k-means的算法训练过程很相似(k-means不断更新类中心来让结果最大化),只不过在这里的高斯模型中,我们需要同时更新两个参数:分布的均值和标准差.