這個系列主要是把統計學習方法的學習筆記整理一下發出。
由於很多入門教程都是從神經網路開始,同學們誤打誤撞一頭扎入深度學習就不能自拔了,沉迷調參和神經網路模型應用,忽視了傳統的機器學習。這個就有點流沙築高臺的意思了。
當然我理解這個現象,畢竟也是這樣過來的,一來是深度學習相對比較前沿,容易出paper;二來是有點急躁,很難沉下心看基礎。急躁的一方面要是怕做事情的時候不會用模型。其實在實踐中,對資料的處理和特徵工程才是最重要的,而且很多場景和資料量也不適合使用深度學習。急躁的另一方面是看到業界在相關領域的網路模型不斷推陳出新,怕跟不上。這裡我要念兩句詩:是怕什麼真理無窮,進一寸有進一寸的歡喜。這也是一個自勉吧。
先把最基本的極大似然估計和貝葉斯估計說一下,這兩個估計方法在機器學習演算法推導過程都是非常常用的。
入門的知識,這裡就不重複了,大家翻翻書就行了。這裡直接實操一把。
例子:在擲硬幣的實驗中估計出現正面向上的機率為
。
在實驗過程就會出現大量的隨機樣本。用隨機變數
表示,設擲出正面為1,反面為0。很明顯隨機變數服從二項分佈:
。
一個二項分佈隨機變數的機率函式可以寫成:
。由於每次實驗都是相對獨立的,那麼所有樣本同時出現的聯合機率為(這也叫似然函式):
估計所有樣本出現的最大機率:
對其求導:
這就是根據極大似然估計出來的結果。很明顯這是根據樣本資訊對引數
得到的估計。
這裡可以很明顯的看出來,
極大似然估計,認為未知引數 #FormatImgID_9# 是一個定值
,它使得樣本資訊發生的機率最大。注意,貝葉斯估計和極大似然估計最大不同的地方在於:
貝葉斯估計認為未知引數 #FormatImgID_10# 本身服從一定的機率分佈
,也就是說
也是有
,我們需要找到樣本資訊已經發生的情況下,哪一個
發生的機率最大。這兩種思路其實是反過來的,理解這點很重要。
根據上面分析可知,貝葉斯估計除了需要樣本資訊還需要先驗資訊。也就是說在實驗之前,需要對引數
的取值有一個大概的判斷。首先
肯定是在0-1之間,然後估計大概是在0。5附近。那麼我們就先驗的認為它應該是一個貝塔分佈:
實際使用的時候,需要調整
的值使得先驗分佈合理。
計算後驗分佈:
可以看到結果又是一個貝塔函式。為求引數
機率最大,可求貝塔函式的眾數,可得:
對比著兩種方法的得到的結果。當n趨於無窮大的時候,很明顯,這兩個結果是一樣的。
怎麼理解呢?其實在貝葉斯估計的時候,我們先提供一個先驗資訊,但隨著樣本量足夠大的時候,這些先驗資訊和樣本資訊相比就微不足道了,所以只需要拿樣本資訊去估計即可。
同時我們要考慮樣本量不大的情況,極端情況,只有一個樣本。透過MLE(極大似然估計)得出的結果不是等於0就是等於1,這個就太極端了。貝葉斯則不會是這樣,比如擲出一次為0,那麼結果為:
可見,在樣本量不大的情況下,貝葉斯估計比MLE還是合理很多,
大樣本量的情況,兩者的結果一樣。