最大似然估计与损失函数
關(guān)于最大似然估計(jì)法的基本原理請參考《概率論與數(shù)理統(tǒng)計(jì)》P152或參考《深度學(xué)習(xí)》chpt 5.5
文章目錄
- 1、最大似然估計(jì)的一般理論
- 2、最大似然估計(jì)的性質(zhì)
- 3、最大似然估計(jì)推導(dǎo)邏輯回歸的損失函數(shù)
- 4、線性回歸的損失函數(shù)
- 5、小結(jié)
1、最大似然估計(jì)的一般理論
我們希望可以有些準(zhǔn)則可以讓我們從不同的模型中得到特定函數(shù)作為好的估計(jì)。
最常用的準(zhǔn)則是最大似然估計(jì)。
我們考慮一組含有m個(gè)樣本的數(shù)據(jù)集X={x(1),...,x(m)}X=\{x^{(1)},...,x^{(m)}\}X={x(1),...,x(m)},獨(dú)立的由真正但未知的數(shù)據(jù)生成分布pdata(x)p_{data}(x)pdata?(x)生成。
令pmodel(x;θ)p_{model}(x; \theta)pmodel?(x;θ) 是一族由θ\thetaθ確定在相同空間上的概率分布。換言之,pmodel(x;θ)pmodel(x; \theta)pmodel(x;θ)$
將任意輸入x 映射到實(shí)數(shù)來估計(jì)真實(shí)概率pdata(x)p_{data}(x)pdata?(x)。
對θ\thetaθ 的最大似然估計(jì)被定義為:
θML=arg?max?θpmodel(X;θ)=arg?max?θΠi=1mpmodel(x(i);θ)\begin{aligned} \theta_{ML} &= \arg \max_\theta p_{model}(X; \theta) \\ &= \arg \max_\theta Π_{i=1}^m p_{model}(x^{(i)}; \theta) \end{aligned} θML??=argθmax?pmodel?(X;θ)=argθmax?Πi=1m?pmodel?(x(i);θ)?
多個(gè)概率的乘積會因很多原因不便于計(jì)算。例如,計(jì)算中很可能會出現(xiàn)數(shù)值
下溢。為了得到一個(gè)便于計(jì)算的等價(jià)優(yōu)化問題,我們觀察到似然對數(shù)不會改變其
arg?max?\arg \maxargmax 但是將乘積轉(zhuǎn)化成了便于計(jì)算的求和形式:
θML=arg?max?θ∑i=1mlog?pmodel(x(i);θ)\theta_{ML} = \arg \max_\theta \sum_{i=1}^m \log p_{model}(x^{(i)}; \theta) θML?=argθmax?i=1∑m?logpmodel?(x(i);θ)
因?yàn)楫?dāng)我們重新縮放代價(jià)函數(shù)時(shí)arg?max?\arg \maxargmax 不會改變,我們可以除以m 得到和訓(xùn)練數(shù)
據(jù)經(jīng)驗(yàn)分布p?datap*_{data}p?data? 相關(guān)的期望作為準(zhǔn)則:
θML=arg?max?θEx?p?datalog?pmodel(x;θ):\theta_{ML} = \arg \max_\theta E_{x-p*_{data}} \log p_{model}(x; \theta ): θML?=argθmax?Ex?p?data??logpmodel?(x;θ):
注意,雖然期望值的形式是根據(jù)各個(gè)值出現(xiàn)的概率加權(quán)平均,但事實(shí)上就等于將所有樣本都直接求平均的效果是一樣的。
也就是說,最大似然估計(jì)的最后推導(dǎo)結(jié)果可以用期望值表示。所以很多時(shí)候我們說某個(gè)算法的損失函數(shù)是其條件概率分布的期望值,也就是等價(jià)與其最大似然估計(jì)。
另一種解釋最大似然估計(jì)的觀點(diǎn)是將它看作最小化訓(xùn)練集上的經(jīng)驗(yàn)分布p?datap*_{data}p?data? 和模型分布之間的差異,兩者之間的差異程度可以通過KL 散度度量。KL 散度被定義為
DKL(p?data∣∣pmodel)=Ex?p?data[log?p?data(x)?log?pmodel(x)]D_{KL}(p*_{data}||p_{model}) = E_{x-p*_{data}}[\log p*_{data}(x) - \log p_{model}(x)] DKL?(p?data?∣∣pmodel?)=Ex?p?data??[logp?data?(x)?logpmodel?(x)]
左邊一項(xiàng)僅涉及到數(shù)據(jù)生成過程,和模型無關(guān)。這意味著當(dāng)我們訓(xùn)練模型最小化KL
散度時(shí),我們只需要最小化
?Ex?p?data[log?pmodel(x)]-E_{x-p*_{data}}[ \log p_{model}(x)] ?Ex?p?data??[logpmodel?(x)]
當(dāng)然,這和上面的最大化是相同的,而這就是交叉熵的定義。
因此,我們經(jīng)常說的損失函數(shù),可以說是交叉熵,也可以說是最大似然估計(jì),其結(jié)果還可以表示成期望值,它們都是等價(jià)的。也就是說損失函數(shù)為:
θ=?arg?min?θEx?p?data[log?pmodel(x;θ)]=?arg?min?θ∑i=1mlog?pmodel(x(i);θ)\theta = -\arg \min_\theta E_{x-p*_{data}}[ \log p_{model}(x;\theta)] = -\arg \min_\theta \sum_{i=1}^m \log p_{model}(x^{(i)}; \theta) θ=?argθmin?Ex?p?data??[logpmodel?(x;θ)]=?argθmin?i=1∑m?logpmodel?(x(i);θ)
注意這里的x指的是完整的一個(gè)訓(xùn)練樣本,也就是有l(wèi)abel值的,所以可以寫成:
θ=?arg?min?θEx?p?data[log?pmodel(y∣x;θ)]=?arg?min?θ∑i=1mlog?pmodel(y∣(i)x(i);θ)\theta = -\arg \min_\theta E_{x-p*_{data}}[ \log p_{model}(y|x;\theta)] = -\arg \min_\theta \sum_{i=1}^m \log p_{model}(y|^{(i)}x^{(i)}; \theta) θ=?argθmin?Ex?p?data??[logpmodel?(y∣x;θ)]=?argθmin?i=1∑m?logpmodel?(y∣(i)x(i);θ)
這里把x和y分開了。
注意,正如上面所說,雖然期望值的形式是根據(jù)各個(gè)值出現(xiàn)的概率加權(quán)平均,但事實(shí)上就等于將所有樣本都直接求平均的效果是一樣的。所有樣本的相加,其結(jié)果就包含了概率分布的含義在內(nèi)。極端條件下(其實(shí)很普遍),所有的樣本都是不相同的,那每個(gè)pmodel(y∣(i)x(i)p_{model}(y|^{(i)}x^{(i)}pmodel?(y∣(i)x(i)出現(xiàn)的概率都是1/m,也就是一個(gè)常量。
pmodel(y∣x;θ)p_{model}(y|x;\theta)pmodel?(y∣x;θ)可以這樣理解:在當(dāng)前θ\thetaθ(即當(dāng)前模型),當(dāng)x出現(xiàn)的前提下,各個(gè)y出現(xiàn)的概率是多少。注意是各個(gè)y出現(xiàn)的概率,不是某一個(gè)y(這個(gè)在sigmoid函數(shù)特別容易引起誤會,sigmoid函數(shù)值只是結(jié)果=1的概率,沒有0的概率。)。因此,pmodel(y∣x;θ)p_{model}(y|x;\theta)pmodel?(y∣x;θ)必然與x,y,θx, y, \thetax,y,θ都要關(guān)系。
得到損失函數(shù)后,我們就可以推導(dǎo)損失函數(shù)對θ\thetaθ的梯度函數(shù),這也是x,y,θx, y, \thetax,y,θ的函數(shù)。
而對于某個(gè)模型(即當(dāng)前θ\thetaθ),以及某個(gè)具體的樣本(即x,yx,yx,y),x,y,θx, y, \thetax,y,θ都是已知的,這就可以計(jì)算出loss函數(shù)對θ\thetaθ的梯度值,然后使用梯度下降更新θ\thetaθ。
2、最大似然估計(jì)的性質(zhì)
最大似然估計(jì)最吸引人的地方在于,它被證明當(dāng)樣本數(shù)目m→inf?m \to \infm→inf時(shí),就收斂率而言是最好的漸進(jìn)估計(jì)。
為什么使用最大似然估計(jì)呢?另一種常用的損失函數(shù)是均方誤差,但它在x的絕對值很大時(shí),趨于飽和,梯度變得非常的小,很難訓(xùn)練。
3、最大似然估計(jì)推導(dǎo)邏輯回歸的損失函數(shù)
這里只解釋了最大似然估計(jì)在推導(dǎo)邏輯回歸損失函數(shù)時(shí)的應(yīng)用。
基本原理是:我們從樣本空間中隨機(jī)取N個(gè)樣本X1,X2...XNX1,X2...XNX1,X2...XN,其對應(yīng)的值為y1,y2...yny1,y2...yny1,y2...yn,既然我們已經(jīng)取得這N個(gè)樣本,則我們認(rèn)為特征值X1,X2...XNX1,X2...XNX1,X2...XN時(shí),其對應(yīng)的值為y1,y2...yny1,y2...yny1,y2...yn的概率會比較大。
最大似然估計(jì)認(rèn)為,我們?nèi)『线m的w,使得特征值X1,X2...XNX1,X2...XNX1,X2...XN時(shí),其對應(yīng)的值為y1,y2…yn的概率會最大。
極大似然估計(jì)MLE與損失函數(shù)
在機(jī)器學(xué)習(xí)理論中,損失函數(shù)(loss function) 是用來估量你模型的預(yù)測值f(x)與真實(shí)值Y的不一致程度,它是一個(gè)非負(fù)實(shí)值函數(shù),通常使用L(Y,f(x))來表示,損失函數(shù)越小,模型的魯棒性就越好。損失函數(shù)是經(jīng)驗(yàn)風(fēng)險(xiǎn)函數(shù)的核心部分,也是結(jié)構(gòu)風(fēng)險(xiǎn)函數(shù)重要組成部分。模型的結(jié)構(gòu)風(fēng)險(xiǎn)函數(shù)包括了經(jīng)驗(yàn)風(fēng)險(xiǎn)項(xiàng)和正則項(xiàng),通常可以表示成如下式子:
θ?=arg?min?θ1N∑i=1NL(yi,f(xi;θ))+λΦ(θ)θ^*= \arg \min_θ \frac{1}{N}\sum_{i=1}^N L(yi,f(xi;θ))+λ Φ(θ) θ?=argθmin?N1?i=1∑N?L(yi,f(xi;θ))+λΦ(θ)
對于邏輯回歸,其loss function是log損失,可以通過極大似然估計(jì)進(jìn)行推導(dǎo)得到。首先,給定一個(gè)樣本xxx$
,可以使用一個(gè)線性函數(shù)對自變量進(jìn)行線性組合,
θ0+θ1x1+θ2x2+?+θnxn=θTxθ_0+θ_1x_1+θ_2x_2+?+θ_nx_n=θ^Tx θ0?+θ1?x1?+θ2?x2?+?+θn?xn?=θTx
根據(jù)sigmoid函數(shù),我們可以得出預(yù)測函數(shù)的表達(dá)式:
hθ(x)=g(θTx)=11+e?θTxh_θ(x)=g(θ^Tx)= \frac{1}{1+e^{-θ^Tx}} hθ?(x)=g(θTx)=1+e?θTx1?
式(4)表示y=1時(shí)預(yù)測函數(shù)為hθ(x)h_θ(x)hθ?(x)。在這里,假設(shè)因變量y服從伯努利分布,取值為
0和1,那么可以得到下列兩個(gè)式子:
p(y=1∣x)=hθ(x)p(y=0∣x)=1?hθ(x)\begin{aligned} p(y=1|x)&=h_θ(x) \\ p(y=0|x)&=1-h_θ(x) \end{aligned} p(y=1∣x)p(y=0∣x)?=hθ?(x)=1?hθ?(x)?
而對于上面的兩個(gè)表達(dá)式,通過觀察,我們發(fā)現(xiàn),可以將其合并為表達(dá)式:
p(y∣x)=hθ(x)y(1?hθ(x))1?yp(y|x)=h_θ(x)^y(1-h_θ(x))^{1-y} p(y∣x)=hθ?(x)y(1?hθ?(x))1?y
根據(jù)上面的式子,給定一定的樣本之后,我們可以構(gòu)造出似然函數(shù),然后可以使用極大似然估計(jì)MLE的思想來求解參數(shù)。但是,為了滿足最小化風(fēng)險(xiǎn)理論,我們可以將MLE的思想轉(zhuǎn)化為最小化風(fēng)險(xiǎn)化理論,最大化似然函數(shù)其實(shí)就等價(jià)于最小化負(fù)的似然函數(shù)。對于MLE, 就是利用已知的樣本分布,找到最有可能(即最大概率)導(dǎo)致這種分布的參數(shù)值;或者說是什么樣的參數(shù)才能使我們觀測到目前這組數(shù)據(jù)的概率最大。 使用MLE推導(dǎo)LR的loss function的過程如下。
首先,根據(jù)上面的假設(shè),寫出相應(yīng)的極大似然函數(shù)(假定有m個(gè)樣本):
L(θ)=∏i=1mp(y(i)∣x(i);θ)=∏i=1mhθ(x(i))y(i)(1?hθ(x(i)))1?y(i)\begin{aligned} L(θ)&=∏_{i=1}^mp(y^{(i)}|x^{(i)};θ) \\ &=∏_{i=1}^mh_θ(x^{(i)})^{y^{(i)}}(1-h_θ(x^{(i)}))^{1-y^{(i)}} \end{aligned} L(θ)?=i=1∏m?p(y(i)∣x(i);θ)=i=1∏m?hθ?(x(i))y(i)(1?hθ?(x(i)))1?y(i)?
直接對上面的式子求導(dǎo)會不方便,因此,為了便于計(jì)算,我們可以對似然函數(shù)取對數(shù),經(jīng)過化簡可以得到下式的推導(dǎo)結(jié)果:
logL(θ)=∑i=1mlog[(hθ(xi)y(i)(1?hθ(x(i)))1?y(i))]=∑i=1m[y(i)loghθ(x(i))+(1?y(i))log(1?hθ(x(i)))]\begin{aligned} logL(θ)&=\sum_{i=1}^mlog[(h_θ(x_i)^{y^{(i)}}(1-h_θ(x^{(i)}))^{1-y^{(i)}})] \\ &=∑_{i=1}^m[y^{(i)}logh_θ(x^{(i)})+(1-y^{(i)})log(1-h_θ(x^{(i)}))] \end{aligned} logL(θ)?=i=1∑m?log[(hθ?(xi?)y(i)(1?hθ?(x(i)))1?y(i))]=i=1∑m?[y(i)loghθ?(x(i))+(1?y(i))log(1?hθ?(x(i)))]?
因此,損失函數(shù)可以通過最小化負(fù)的似然函數(shù)得到,即下式:
J(θ)=?1m∑i=1m[y(i)loghθ(x(i))+(1?y(i))log(1?hθ(x(i)))]\begin{aligned} J(θ)= -\frac{1}{m} ∑_{i=1}^m[y^{(i)}logh_θ(x^{(i)})+(1-y^{(i)})log(1-h_θ(x^{(i)}))] \end{aligned} J(θ)=?m1?i=1∑m?[y(i)loghθ?(x(i))+(1?y(i))log(1?hθ?(x(i)))]?
在有的資料上,還有另一種損失函數(shù)的表達(dá)形式,但本質(zhì)是一樣的,如下:
J(θ)=1m∑i=1mlog(1+e?y(i)θTx)J(θ)=\frac{1}{m}∑_{i=1}^mlog(1+e^{-y^{(i)}θ^Tx}) J(θ)=m1?i=1∑m?log(1+e?y(i)θTx)
對于初學(xué)者而言,可能會認(rèn)為邏輯回歸的隨時(shí)函數(shù)是平方損失,這里解釋一下:之所以有人認(rèn)為邏輯回歸是平方損失,是因?yàn)樵谑褂锰荻认陆祦砬笞顑?yōu)解的時(shí)候,它的迭代式子與平方損失求導(dǎo)后的式子非常相似,從而給人一種直觀上的錯覺。
另一種理解:
注意:sigmoid函數(shù)只是定義了在xxx的條件下,y=1y=1y=1出現(xiàn)的概率,而不是完整的概率分布。
p(y∣x)=hθ(x)y(1?hθ(x))1?yp(y|x)=h_θ(x)^y(1-h_θ(x))^{1-y} p(y∣x)=hθ?(x)y(1?hθ?(x))1?y
才是y=0/1的完整分布。因此,我們可以定義LR的損失函數(shù)為:
?Ex?p?data[log?pmodel(y∣x)]-E_{x-p*_{data}}[ \log p_{model}(y|x)] ?Ex?p?data??[logpmodel?(y∣x)]
根據(jù)第一節(jié)的推導(dǎo),可以由這個(gè)定義得到最大似然估計(jì)同樣的表達(dá)式。
**事實(shí)上,這里的損失函數(shù)不僅僅適用于邏輯回歸,而應(yīng)該是適用于所有結(jié)果為Bernoulli分布的算法。**此時(shí),由于預(yù)測結(jié)果不再是通過sigmoid函數(shù)計(jì)算出來的,損失函數(shù)為:
J(θ)=?1m∑i=1m[y(i)log?y~(i)+(1?y(i))log(1?y~(i))]J(θ)= -\frac{1}{m} \sum_{i=1}^m[y^{(i)}\log \tilde{y}^{(i)}+(1-y^{(i)})log(1-\tilde{y}^{(i)})] J(θ)=?m1?i=1∑m?[y(i)logy~?(i)+(1?y(i))log(1?y~?(i))]
其中y~(i)\tilde{y}^{(i)}y~?(i)表示模型的計(jì)算結(jié)果。也就是說深度學(xué)習(xí)的輸出如果是二分類問題的話,我們可以根據(jù)訓(xùn)練數(shù)據(jù)的真實(shí)值以及我們的預(yù)測值,計(jì)算出損失。
4、線性回歸的損失函數(shù)
對于線性回歸模型,當(dāng)因變量服從正態(tài)分布,誤差項(xiàng)滿足高斯–馬爾科夫條件(零均值、等方差、不相關(guān))時(shí),回歸參數(shù)的最小二乘估計(jì)是一致最小方差無偏估計(jì)。
簡單的說,對于線性回歸,要求其因變量的殘差滿足正態(tài)分布。因此:
pmodel(y∣x)=N(y;f(x,θ);I)p_{model}(y|x) = N(y;f(x,\theta);I) pmodel?(y∣x)=N(y;f(x,θ);I)
意思是在x的條件下,y出現(xiàn)的概率是以f(x)為中心的正態(tài)分布。
因此,我們對上式求對數(shù),很容易得到其損失函數(shù)就是均方誤差。
5、小結(jié)
(1)我們經(jīng)常使用最大似然估計(jì)(或者交叉熵,二者等價(jià))作為損失函數(shù):
θ=?arg?min?θEx?p?data[log?pmodel(y∣x;θ)]=?arg?min?θ∑i=1mlog?pmodel(y∣(i)x(i);θ)\begin{aligned} \theta &= -\arg \min_\theta E_{x-p*_{data}}[ \log p_{model}(y|x;\theta)] \\ &= -\arg \min_\theta \sum_{i=1}^m \log p_{model}(y|^{(i)}x^{(i)}; \theta) \end{aligned} θ?=?argθmin?Ex?p?data??[logpmodel?(y∣x;θ)]=?argθmin?i=1∑m?logpmodel?(y∣(i)x(i);θ)?
因此,我們定義損失函數(shù)最重要的就是找出pmodel(y∣x;θ)p_{model}(y|x;\theta)pmodel?(y∣x;θ)。
pmodel(y∣x;θ)p_{model}(y|x;\theta)pmodel?(y∣x;θ)可以這樣理解:在當(dāng)前θ\thetaθ(即當(dāng)前模型),當(dāng)x出現(xiàn)的前提下,各個(gè)y出現(xiàn)的概率是多少。注意是各個(gè)y出現(xiàn)的概率,不是某一個(gè)y(這個(gè)在sigmoid函數(shù)特別容易引起誤會,sigmoid函數(shù)值只是結(jié)果=1的概率,沒有0的概率。)。因此,pmodel(y∣x;θ)p_{model}(y|x;\theta)pmodel?(y∣x;θ)必然與x,y,θx,y,\thetax,y,θ都要關(guān)系。
得到損失函數(shù)后,我們就可以推導(dǎo)損失函數(shù)對θ\thetaθ的梯度函數(shù),這也是x,y,θx, y, \thetax,y,θ的函數(shù)。
而對于某個(gè)模型(即當(dāng)前θ\thetaθ),以及某個(gè)具體的樣本(即x,yx,yx,y),x,y,θx, y, \thetax,y,θ都是已知的,這就可以計(jì)算出loss函數(shù)對θ\thetaθ的梯度值,然后使用梯度下降更新θ\thetaθ。
(2)簡單總結(jié)一下相關(guān)知識:
- 很多模型使用交叉熵(也可理解為最大似然估計(jì))作為損失函數(shù)。
- 交叉熵可以表示為期望值的形式。
- 期望值可以簡單理解為一個(gè)分布的加權(quán)平均。
- 線性回歸、邏輯回歸都可以使用這個(gè)方法推導(dǎo)出它的損失函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的最大似然估计与损失函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特征分解与奇异值分解
- 下一篇: 模型的评估与选择