這兩者的區別就是在於求解最優引數時,有沒有加入先驗知識 p(θ
)p(θ)
p(θ)
。也就是map融入了待估計量θ的先驗分布在其中,因此map可以看做規則化的mle,當 p(θ
)p(θ)
p(θ)
均勻分布時,兩者相等。
這也就解釋了,為什麼mle比map更容易過擬合。因為mle在求解最優θ時,沒有對θ有先驗的指導。而map加入了對θ的先驗指導,例如l2正則化,那麼就不易過擬合了。
舉個例子:
同樣的邏輯回歸。
未正則化的邏輯回歸就是mle。
正則化的邏輯回歸就是map。
與上述兩個概念都不同的是貝葉斯模型(bayesion network),也被稱為概率圖模型。這裡不是指樸素貝葉斯。而是說下面的這種學習思路。
mle和map求解的都是乙個最優的θ值,在**時只有最優的θ參與**過程。
貝葉斯模型求解的是θ的後驗分布p(θ|d),而不是最大化的後驗分布。
因此貝葉斯模型在某種程度上可以看作是乙個整合模型,在**時,讓所有θ都參與**,並將**結果以後驗概率p(θ|d)作為權重進行加和作為最終**值。
其中,關於後驗分布的理解,見此。
為什麼要用bayesian呢?
還舉上面邏輯回歸的例子,如果是邏輯回歸用bayesian方式來實現,那麼訓練所得的就是乙個後驗分布p(θ|d),**時需要用所有θ都產生乙個**值,然後用後驗分布加權求和。如果θ是無窮多的,一般就取樣足夠的次數,再加權求和。
好處:
小資料集上的整合優勢,不易過擬合;
引入先驗的一種很好的方式;
能夠表達不確定程度。mle和map的最優θ,**結果是確定的;而貝葉斯的**結果是不穩定的,即能夠表達其對於乙個結果的不確定程度。
在做回歸建模相關任務時(分類任務評價指標之前寫過),最常用評價指標是mae、mse、rmse中的乙個或多個,但如何根據自己的具體任務場景(資料分布)選擇更合適的模型評估指標指標呢?這裡我們就要需要弄明白mae與mse之間到底有什麼不同。
mae(mean absolute error),即平均絕對值誤差,也可以看做l1損失,是一種用於回歸模型的常用損失函式
影象為:
mse(mean squared error),即均方誤差,可以看做是一種l2損失,也是一種最常用的回歸損失函式。mse是求**值與真實值之間距離的平方和
影象為:
結論:mse計算簡便,但mae對異常點有更好的魯棒性。
觀察mae和rmse(即mse的平方根,同mae在同一量級中)在兩個例子中的計算結果。
第乙個例子中,**值和真實值很接近,誤差較小。第二個例子中,因為存在乙個異常點,而導致誤差非常大。
mse對誤差取了平方,相當於增大了誤差。如果資料中存在異常點,那麼誤差就會遠大於mae。並且mse在梯度更新時,會以犧牲其他正常樣本誤差為代價進行更新,即總體朝著減小損失的方向更新,這降低了模型效能。所以說,在資料中存在異常點時,mae會比mse更好用、更穩定魯棒一點。
但mae在神經網路中的梯度是固定的,甚至一些位置不可導,可以從影象中看到;而mse的梯度會隨損失增大而增大,減小而減小。
如果只把異常值當作受損資料,則應選用mae損失函式;如果需要把檢測出來,則使用mse。
當兩者需求同時存在時,就需要考慮其他的更合適的損失函式了
從0開始的機器學習的學習
mar 2,2015 從2012年開始我在微博上關注了一些混段子界和學術界 主要是計算機視覺和機器學習 的博主,很有收穫,總算找到一些門道。其實也簡單,首先還是要補充自己的數學基礎,即線性代數 概率論以及微積分等。我自己的微積分還記得,馬馬虎虎,線性代數幾乎忘掉,完全是靠重新學習 mit的線代代數入...
從 0 開始機器學習 機器學習系統的設計
建議先花點時間實現乙個簡單能用的演算法,比如線性回歸 房價,不需要一開始就花很多時間設計複雜的演算法 在軟體開發中叫避免過早優化 你可以先實現能用的演算法,然後利用上篇文章從 0 開始機器學習 機器學習演算法診斷中的學習曲線等診斷法來分析演算法的優化方向,這樣乙個簡單的演算法就成為了優化問題的好工具...
從0開始的機器學習 梯度下降法(2)
簡單實現一下梯度下降法。首先引入需要的庫,然後畫乙個簡單的函式影象。import numpy as np import matplotlib.pyplot as plt plot x np.linspace 1,6,141 畫函式曲線,x是範圍 1到6內的140個離散點 是這樣乙個簡單的二次函式。d...