第四节最大似然推导mse损失函数(深度解析最小二乘来源)(2)
上一节我们说了极大似然的思想以及似然函数的意义,了解了要使模型最好的参数值就要使似然函数最大,同时损失函数(最小二乘)最小, 留下了一个问题,就是这两个因素或者目的矛盾吗?今天我们就接着上面的问题继续解剖下去。
我们再来回顾下似然函数:
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
1
2
π
σ
exp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
2
)
2
σ
2
)
\prod_{i=1}^{m} p\left(y^{(i)} | x^{(i)} ; \theta\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)-} \theta^{T} x^{(i)^{2}}\right)}{2 \sigma^{2}}\right)
i=1∏mp(y(i)∣x(i);θ)=2πσ1exp⎝⎛−2σ2(y(i)−θTx(i)2)⎠⎞
所谓似然函数就是一个大的乘项,它有多少项,取决于有多少个训练集的样本,因为它是判断训练集上发生的总概率最大的这么一个总似然函数。我们分析一下似然函数的取值由哪些因素确定?
π
\pi
π是常数,
σ
\sigma
σ虽然是未知数,但是是个定值不能来回变,误差应该服从方差的高斯分布,不能来回变方差,唯一又能变又能影响最终结果的变量就是这一组
w
w
w也就是
θ
\theta
θ。那么我们的目标就是找到一个
θ
\theta
θ(一组
w
w
w)使通过其计算出来似然函数结果最大,我们给似然函数起个名字叫
L
(
θ
)
L(\theta )
L(θ),为什么括号里是
θ
\theta
θ,因为
L
L
L的大小只看
θ
\theta
θ的脸色,其它值都是定值,改变不了最终结果,只有
θ
\theta
θ能改变结果,所以是关于
θ
\theta
θ的函数。由于似然函数内部带着exp函数,并且函数本身的形式是连乘,不太好求,所以我们在似然函数之前加了个log函数,因为log函数它是一个单调函数,而且是单调递增函数,不会影响函数的相对大小,并且
log
(
a
.
b
)
=
log
a
+
log
b
,
log
a
n
=
n
log
a
\log (a . b)=\log a+\log b, \log a^{n}=n \log a
log(a.b)=loga+logb,logan=nloga天生的良好属性。它能函数中的累乘变成累加,更方便求解。所以为了似然函数的更好求解,我们在
L
(
θ
)
L(\theta )
L(θ)两边加上log函数,如下:
l
(
θ
)
=
log
L
(
θ
)
=
log
∏
i
=
1
m
1
2
π
σ
exp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
2
)
2
σ
2
)
l(\theta)=\log L(\theta)=\log \prod_{i=1}^{m} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{\left.(i)-\theta^{T} x^{(i)^{2}}\right)}\right.}{2 \sigma^{2}}\right)
l(θ)=logL(θ)=logi=1∏m2πσ1exp⎝⎜⎜⎛−2σ2(y(i)−θTx(i)2)⎠⎟⎟⎞
= ∑ i = 1 m log 1 2 π σ exp ( − ( y ( i ) − θ T x ( i ) 2 ) 2 σ 2 ) = m log 1 2 π σ − 1 σ 2 ⋅ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \begin{array}{l}{=\sum_{i=1}^{m} \log \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{(i)}-\theta^{T} x^{(i)^{2}}\right)}{2 \sigma^{2}}\right)} \\ {=m \log \frac{1}{\sqrt{2 \pi} \sigma}-\frac{1}{\sigma^{2}} \cdot \frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}}\end{array} =∑i=1mlog2πσ1exp(−2σ2(y(i)−θTx(i)2))=mlog2πσ1−σ21⋅21∑i=1m(y(i)−θTx(i))2
我们来解析上面的每一步的来源,第一步不用怎么说,就是加了一个log,需要注意的是没加log之前是大写的 L ( θ ) L(\theta ) L(θ),加完log之后就是小写的 l ( θ ) l(\theta ) l(θ)。第一步到第二步实际上就是对于每一个样本之前的累乘,由于
log ( a . b ) = log a + log b \log (a . b)=\log a+\log b log(a.b)=loga+logb
加完log之后,所有的累乘变成累加,然后又用
∑
\sum
∑表示出来。第二步到第三步,因为第二步中m个
log
1
2
π
σ
exp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
2
)
2
σ
2
)
\log \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y^{\left.(i)-\theta^{T} x^{(i)^{2}}\right)}\right.}{2 \sigma^{2}}\right)
log2πσ1exp⎝⎜⎜⎛−2σ2(y(i)−θTx(i)2)⎠⎟⎟⎞
累加,每一个利用
log
(
a
.
b
)
=
log
a
+
log
b
\log (a . b)=\log a+\log b
log(a.b)=loga+logb
属性表示成
log 1 2 π σ + logexp ( − ( y ( i ) − θ T x ( i ) 2 ) 2 σ 2 ) \log \frac{1}{\sqrt{2 \pi} \sigma}+\operatorname{logexp}\left(-\frac{\left(y^{(i)-} \theta^{T} x^{(i)^{2}}\right)}{2 \sigma^{2}}\right) log2πσ1+logexp⎝⎛−2σ2(y(i)−θTx(i)2)⎠⎞
而
log
1
2
π
σ
\log \frac{1}{\sqrt{2 \pi} \sigma}
log2πσ1
是常数,所以m个累加就是
m log 1 2 π σ m \log \frac{1}{\sqrt{2 \pi} \sigma} mlog2πσ1
而后半部分
logexp ( − ( y ( i ) − θ T x ( i ) 2 ) 2 σ 2 ) \operatorname{logexp}\left(-\frac{\left(y^{(i)-} \theta^{T} x^{(i)^{2}}\right)}{2 \sigma^{2}}\right) logexp⎝⎛−2σ2(y(i)−θTx(i)2)⎠⎞
累加,因为
l
o
g
e
=
1
l o g e=1
loge=1,log和e在一起可以互相消掉,所以
logexp
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
2
)
2
σ
2
)
=
−
(
y
(
i
)
−
θ
T
x
(
i
)
2
)
2
σ
2
\operatorname{logexp}\left(-\frac{\left(y^{(i)-} \theta^{T} x^{(i)^{2}}\right)}{2 \sigma^{2}}\right)=-\frac{\left(y^{(i)-\theta^{T} x^{(i)^{2}}}\right)}{2 \sigma^{2}}
logexp⎝⎛−2σ2(y(i)−θTx(i)2)⎠⎞=−2σ2(y(i)−θTx(i)2)
因为每一项
x
i
x^{i}
xi不一样,所以写成
1
σ
2
⋅
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{\sigma^{2}} \cdot \frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
σ21⋅21i=1∑m(y(i)−θTx(i))2
同时后半部分结果又把负号也给提出来了,那么加起来结果就是我们的第三步。
给自己鼓个掌吧,这么难得公式都会了,而且跟着我一步步的给它解释出来,真是不容易。到此为止,我们就分析一下,能够使第三步即:
m
log
1
2
π
σ
−
1
σ
2
⋅
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
m \log \frac{1}{\sqrt{2 \pi} \sigma}-\frac{1}{\sigma^{2}} \cdot \frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
mlog2πσ1−σ21⋅21i=1∑m(y(i)−θTx(i))2
最大的 θ \theta θ是谁呢? 因为
mlog 1 2 π σ \operatorname{mlog} \frac{1}{\sqrt{2 \pi} \sigma} mlog2πσ1
是常数项,不去考虑它,它始终为正,所以有它没它都不会影响相对大小。那么也就是说只要
− 1 σ 2 ⋅ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 -\frac{1}{\sigma^{2}} \cdot \frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2} −σ21⋅21i=1∑m(y(i)−θTx(i))2
这一项越大,原始的
L
(
θ
)
L(\theta )
L(θ)函数就越大。注意这前面带个负号,因为我们是看成两个整体相加,所以后半部分的那一项是带个负号的。那么把负号去掉了,或者说这一项
1
σ
2
⋅
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{\sigma^{2}} \cdot \frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
σ21⋅21i=1∑m(y(i)−θTx(i))2
这一项越小,原始的
L
(
θ
)
L(\theta )
L(θ)函数就越大。而
σ
\sigma
σ是常数,不影响大小,也就是说能够使
1
2
∑
i
=
1
m
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{2} \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
21i=1∑m(y(i)−θTx(i))2
最小的
θ
\theta
θ就是能够使
L
(
θ
)
L(\theta )
L(θ) 最大的
θ
\theta
θ。
是不是已经很眼熟了?我们回顾下**MSE(最小二乘),
J ( θ ) = 1 2 ∑ i = 1 m ( h θ x i − y i ) 2 J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta} x^{i}-y^{i}\right)^{2} J(θ)=21i=1∑m(hθxi−yi)2
发现一模一样,因为里面的
( y ( i ) − θ T x ( i ) ) 2 \left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2} (y(i)−θTx(i))2
位置不会影响相对大小。所以MSE(最小二乘) 怎么来的?为什么说MSE(最小二乘)越小, θ \theta θ就越好,取决于你背后估计了所有的误差,服从高斯分布,如果它不服从高斯分布,也就不能用mse来判断了。截止到目前,我们就发现了把它作为损失函数,真的是非常合理。实际上这就是它背后的理论依据。
我们总结下,我们说判别模型事先给定一个判别函数,对吧?它这个例子判别函数
y = θ T x y=\theta^{T} x y=θTx
根据判别函数来合理的构造出一个损失函数来。这个损失函数往往都是通过MLE,也就是最大似然估计为理论基础建立出来的最合理的损失函数,而最大似然的理论源泉是误差服从均值为零的高斯分布,也即样本服从高斯分布,而后通过最大似然一步步推导得到最小二乘。所以mse的损失函数的根本理论依据是什么?你就应该回答为假设方差服从均值为零的高斯分布。 至于是不是所有的回归问题,都用MSE当损失函数,不一定。但是90%都是它。在一些特殊的场景里,你已知误差服从别的分布了,那就会建立出别的损失函数来。比如huber损失函数,有兴趣可以自己研究下。但绝大多数的场景都会使用MSE作为回归问题的损失函数。 因为在你不知道任何情况的前提下,假设误差服从高斯分布是最常见且最合理的一种方式。 自此,你从理论方面推导了最大似然和最小二乘的关系,也为最小二乘作为损失函数找到了数学的理论支撑。下一节中我们讲解怎么样求解最小二乘或者使其相对最小,从而找到我们相对合理的模型参数 θ \theta θ。