ML-基础-数理知识

57 阅读7分钟

机器学习的基础知识。

全概率公式&贝叶斯公式

全概率公式: 设事件B1,B2,BnB_{1},B_{2},\ldots B_{n}构成一个完备事件组,即它们两两不相容,和为全集且P(Bi)>0P(B_i)>0,则对任一事件AA有:

P(A)=Σi=1nP(Bi)P(ABi)P(A)=\Sigma_{i=1}^n P(B_i)P(A|B_i)

可以看出,全概率公式是“由因推果”的思想,当知道某件事的原因后,推断由某个原因导致这件事发生的概率为多少。

贝叶斯公式: 符号定义与全概率公式相同,则:

P(BiA)=P(Bi)P(ABi)P(A)=P(Bi)P(ABi)Σi=1nP(Bi)P(ABi)P(B_i|A)=\frac{P(B_i)P(A|B_i)}{P(A)}=\frac{P(B_i)P(A|B_i)}{\Sigma_{i=1}^nP(B_i)P(A|B_i)}

可以看出,贝叶斯公式是“由果溯因”的思想,当知道某件事的结果后,由结果推断这件事是由各个原因导致的概率为多少。

先验概率&后验概率

先验概率(prior probability): 指根据以往经验和分析。在实验或采样前就可以得到的概率。

后验概率(posterior probability): 指某件事已经发生,想要计算这件事发生的原因是由某个因素引起的概率。

可以看出,先验概率就是事先可估计的概率分布,而后验概率类似贝叶斯公式“由果溯因”的思想。下面我们通过PRML(Pattern Recognition and Machine Learning)这本书中的例子来理解一下上面的定义。

极大似然估计

极大似然估计方法(Maximum Likelihood Estimate,MLE)也称为最大概似估计或最大似然估计,是求估计的方法之一。(还有矩估计等)

简单来讲,极大似然估计就是给定模型,然后通过收集数据,求该模型的参数。例如,投10次特殊的硬币(给定模型),出现6次正面4次反面(请注意,这里10次结果有顺序,后面所有的投硬币结果,都有顺序)(收集数据),现在要估计投这枚硬币出现正面的概率(求参数)。

由于提及“投硬币”,一般人的第一印象就是投到正面和反面的概率都是0.5。不过这样不利于我们接下来的学习,这里,我们需要摆脱以往的直觉,该硬币是特殊的,正反的概率并不一定是0.5。

那么,我们根据以上收集的数据先凭借直觉猜一下,很明显,由于投了10次,出现了6次正面,一般人都会猜投硬币出现正面的概率最有可能是0.6,当然也不排除其他的可能。

而最大似然估计,简单来讲,就是用数学方法来解释你这种直觉,它就是计算出可能性最大的结果。

上面投硬币的例子,很明显可以看出,这个模型服从二项分布,即进行多次实验,每次实验只有两种可能。用x0,x1,…,x9表示这10次投硬币的结果,用θ表示投该硬币出现正面的概率,那么把我们的直觉写成用数学写出来就是似然函数,可表示成:

f(θ)=θ6(1θ)4f(\theta)=\theta^6\cdot(1-\theta)^4

当然,不要被似然函数吓到了,他就是一个名字而已,就上面那个图片中的函数,相信你能看懂。而最大似然估计,顾名思义,就是要最大化这个似然函数,说得更简单点,就是给你一个函数,求它的极大值点。即

argmaxθf(θ)\underset{\theta}{argmax}f(\theta)

对似然函数取对数,不会影响该函数的单调性,从而不会影响最后的计算的极值,也可以在一定程度上减少因计算而带来的误差,还可以极大的简化计算。

此时求解取对数的似然函数的极大值点,就是似然函数的极大值点。由于似然函数是先单调递增,然后再单调递减的,因此,取对数的似然函数导数为0的点,即是似然函数或取对数的似然函数的极大值点(在这里也是最大值点)

最大似然估计可以转化为求下面式子的解:

argmaxθlnf(θ)\begin{smallmatrix}argmax\\ \theta&ln f(\theta)\end{smallmatrix}

最大后验概率估计

对于最大后验概率估计,我们先进行通俗简单的理解,还是以刚才的那个问题为例,投10次硬币,结果分别是x0,x1,…,x9,出现了6次正面,4次反面。

现在,有两个人A和B,其中A觉得那枚硬币,它就是一个一般的硬币,出现正面的概率θ = 0.5。而B觉得,它是一个特殊的硬币,出现正面的概率θ = 0.6。

