ML的 一些基础知识
ML的一些基础知识
1.极大似然估计
极大似然估计,通俗理解来说,就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!
换句话说,极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。
我们这样想,一当模型满足某个分布,它的参数值我通过极大似然估计法求出来的话。比如正态分布中公式如下:
如果我通过极大似然估计,得到模型中参数\(\mu\)和\(\sigma\)的值,那么这个模型的均值和方差以及其它所有的信息我们是不是就知道了呢。确实是这样的。
极大似然估计中采样需满足一个重要的假设,就是所有的采样都是独立同分布的。
下面我通过俩个例子来帮助理解一下最大似然估计
但是首先看一下似然函数\(\rho(x|\theta)\) 的理解:来自下面博客:
详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解 - CSDN博客blog.csdn.net
对于这个函数:\(\rho(x|\theta)\) 输入有两个:x表示某一个具体的数据;\(\theta\)表示模型的参数
如果 \(\theta\)是已知确定的,\(x\)是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点\(x\),其出现概率是多少。
如果 \(x\) 是已知确定的, 是 \(\theta\)变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现这\(x\) 个样本点的概率是多少。
这有点像“一菜两吃”的意思。其实这样的形式我们以前也不是没遇到过。例如,\(f(x,y)=x^y\) , 即x的y次方。如果x是已知确定的(例如x=2),这就是 \(f(y)=2^y\), 这是指数函数。 如果y是已知确定的(例如y=2),这就是\(f(x)=x^2\),这是二次函数。同一个数学形式,从不同的变量角度观察,可以有不同的名字。
例子一
别人博客的一个例子。
假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我 们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?
很多人马上就有答案了:70%。而其后的理论支撑是什么呢?
我们假设罐中白球的比例是p,那么黑球的比例就是1-p。因为每抽一个球出来,在记录颜色之后,我们把抽出的球放回了罐中并摇匀,所以每次抽出来的球的颜 色服从同一独立分布。
这里我们把一次抽出来球的颜色称为一次抽样。题目中在一百次抽样中,七十次是白球的,三十次为黑球事件的概率是P(样本结果|Model)。
如果第一次抽象的结果记为x1,第二次抽样的结果记为x2....那么样本结果为(x1,x2.....,x100)。这样,我们可以得到如下表达式:
P(样本结果|Model)
= P(x1,x2,…,x100|Model)
= P(x1|Mel)P(x2|M)…P(x100|M)
= p70(1-p)30.
好的,我们已经有了观察样本结果出现的概率表达式了。那么我们要求的模型的参数,也就是求的式中的p。
那么我们怎么来求这个p呢?
不同的p,直接导致P(样本结果|Model)的不同。
好的,我们的p实际上是有无数多种分布的。如下:
那么求出 p70(1-p)30为 7.8 * 10^(-31)
p的分布也可以是如下:
那么也可以求出p70(1-p)30为2.95* 10^(-27)
那么问题来了,既然有无数种分布可以选择,极大似然估计应该按照什么原则去选取这个分布呢?
答:采取的方法是让这个样本结果出现的可能性最大,也就是使得p70(1-p)30值最大,那么我们就可以看成是p的方程,求导即可!
那么既然事情已经发生了,为什么不让这个出现的结果的可能性最大呢?这也就是最大似然估计的核心。
我们想办法让观察样本出现的概率最大,转换为数学问题就是使得:
p70(1-p)30最大,这太简单了,未知数只有一个p,我们令其导数为0,即可求出p为70%,与我们一开始认为的70%是一致的。其中蕴含着我们的数学思想在里面。
2.贝叶斯
学习机器学习和模式识别的人一定都听过贝叶斯公式(Bayes’ Theorem):
\(P(A|B)=\frac{P(B|A)P(A)}{P(B)}\)【式1】
后验概率=\(\frac{似然度}{先验概率标准化常量}\)
贝叶斯公式看起来很简单,无非是倒了倒条件概率和联合概率的公式。
把B展开,可以写成:
\(P(A|B)=\frac{P(B|A)P(A)}{P(B|A)P(A)+P(B|-A)P(-A)}\)【式2】(-A表示”非A”)
这个式子就很有意思了。
想想这个情况。一辆汽车(或者电瓶车)的警报响了,你通常是什么反应?有小偷?撞车了? 不。。 你通常什么反应都没有。因为汽车警报响一响实在是太正常了!每天都要发生好多次。本来,汽车警报设置的功能是,出现了异常情况,需要人关注。然而,由于虚警实在是太多,人们渐渐不相信警报的功能了。
贝叶斯公式就是在描述,你有多大把握能相信一件证据?
我们假设响警报的目的就是想说汽车被砸了。把A计作“汽车被砸了”,B计作“警报响了”,带进贝叶斯公式里看。我们想求等式左边发生\(A|B\)的概率,这是在说警报响了,汽车也确实被砸了。汽车被砸引起(trigger)警报响,即\(B|A\)。但是,也有可能是汽车被小孩子皮球踢了一下、被行人碰了一下等其他原因(统统计作-A),其他原因引起汽车警报响了,即\(B|-A\)。那么,现在突然听见警报响了,这时汽车已经被砸了的概率是多少呢(这即是说,警报响这个证据有了,多大把握能相信它确实是在报警说汽车被砸了)?想一想,应当这样来计算。用警报响起、汽车也被砸了这事件的数量,除以响警报事件的数量(这即【式1】)。进一步展开,即警报响起、汽车也被砸了的事件的数量,除以警报响起、汽车被砸了的事件数量加上警报响起、汽车没被砸的事件数量(这即【式2】)。
可能有点绕,请稍稍想一想。
再思考【式2】。想让\(P(A|B)=1\),即警报响了,汽车一定被砸了,该怎么做呢?让\(P(B|∼A)P(∼A)=0\)即可。很容易想清楚,假若让\(P(∼A)=0\),即杜绝了汽车被球踢、被行人碰到等等其他所有情况,那自然,警报响了,只剩下一种可能——汽车被砸了。这即是提高了响警报这个证据的说服力。
从这个角度总结贝叶斯公式:做判断的时候,要考虑所有的因素。 老板骂你,不一定是你把什么工作搞砸了,可能只是他今天出门前和太太吵了一架。
再思考【式2】。观察【式2】右边的分子,\(P(B|A)\)为汽车被砸后响警报的概率。姑且仍为这是1吧。但是,若\(P(A)\)很小,即汽车被砸的概率本身就很小,则\(P(B|A)P(A)\)仍然很小,即【式2】右边分子仍然很小,\(P(A|B)\) 还是大不起来。 这里,\(P(A)\)即是常说的先验概率,如果A的先验概率很小,就算\(P(B|A)\))较大,可能A的后验概率\(P(A|B)\)还是不会大(假设\(P(B|∼A)P(∼A)\)不变的情况下)。
从这个角度思考贝叶斯公式:一个本来就难以发生的事情,就算出现某个证据和他强烈相关,也要谨慎。证据很可能来自别的虽然不是很相关,但发生概率较高的事情。 发现刚才写的代码编译报错,可是我今天状态特别好,这语言我也很熟悉,犯错的概率很低。因此觉得是编译器出错了。 ————别,还是先再检查下自己的代码吧。