1.前言
之前我一直對於“最大似然估計”犯迷糊,今天在看了陶輕松、憶臻、nebulaf91等人的博客以及李航老師的《統計學習方法》后,豁然開朗,於是在此記下一些心得體會。
“最大似然估計”(Maximum Likelihood Estimation, MLE)與“最大后驗概率估計”(Maximum A Posteriori Estimation,MAP)的歷史可謂源遠流長,這兩種經典的方法也成為機器學習領域的基礎被廣泛應用。
有趣的是,這兩種方法還牽扯到“頻率學派”與“貝葉斯學派”的派別之爭,前者認為一件事情發生概率的推斷必須依靠數據說話,即認為世界是確定的,我們可以通過重復的大量的數據統計而使結果逼近真實的情況。后者認為世界是不確定的,我們需要對這個世界做出一個預判,然后通過數據的統計去不斷地修正這個預判,最終使的概率分布能夠最優化的解釋這個世界。
2.統計學習三要素
前面講到的MLE與MAP,其實是統計模型優化求解中眾多步驟中的一步。而統計模型是統計學習三要素之一。
統計學習(statistical learning)是利用計算機技術基於數據構建概率統計模型並對數據進行預測及分析的一門學科,即傳統意義上的統計機器學習。
統計學習的三要素為:模型(model)、策略(strategy)、算法(algorithm)。
輸入空間或者特征空間與輸出空間之間所有可能的映射情況成為假設空間,而映射之所以存在是因為統計學習假設輸入值與輸出值是根據聯合概率密度P(X,Y)獨立同分布產生的。而模型就是假設空間中的一種特殊情況,當然假設空間中的模型有無數種。
策略就是一種在無限的模型當中找出一種符合當前數據分布的模型的方法,目標是從假設空間中尋找出最優模型。通過定義損失函數或者代價函數來達到這一目的。損失函數是模型預測值f(X)和真值Y的非負實值函數,L(f(X), Y)。
對於監督學習來說,常用的損失函數有0 1損失函數、絕對值損失函數、對數損失函數、平方損失函數等。
算法既是根據已有的策略如何最優化我們的模型,把統計學習問題總結為最優化問題。
3.最大似然估計與最大后驗概率
在上面提到的統計學習三要素之一的策略當中,我們已經找到了衡量模型預測結果的方式,即通過損失函數。通過統計損失函數的期望值並使其最小,可以達到最優化函數的左右。
損失函數的期望如下:
其中P(x,y)是輸入值X和輸出值Y的聯合概率密度分布,我們並不清楚,所以這是期望風險,即理論上真實的損失函數風險值。
期望風險我們無法獲知,但是我們可以通過大量實驗獲得很多損失函數值,對於求平均可以得到經驗風險。根據大數定理,當損失函數值趨近於無窮時,經驗風險等價於期望風險。
當模型是條件概率分布,損失函數是對數損失函數時,此時的經驗風險就是最大似然估計。
最大似然估計就是我們根據已有數據的特征,來推斷出現該特征的模型參數 ,目標是使參數
的取值使得該數據的分布最符合這種特征。
形象點說,一罐子球,里面有黑白兩色,我們有放回的取出100個,其中70個是白球,那么我們根據最大似然估計推斷該罐子中70%是白球,因為這種分布情況下我們最有可能取出70個白球(在100個球中)。
最大似然估計是求參數θ, 使似然函數P(x0|θ)最大。最大后驗概率估計則是想求θ,使P(x0|θ)P(θ)最大。
因為貝葉斯派認為,光統計事件發生的概率是不全面的,還需要在考慮該事件發生本身的概率,及先驗概率。也就是說,雖然一件事情發生於某一個現象關聯十分巨大,但是該事件本身發生的概率極小,我們也應當慎重考慮。舉個栗子:發現剛才寫的代碼編譯報錯,可是我今天狀態特別好,這語言我也很熟悉,犯錯的概率很低。因此覺得是編譯器出錯了。 ————別,還是先再檢查下自己的代碼吧。
這在模型防止過擬合中也起到了很關鍵的作用。
L1、L2正則化
模型在訓練數據表現很好,在測試數據表示很差為過擬合(overfitting)。如果訓練數據表現很差則為欠擬合。如下圖所示:
欠擬合可以增加模型復雜度,增加模型訓練次數等方法解決,這里主要講過擬合。
過擬合就是為了是模型在訓練數據上表示很好而強行增加了模型的復雜度,使得其普適能力差。
為了解決過擬合,可以通過添加懲罰項來解決。此時稱為結構風險,而模型的最后變成使結構風險最小化問題。
其中J(f)為模型的復雜度。
而當模型的復雜度為模型的先驗概率,損失函數是對數損失函數時,此時的結構風險最小化問題即變為最大后驗概率估計問題。
而模型的復雜度用什么來衡量的,簡單來說既是模型參數的多少,參數越多,模型越復雜,反之越簡單。而衡量模型參數多少可以通過0范數、1范數及2范數來解決。
0范數指非零向量個數。1范數指絕對值之和。2范數指通常意義上的模。
使0范數最小及實現模型參數最小。而人們發現在求解過程中0范數求解難度較高,而1范數和0范數可以實現稀疏,1因具有比L0更好的優化求解特性而被廣泛應用。L2范數是指向量各元素的平方和然后求平方根。我們讓L2范數的正則項||W||2最小,可以使得W的每個元素都很小,都接近於0,但與L1范數不同,它不會讓它等於0,而是接近於0,這里是有很大的區別的哦;所以大家比起1范數,更鍾愛2范數。
正則化——即使模型結構風險最小的過程。
L1正則化即使L1范數的正則項最小。
L2正則化即使L2范數的正則項最小。