最大后验概率就是把他们的假设都进行计算(验算),然后选择其中假设最好的一个,当作最大后验概率。

它首先计算A的假设,假设出现正面的概率θ = 0.5,那么此时,投10次该硬币,出现6次正面的概率则是

P(x0,x1,....,x9θ)=θ6(1θ)4=0.56(10.5)40.00097656P(x_0,x_1,....,x_9|\theta)=\theta^6\cdot(1-\theta)^4=0.5^6\cdot(1-0.5)^4\approx0.00097656

然后再来计算一下B的假设,假设出现正面的概率θ = 0.6,那么此时,投10次该硬币,出现6次正面的概率则是

P(x0,x1,,x9θ)=θ6(1θ)4=0.66(10.6)40.00119439P(x_0,x_1,\ldots,x_9|\theta)=\theta^6\cdot(1-\theta)^4=0.6^6\cdot(1-0.6)^4\approx0.00119439

通过计算,我们可以很直观的发现,相比于A的假设,B的假设准确的概率更大一些,当然,这里也不能说B绝对是正确的,只是B是对的可能性更大。我们一般也更相信B的猜测。

当然,上面的例子只是对最大后验概率估计进行简单的理解。显然,我们还可以有其他假设,比如假设出现正面的概率θ = 0.7。由于θ的取值范围在0到1之间,有无数种假设,但我们不可能每种假设都进行计算,这个时候,就需要利用一些简单的数学方法,求出最大的那一个,即为最大后验概率。

最大后验概率估计就是在已知一系列结果的情况下,求参数可能的最大的那一个,也就是求解下面式子:

argmaxP(θx0,x1,,xn)\begin{array}{ccc}argmax&P(\theta|x_0,x_1,\ldots,x_n)\\ \end{array} 可能有人不知道为什么要写这个式子,我们来简单通俗的理解一下上面式子的含义,就是在序列x0 , x1 , … , xn已知的情况下,θ等于某个值的概率,然后求出θ一个个的取完所有的值的所有概率,选择其中使概率最大的那一个的θ,即为最大后验概率。

然而该式一般不能通过蛮力法直接求解,需要利用贝叶斯公式,经过一系列变换求解,过程如下:

P(θx0,x1,...,xn)=P(x0,x1,...,xnθ)×P(θ)P(x0,x1,...,xn)P(\theta|x_0,x_1,...,x_n)=\dfrac{P(x_0,x_1,...,x_n|\theta)\times P(\theta)}{P(x_0,x_1,...,x_n)}

上面这个式子中P(x0 , x1 , … , xn)表示投n次硬币,产生x0 , x1 , … , xn结果的概率,其中每个x均有两种可能,要么是正面,要么是反面。但是由于已经投了n次硬币,统计了每一次的结果,即x0 , x1 , … , xn 均已知,相当于这个事件已经发生了,所以在这里P(x0 , x1 , … , xn) = 1。

还需要注意的是,这里的P(x0 , x1 , … , xn | θ)就是前面的极大似然估计的似然函数。这里的P(θ)表示的是出现正面的概率,简单理解就是,我们最开始就需要对θ设置一个概率分布,例如可以假设它在0到1之间均匀分布,即它可以等概率的取0到1之间任意值,此时,最大后验概率估计等价于最大似然估计。假如我们不考虑太多,就觉得该硬币的出现正面的概率最接近0.5,与0.5相差越大则越不可信,那么可以将θ的概率分布假设为均值为0.5,方差为σ^2的正态分布。

所以该题中的最大后验概率估计,也等价于下式

argmaxθP(θx0,x1,...,xn)=argmaxθP(x0,x1,...,xnθ)×P(θ)\underset{\theta}{\mathrm{argmax}}P(\theta|x_0,x_1,...,x_n)=\underset{\theta}{\mathrm{argmax}}P(x_0,x_1,...,x_n|\theta)\times P(\theta)

对于刚才的投硬币问题,我们将θ的概率分布假设为均值为0.5,方差为1的正态分布,即θ的密度函数可表示为:

f(θ)=12πe(θ0.5)22f(\theta)=\frac{1}{\sqrt{2\pi}}e^{-\frac{(\theta-0.5)^2}{2}}

最大后验概率的求解与最大似然估计有些类似,也是先对函数取对数,然后再求导数为0的极值点,即为最大后验估计的概率。