极大似然估计(MLE)
考虑一组含有
m
m
m个样本的数据集
X
=
{
x
(
1
)
,
.
.
.
,
x
(
m
)
}
\mathbb{X}=\{x^{(1)}, ..., x^{(m)}\}
X={x(1),...,x(m)},独立的由未知的真实数据生成分布
p
d
a
t
a
(
x
)
p_{data}(\mathbf{x})
pdata(x)生成。
令
p
m
o
d
e
l
(
x
;
θ
)
p_{model}(\mathbf{x;\theta)}
pmodel(x;θ)是由模型参数确定在相同特征空间上的概率分布。模型由参数
θ
\theta
θ唯一确定,参数
θ
\theta
θ确定了一个参数空间
Θ
\Theta
Θ,不同的
θ
\theta
θ对应的不同的模型。机器学习的本质就是希望通过数据找到数据背后的真实生成分布
p
d
a
t
a
p_{data}
pdata,也就是希望用模型分布
p
m
o
d
e
l
p_{model}
pmodel拟合数据生成分布
p
d
a
t
a
p_{data}
pdata,但是数据生成分布
p
d
a
t
a
p_{data}
pdata是未知的,是我们想要拟合的对象。我们拥有的是从
p
d
a
t
a
p_{data}
pdata采样得到的有限的样本。因此,模型训练的本质就在参数空间
Θ
\Theta
Θ上寻找最优参数
θ
^
\hat{\theta}
θ^使模型拟合训练集,也就是使模型分布近似训练集上的经验分布
p
^
d
a
t
a
(
x
)
\hat{p}_{data}(x)
p^data(x)。训练模型事实上就在训练集上对参数
θ
\theta
θ的极大似然估计。从贝叶斯估计的角度,参数的极大似然估计体现了数据对模型参数的偏好。
θ
\theta
θ的极大似然被定义为:
θ
M
L
=
a
r
g
m
a
x
θ
p
m
o
d
e
l
(
X
;
θ
)
=
a
r
g
m
a
x
θ
∏
i
=
1
m
p
m
o
d
e
l
(
x
(
i
)
;
θ
)
\begin{aligned} \theta_{ML}&=\underset{\theta}\mathbf{arg\ max}\ p_{model}(\mathbb{X};\theta)\\ &=\underset{\theta}\mathbf{arg\ max}\ \prod_{i=1}^{m}p_{model}(x^{(i)};\theta) \end{aligned}
θML=θarg max pmodel(X;θ)=θarg max i=1∏mpmodel(x(i);θ)
因此模型的训练就是以最大化似然函数为目标的优化问题。该问题的目标函数为:
L
(
θ
)
=
∏
i
=
1
m
p
m
o
d
e
l
(
x
(
i
)
;
θ
)
L(\theta)=\prod_{i=1}^mp_{model}(x^{(i)};\theta)
L(θ)=i=1∏mpmodel(x(i);θ)
使用对数似然(Log-Likelihood,LL)可将乘积转换为求和,更便于计算。
l
n
L
(
θ
)
=
∑
i
=
1
m
l
n
p
m
o
d
e
l
(
x
(
i
)
;
θ
)
lnL(\theta)=\sum_{i=1}^mlnp_{model}(x^{(i)};\theta)
lnL(θ)=i=1∑mlnpmodel(x(i);θ)
实践中,通常以负对数似然(Negative Log-Likelihood, NLL)作为代价函数,并通过最小化代价函数寻找最优参数。
J
(
θ
)
=
−
l
n
L
(
θ
)
=
−
∑
i
=
1
m
l
n
p
m
o
d
e
l
(
x
(
i
)
;
θ
)
\begin{aligned} J(\theta)&= -lnL(\theta)\\ &=-\sum_{i=1}^mlnp_{model}(x^{(i)};\theta) \end{aligned}
J(θ)=−lnL(θ)=−i=1∑mlnpmodel(x(i);θ)
以上就是机器学习中参数模型通用理论基础。主要是两个部分:
- 定义模型,即定义 p m o d e l p_{model} pmodel。
- 训练模型,即求 θ ^ = a r g m i n θ J ( θ ) \hat{\theta}=\underset{\theta}{arg\ min}\ J(\theta) θ^=θarg min J(θ)
条件似然估计
最大似然估计很容易扩展到估计条件概率
P
(
y
∣
x
;
θ
)
P (\mathbf{y}|\mathbf{x};\theta)
P(y∣x;θ),从而给定x预测y。实际上这是最常见的情况,因为这构成了大多数监督学习的基础。如果
X
X
X表示所有的输入,
Y
Y
Y表示我们观测到的目标,那么条件最大似然估计是
θ
M
L
=
a
r
g
m
a
x
θ
P
(
Y
∣
X
;
θ
)
=
a
r
g
m
a
x
θ
∑
i
=
1
m
l
n
P
(
y
(
i
)
∣
x
(
i
)
;
θ
)
\begin{aligned} \theta_{ML}&=\underset {\theta} {\mathbf{arg\ max}}P(Y|X;\theta)\\ &=\underset{\theta}{\mathbf{arg \ max}}\sum_{i=1}^mlnP(y^{(i)}|x^{(i)};\theta) \end{aligned}
θML=θarg maxP(Y∣X;θ)=θarg maxi=1∑mlnP(y(i)∣x(i);θ)
监督学习中的判别模型,直接对类别后验概率分布
p
(
y
∣
x
)
p(y|x)
p(y∣x)进行建模,并不关心
x
x
x的分布是如何的。类似的,在这种情况下,我们希望用模型分布
p
m
o
d
e
l
(
y
∣
x
;
θ
)
p_{model}(y|x;\theta)
pmodel(y∣x;θ)对真实的条件概率分布
p
d
a
t
a
(
y
∣
x
)
p_{data}(y|x)
pdata(y∣x)进行近似。此时,似然函数为:
L
(
θ
)
=
∏
i
=
1
m
p
m
o
d
e
l
(
y
(
i
)
∣
x
(
i
)
;
θ
)
L(\theta)=\prod_{i=1}^mp_{model}(y^{(i)}|x^{(i)};\theta)
L(θ)=i=1∏mpmodel(y(i)∣x(i);θ)
代价函数为:
J
(
θ
)
=
−
l
n
L
(
θ
)
=
−
∑
i
=
1
m
l
n
p
m
o
d
e
l
(
y
(
i
)
∣
x
(
i
)
;
θ
)
\begin{aligned} J(\theta)&=-lnL(\theta)\\ &=-\sum_{i=1}^mlnp_{model}(y^{(i)}|x^{(i)};\theta) \end{aligned}
J(θ)=−lnL(θ)=−i=1∑mlnpmodel(y(i)∣x(i);θ)
似然函数的解释
似然函数是模型参数 θ \theta θ的函数,是在模型分布上采样得到数据生成分布上的观测值的概率值。如果这个概率值越大,就说明模型分布越接近真实数据分布。这个函数就衡量了模型分布 p m o d e l p_{model} pmodel和真实数据生成分布 p d a t a p_{data} pdata之间的匹配程度。最大似然的目的就是寻找模型假设空间中的最优参数 θ \theta θ,使得模型拟合样本。
范式
1. Logistic Regression
比如在Logistic Regression中,直接对二分类问题建立概率模型。模型输出为:
y
^
=
p
(
y
=
1
∣
x
;
w
,
b
)
=
σ
(
w
T
x
+
b
)
\hat{y}=p(y=1|x;\mathbf w, b)=\sigma(\mathbf{w}^Tx+b)
y^=p(y=1∣x;w,b)=σ(wTx+b)
其中
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)为sigmoid函数,定义为:
σ
(
x
)
=
1
1
+
e
x
p
(
−
x
)
\sigma(x)=\large{\frac{1}{1+\mathbf{exp}(-x)}}
σ(x)=1+exp(−x)1
利用条件MLE来估计其模型参数
w
\mathbf{w}
w和
b
b
b。
首先,模型为
p
m
o
d
e
l
(
y
∣
x
;
θ
)
=
σ
(
w
T
x
(
i
)
+
b
)
y
(
i
)
(
1
−
σ
(
w
T
x
(
i
)
+
b
)
)
(
1
−
y
(
i
)
)
p_{model}(y|x;\theta)=\sigma(\mathbf{w}^Tx^{(i)}+b)^{y^{(i)}}(1-\sigma(\mathbf{w}^Tx^{(i)}+b))^{(1-y^{(i)})}
pmodel(y∣x;θ)=σ(wTx(i)+b)y(i)(1−σ(wTx(i)+b))(1−y(i))
似然函数为
L
(
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
σ
(
w
T
x
+
b
)
y
(
i
)
(
1
−
σ
(
w
T
x
+
b
)
)
(
1
−
y
(
i
)
)
\begin{aligned} L(\theta)&=\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta)\\ &=\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta)=\sigma(\mathbf{w}^Tx+b)^{y^{(i)}}(1-\sigma(\mathbf{w}^Tx+b))^{(1-y^{(i)})} \end{aligned}
L(θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏mp(y(i)∣x(i);θ)=σ(wTx+b)y(i)(1−σ(wTx+b))(1−y(i))
代价函数为:
J
(
θ
)
=
−
l
n
L
(
θ
)
=
−
∑
i
=
1
m
[
y
(
i
)
l
o
g
y
(
i
)
+
(
1
−
y
(
i
)
)
(
1
−
l
o
g
y
(
i
)
)
]
\begin{aligned} J(\theta)&=-lnL(\theta)\\ &= -\sum_{i=1}^m[y^{(i)}\mathbf{log}y^{(i)}+(1-y^{(i)})(1-\mathbf{log}y^{(i)})] \end{aligned}
J(θ)=−lnL(θ)=−i=1∑m[y(i)logy(i)+(1−y(i))(1−logy(i))]
在机器学习中,代价函数要取平均,使模型不受训练数据大小的影响。因此有:
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
l
o
g
y
(
i
)
+
(
1
−
y
(
i
)
)
(
1
−
l
o
g
y
(
i
)
)
]
J(\theta)=-\frac{1}{m}\sum_{i=1}^m[y^{(i)}\mathbf{log}y^{(i)}+(1-y^{(i)})(1-\mathbf{log}y^{(i)})]
J(θ)=−m1i=1∑m[y(i)logy(i)+(1−y(i))(1−logy(i))]
这就是标准的Logistic Regression的代价函数了,可以看出它完全可以有概率的角度推导出来。
2. Linear Regression
线性回归可以从最小二乘的角度拟合模型,也可以认为是一种概率模型。
首先,模型的预测输出为:
y
^
=
h
θ
(
x
)
=
θ
T
x
\hat{y}=h_{\theta}(x)=\theta^Tx
y^=hθ(x)=θTx
为使模型参数拟合训练集,可直接定义代价函数为:
J
(
θ
)
=
1
m
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
J(\theta)=\frac{1}{m}\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2
J(θ)=m1i=1∑m(y(i)−θTx(i))2
这被称为最小二乘回归。
线性回归也可以从概率的角度进行解释。
y
=
y
^
+
ϵ
=
θ
T
x
+
ϵ
y=\hat{y}+\epsilon=\theta^Tx+\epsilon
y=y^+ϵ=θTx+ϵ
其中,
ϵ
\epsilon
ϵ为预测误差。
假设
ϵ
∼
N
(
0
,
σ
2
)
\epsilon\sim N(0, \sigma^2)
ϵ∼N(0,σ2),有
y
∼
N
(
θ
T
x
,
σ
2
)
y\sim N(\theta^Tx, \sigma^2)
y∼N(θTx,σ2)
线性模型的建立的条件概率为:
p
m
o
d
e
l
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
1
2
π
σ
2
e
x
p
(
−
1
2
σ
2
(
y
(
i
)
−
θ
T
x
(
i
)
)
)
2
p_{model}(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma^2}\mathbf {exp}(-\frac{1}{2\sigma^2}(y^{(i)}-\theta^Tx^{(i)}))^2
pmodel(y(i)∣x(i);θ)=2πσ21exp(−2σ21(y(i)−θTx(i)))2
以负对数似然为代价函数,有
J
(
θ
)
=
m
l
n
(
2
π
σ
2
)
+
m
2
σ
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
∝
1
m
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\begin{aligned} J(\theta)&=mln(\sqrt{2\pi\sigma^2})+\frac{m}{2\sigma^2}\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2\\ &\propto\frac{1}{m}\sum_{i=1}^m(y^{(i)}-\theta^Tx^{(i)})^2 \end{aligned}
J(θ)=mln(2πσ2)+2σ2mi=1∑m(y(i)−θTx(i))2∝m1i=1∑m(y(i)−θTx(i))2
3. Softmax Regression
Softmax Regression是Logistic Regression在多分类问题上的推广。假设所分类任务有
k
k
k个类别,则对于一个输入样本
x
x
x,则Softmax Regression输出一个概率分布
p
=
(
p
1
,
p
2
,
.
.
.
,
p
k
)
T
\mathbf{p}=(p_1, p_2,..., p_k)^T
p=(p1,p2,...,pk)T
p
=
s
(
W
x
)
\mathbf p=s(Wx)
p=s(Wx)
其中,
W
=
(
θ
1
T
,
θ
2
T
,
.
.
.
,
θ
k
T
)
T
W=(\theta_1^T, \theta_2^T, ...,\theta_k^T)^T
W=(θ1T,θ2T,...,θkT)T为权重矩阵,
s
s
s为softmax函数,定义如下:
s
i
(
x
)
=
e
x
p
(
x
i
)
∑
e
x
p
(
x
i
)
s_i(x)=\frac{\mathbf{exp}(x_i)}{\sum \mathbf{exp}(x_i)}
si(x)=∑exp(xi)exp(xi)
模型确定的条件概率分布为:
p
m
o
d
e
l
(
y
∣
x
;
W
)
=
∏
i
−
1
k
s
i
(
W
x
)
y
i
=
y
T
s
(
W
x
)
p_{model}(\mathbf y|x;W)=\prod_{i-1}^ks_i(Wx)^{y_i}=\mathbf y^Ts(Wx)
pmodel(y∣x;W)=i−1∏ksi(Wx)yi=yTs(Wx)
其中
y
\mathbf y
y是类别的one-hot编码。
以负对数似然为代价函数,可得:
J
(
θ
)
=
−
1
m
∑
i
=
1
m
l
n
(
y
(
i
)
T
s
(
W
x
(
i
)
)
)
=
−
1
m
∑
i
=
1
m
l
n
(
∏
i
−
1
k
s
i
(
W
x
(
i
)
)
y
i
(
i
)
)
=
−
1
m
∑
i
=
1
m
∑
j
=
1
k
y
i
(
i
)
l
n
(
s
i
(
W
x
(
i
)
)
)
\begin{aligned} J(\theta)&=-\frac{1}{m}\sum_{i=1}^mln(\mathbf y^{(i)T}s(Wx^{(i)}))\\ &=-\frac{1}{m}\sum_{i=1}^mln(\prod_{i-1}^ks_i(Wx^{(i)})^{y_i^{(i)}})\\ &=-\frac{1}{m}\sum_{i=1}^m \sum_{j=1}^ky_i^{(i)}ln(s_i(Wx^{(i)})) \end{aligned}
J(θ)=−m1i=1∑mln(y(i)Ts(Wx(i)))=−m1i=1∑mln(i−1∏ksi(Wx(i))yi(i))=−m1i=1∑mj=1∑kyi(i)ln(si(Wx(i)))