這個系列主要是把統計學習方法的學習筆記整理一下發出。

由於很多入門教程都是從神經網路開始,同學們誤打誤撞一頭扎入深度學習就不能自拔了,沉迷調參和神經網路模型應用,忽視了傳統的機器學習。這個就有點流沙築高臺的意思了。

當然我理解這個現象,畢竟也是這樣過來的,一來是深度學習相對比較前沿,容易出paper;二來是有點急躁,很難沉下心看基礎。急躁的一方面要是怕做事情的時候不會用模型。其實在實踐中,對資料的處理和特徵工程才是最重要的,而且很多場景和資料量也不適合使用深度學習。急躁的另一方面是看到業界在相關領域的網路模型不斷推陳出新,怕跟不上。這裡我要念兩句詩:是怕什麼真理無窮,進一寸有進一寸的歡喜。這也是一個自勉吧。

先把最基本的極大似然估計和貝葉斯估計說一下,這兩個估計方法在機器學習演算法推導過程都是非常常用的。

入門的知識,這裡就不重複了,大家翻翻書就行了。這裡直接實操一把。

例子:在擲硬幣的實驗中估計出現正面向上的機率為

\theta

在實驗過程就會出現大量的隨機樣本。用隨機變數

X_i

表示,設擲出正面為1,反面為0。很明顯隨機變數服從二項分佈:

X_i\sim b(1,\theta)

一個二項分佈隨機變數的機率函式可以寫成:

P(X=x)=\theta^x(1-\theta)^{1-x}

。由於每次實驗都是相對獨立的,那麼所有樣本同時出現的聯合機率為(這也叫似然函式):

\\L(\theta)=P(X_1=x_1|\theta)...P(X_n=x_n|\theta) =\prod_{i=1}^{n}\theta^{x_i}(1-\theta)^{1-x^i}

估計所有樣本出現的最大機率:

max\ L(\theta)=max\ lnL(\theta) =\sum_{i=1}^{n}{[ ln\theta^{x_i} + ln(1-\theta)^{1-x_i}]}  \\  =\sum_{i=1}^{n}x_i{ln\theta} + (n-\sum_{i=1}^{n}{x_i})ln(1-\theta)

對其求導:

\frac{\partial lnL(\theta)}{\partial \theta} = \frac{\sum X_i}{\theta} - \frac{n - \sum X_i}{1-\theta} = 0 \\  \hat{\theta} = \frac{\sum X_i}{n}

這就是根據極大似然估計出來的結果。很明顯這是根據樣本資訊對引數

\theta

得到的估計。

這裡可以很明顯的看出來,

極大似然估計,認為未知引數 #FormatImgID_9# 是一個定值

,它使得樣本資訊發生的機率最大。注意,貝葉斯估計和極大似然估計最大不同的地方在於:

貝葉斯估計認為未知引數 #FormatImgID_10# 本身服從一定的機率分佈

,也就是說

\theta

也是有

(\theta_1...\theta_n)

,我們需要找到樣本資訊已經發生的情況下,哪一個

\theta

發生的機率最大。這兩種思路其實是反過來的,理解這點很重要。

根據上面分析可知,貝葉斯估計除了需要樣本資訊還需要先驗資訊。也就是說在實驗之前,需要對引數

\theta

的取值有一個大概的判斷。首先

\theta

肯定是在0-1之間,然後估計大概是在0。5附近。那麼我們就先驗的認為它應該是一個貝塔分佈:

\pi(\theta) = \frac{\Gamma(\alpha+\beta)}{ \Gamma({\alpha}) \Gamma({\beta})}  \theta^{\alpha - 1}(1-\theta)^{\beta - 1}\\

實際使用的時候,需要調整

\alpha \  \beta

的值使得先驗分佈合理。

計算後驗分佈:

P(\theta | x_1,...,x_n)=\frac{p(\theta)\cdot p( x_1,...,x_n|\theta)}{p(x_1,...,x_n)}\\ =\frac{\pi(\theta) \cdot p(x_1|\theta)...p(x_n|\theta)}{\int p(\theta, x_1,...,x_n) d\theta}\\ \propto \theta^{\alpha-1}(1-\theta)^{\beta -1} \prod \theta^{x_i}(1-\theta)^{1-x_i}\\ =\theta^{\sum x_i+\alpha -1}(1-\theta)^{n-\sum x_i +\beta -1}

可以看到結果又是一個貝塔函式。為求引數

\theta

機率最大,可求貝塔函式的眾數,可得:

\hat \theta = \frac{\sum x_i + \alpha -1}{n+\alpha+\beta-2}\\

對比著兩種方法的得到的結果。當n趨於無窮大的時候,很明顯,這兩個結果是一樣的。

怎麼理解呢?其實在貝葉斯估計的時候,我們先提供一個先驗資訊,但隨著樣本量足夠大的時候,這些先驗資訊和樣本資訊相比就微不足道了,所以只需要拿樣本資訊去估計即可。

同時我們要考慮樣本量不大的情況,極端情況,只有一個樣本。透過MLE(極大似然估計)得出的結果不是等於0就是等於1,這個就太極端了。貝葉斯則不會是這樣,比如擲出一次為0,那麼結果為:

\hat \theta = \frac{ \alpha -1}{\alpha+\beta-1}\\

可見,在樣本量不大的情況下,貝葉斯估計比MLE還是合理很多,

大樣本量的情況,兩者的結果一樣。