大白话 5 分钟带你走进人工智能 - 第四节最大似然推导 mse 损失函数(深度解析最小二乘来源)(2)

第四节最大似然推导 mse 损失函数(深度解析最小二乘来源)(2)

上一节我们说了极大似然的思想以及似然函数的意义,了解了要 使模型最好的参数值就要使似然函数最大,同时损失函数(最小二乘)最小, 留下了一个问题,就是这两个因素或者目的矛盾吗?今天我们就接着上面的问题继续解剖下去。

我们再来回顾下 似然函数:

\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta )=\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}})

所谓似然函数就是一个大的乘项, 它有多少项,取决于有多少个训练集的样本 ,因为它是判断训练集上发生的总概率最大的这么一个总似然函数。我们分析一下似然函数的取值由哪些因素确定?\pi是常数,\sigma虽然是未知数,但是是个定值不能来回变,误差应该服从方差的高斯分布,不能来回变方差,唯一又能变又能影响最终结果的变量就是这一组w也就是\theta。 那么我们的 目标就是找到一个θ(一组 w) 使通过其计算出来似然函数结果最大 ,我们给似然函数起个名字叫L(\theta ), 为什么括号里是\theta,因为L的大小只看\theta的脸色,其它值都是定值,改变不了最终结果,只有\theta能改变结果,所以是关于\theta的函数。由于似然函数内部带着 exp 函数, 并且函数本身的形式是连乘,不太好求,所以我们在似然函数之前加了个 log 函数,因为 log 函数它是一个单调函数,而且是单调递增函数,不会影响函数的相对大小,并且log(a.b)=loga+logbloga^{n}=nloga,天生的良好属性。它能函数中的累乘变成累加,更方便求解。所以为了似然函数的更好求解,我们在L(\theta )两边加上 log 函数,如下:

l(\theta )=logL(\theta) =log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}})

=\sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}}

=mlog\frac{1}{\sqrt{2\pi }\sigma }-\frac{1}{\sigma ^{2}}.\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}

我们来解析上面的每一步的来源,第一步不用怎么说,就是加了一个 log, 需要注意的是没加 log 之前是大写的L(\theta ),加完 log 之后就是小写的l(\theta )。第一步到第二步实际上就是对于每一个样本之前的累乘,由于log(a.b)=loga+logb,加完 log 之后,所有的累乘变成累加,然后又用\sum表示出来。第二步到第三步,因为第二步中mlog\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}} 累加,每一个利用log(a.b)=loga+logb属性表示成log\frac{1}{\sqrt{2\pi }\sigma }+logexp(-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}}, 而log\frac{1}{\sqrt{2\pi }\sigma }是常数,所以m个累加就是mlog\frac{1}{\sqrt{2\pi }\sigma },而后半部分logexp(-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}}累加,因为loge=1,log 和 e 在一起可以互相消掉,所以logexp(-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}})=-\frac{(y^{(i)-}{\theta^{T}x^{(i)^{2}} })}{2\sigma ^{2}}因为每一项x^{i}不一样,所以写成\frac{1}{\sigma ^{2}}.\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}, 同时后半部分结果又把负号也给提出来了,那么加起来结果就是我们的第三步mlog\frac{1}{\sqrt{2\pi }\sigma }-\frac{1}{\sigma ^{2}}.\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}。给自己鼓个掌吧 ,这么难得公式都会了,而且跟着我一步步的给它解释出来,真是不容易。

到此为止,我们就分析一下,能够使第三步即:

mlog\frac{1}{\sqrt{2\pi }\sigma }-\frac{1}{\sigma ^{2}}.\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}

最大的\theta是谁呢? 因为mlog\frac{1}{\sqrt{2\pi }\sigma }是常数项,不去考虑它,它始终为正,所以有它没它都不会影响相对大小。那么也就是说只要-\frac{1}{\sigma ^{2}}.\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}这一项越大,原始的L(\theta )函数就越大。 注意这前面带个负号,因为我们是看成两个整体相加,所以后半部分的那一项是带个负号的 。那么把负号去掉了,或者说这一项\frac{1}{\sigma ^{2}}.\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2},这一项越小,原始的L(\theta )函数就越大。而\sigma是常数,不影响大小,也就是说能 够使\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}最小的\theta就是能够使L(\theta )最大的\theta 是不是已经很眼熟了?我们回顾下 MSE(最小二乘),

J(\theta )=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}x^{i}-y^{i})^{2}

发现一模一样,因为里面的(y^{(i)}-\theta ^{T}x^{(i)})^{2}位置不会影响相对大小。所以 MSE(最小二乘) 怎么来的?为什么说 MSE(最小二乘)越小\theta就越好,取决于你背后估计了所有的误差,服从高斯分布,如果它不服从高斯分布,也就不能用 mse 来判断了。截止到目前,我们就发现了把它作为损失函数,真的是非常合理 实际上这就是它背后的理论依据。

我们总结下,我们说判别模型事先给定一个判别函数,对吧?它这个例子判别函数y=\theta ^{T}x根据判别函数来合理的构造出一个损失函数来。这个损失函数往往都是通过 MLE,也就是最大似然估计为理论基础建立出来的最合理的损失函数,而最大似然的理论源泉是误差服从均值为零的高斯分布,也即样本服从高斯分布,而后通过最大似然一步步推导得到最小二乘。, 所以 mse 的损失函数的根本理论依据是什么?你就应该回答为假设方差服从均值为零的高斯分布。

至于是不是所有的回归问题,都用 MSE 当损失函数,不一定。但是 90% 都是它。在一些特殊的场景里,你已知误差服从别的分布了,那就会建立出别的损失函数来。比如 huber 损失函数,有兴趣可以自己研究下。但 绝大多数的场景都会使用 MSE 作为回归问题的损失函数。 因为在你不知道任何情况的前提下, 假设误差服从高斯分布是最常见且最合理的一种方式。

自此,你从理论方面推导了最大似然和最小二乘的关系,也为最小二乘作为损失函数找到了数学的理论支撑。下一节中我们讲解怎么样求解最小二乘或者使其相对最小,从而找到我们相对合理的模型参数\theta