看了知乎一篇博文當我們優化損失函數時,我們在優化什么收獲良多,對機器學習分類和回歸中損失函數和正則項也有了更深的認識。理解了這些,可以加深對邏輯回歸,Softmax,線性回歸等機器學習方法的理解,知道為什么要這樣。現簡單總結一下。
貝葉斯公式:$p(x|y)=\frac{p(y|x)p(x)}{p(y)}$
如果設訓練集為$D$,那么對於模型參數$w$來說,貝葉斯公式為:$p(w|D)=\frac{p(D|w)p(w)}{p(D)}$。
其中$p(w)$表示的是參數$w$的先驗(prior)分布;$p(D|w)$ 給定參數為$w$的情況下,訓練數據為$D$的可能性,我們也可以把它看成一個關於$w$的函數,這個函數叫做似然函數(likelihood function);$p(w|D)$ 是參數$w$在給定數據$D$下的后驗(posterior)分布。
給定這些定義,貝葉斯公式可以表示成:$\text{posterior }\infty \text{ likelihood }\times \text{ prior}$,即后驗正比於似然乘以先驗。
通過極大似然函數$p(D|w)$,我們可以找到一個最優的參數$w^*$,使得在這組參數設定下,出現訓練數據$D$的可能性$p(w|D)$ 最大。這組參數在統計上叫做參數$w$的極大似然估計。
對上式貝葉斯公式兩邊取對數,可得:$\text{In }p(w|D)=\text{In }p(D|w)+\text{In }p(w)+const$。
可以看出,加入正則項相當於加入了$w$的的先驗分布$p(w)$。
回歸與分類問題的損失函數分析
在回歸問題(regression problems)中,常用平方誤差和(sum of squares)來衡量模型的好壞。給定一個包含$N$個數據的訓練集 $x={x_1,x_2,...,x_N}$ ,以及這些數據對應的目標值 $t={t_1,t_2,...,t_N}$,回歸問題的目標是利用這組訓練集,尋找一個合適的模型,來預測一個新的數據點$\hat{x}$對應的目標值$\hat{t}$。記模型的參數為$w$,模型對應的函數為$y$ ,模型的預測值可以相應表示為 $y(x,w)$。
為了衡量模型的好壞,需要一種方法衡量預測值與目標值之間的誤差,一個常用的選擇是平方誤差和:
\[E(w)=\frac{1}{2}\sum\limits_{n=1}^{N}{\left\{ y({{x}_{n}},w)-{{t}_{n}} \right\}}\]
回歸問題的目標是找到一組參數$w^*$使得誤差函數$E(w)$最小化。而最小化$E(w)$的意思是什么呢?
誤差會來自兩個部分:系統誤差和隨機誤差。通過多次測量能夠減少隨機誤差,但是不能減少系統誤差,所以測量誤差是不可避免的。同理,在回歸問題中,$x$的測量值$t$也會存在一定的誤差。假定對所有的數據點$x$,模型預測值 與目標值 $t$之間的誤差是一樣的,並服從一定的概率分布,比如均值為0,方差為 ${{\beta }^{-1}}={{\sigma }^{2}}$的高斯分布,則有:
\[p(t-y(x,w)|x,w,\beta )\tilde{\ }\mathcal{N}(t-y(x,w)|0,{{\beta }^{-1}})\]
即:$p(t|x,w,\beta )\tilde{\ }\mathcal{N}(t|y(x,t),{{\beta }^{-1}})$
對於一組獨立同分布的數據點 $x={x_1,x_2,...,x_N}$ ,以及這些數據對應的目標值 $t={t_1,t_2,...,t_N}$,我們得到關於這組數據的似然函數:
\[p(t|x,w,{{\beta }^{-1}})=\prod\limits_{n=1}^{N}{p}({{t}_{n}}|{{x}_{n}},w,{{\beta }^{-1}})=\prod\limits_{n=1}^{N}{\mathcal{N}}({{t}_{n}}|y({{x}_{n}},w),{{\beta }^{-1}})\]
其中,高斯分布的概率函數為:
\[N(t|y(x,t),{{\beta }^{-1}})={{\left( \frac{\beta }{2\pi } \right)}^{\frac{1}{2}}}\exp \left\{ -\frac{\beta }{2}{{\left[ t-y(x,w) \right]}^{2}} \right\}\]
可以通過極大化這個似然函數得到關於 的一組極大似然解。不過,更方便的做法是極大對數似然函數,因為對數函數是嚴格單增的,所以極大對數似然的解與極大似然的解是相同的。
對數似然函數為:
\[\ln p(t|x,w,{{\beta }^{-1}})=-\frac{\beta }{2}\sum\limits_{n=1}^{N}{\{y(}{{x}_{n}},w)-t{{\}}^{2}}+\frac{N}{2}\ln \beta -\frac{N}{2}\ln 2\pi \]
如果我們不考慮 $\beta $ 的影響,那么,對於參數 $w$來說,最小化平方誤差和的解,就等於極大對數似然的估計。因此,最小化平方誤差和 $E(W)$ 與極大似然等價,考慮到似然函數的定義,優化 $E(W)$ 相當於在給定高斯誤差的假設下,尋找一組 $w$ 使得觀察到目標值$t$的概率最大。
在分類問題中,給定一個包含$N$個數據樣本的訓練集 $x={x_1,x_2,...,x_N}$ ,以及這些數據對應的類別$t={t_1,t_2,...,t_N}$,這里, ${{t}_{n}}\in \{1,2,\ldots ,K\}$,分類問題的目標是利用這組訓練集,尋找一個合適的模型,來預測一個新的數據點$\hat{x}$對應的類別$\hat{t}$。現在假設模型的參數為$w$,模型輸出是屬於每一類的概率,預測為第 $k\in \{1,2,\ldots ,K\}$ 類的概率為$p(k|x,w)$ 。
對於樣本 $x$,其屬於第$t$類的概率為:\[p(t|x,w)=\prod\limits_{k=1}^{K}{p}{{(y=t|x,w)}^{{{1}_{t=k}}}}\]
其中,。
因此,似然函數為:$p(t|x,w)=\prod\limits_{n=1}^{N}{(\prod\limits_{k=1}^{K}{p}{{({{t}_{n}}|{{x}_{n}},w)}^{{{1}_{t=k}}}})}$
對數似然為:$\ln p(t|x,w)=\sum\limits_{n=1}^{N}{\sum\limits_{k=1}^{K}{{{1}_{t=k}}}}\log p({{t}_{n}}|{{x}_{n}},w)$
極大化對數似然,相當於極小化:$-\sum\limits_{n=1}^{N}{\sum\limits_{k=1}^{K}{{{1}_{t=k}}}}\log p({{t}_{n}}|{{x}_{n}},w)$
事實上,這正是我們常使用的多類交叉熵損失函數的表示形式。
因此,在分類問題中,最小化交叉熵損失函數相當與極大樣本的似然函數。 可以聯系邏輯回歸於softmax的損失函數,其極大似然函數就是交叉熵損失函數。
正則項
在優化目標函數時,除了正常的損失函數外,為了防止過擬合,我們通常會加入一些正則項。由上面的分析可知,加入正則項,相當於給參數$w$加入了其先驗分$p(w)$。常見的正則項有L0、L1和L2正則。
- L0正則是向量的0范數,指向量中非零元素的個數。L0正則化的值是模型中非零參數的個數,L0正則化可以實現模型參數的的稀疏化,然然L0正則化是個NP難問題,很難求解,一般使用L1正則實現參數的稀疏化。
- L1正則是向量的1范數,指向量各元數絕對值的和。L1正則可以使參數更多的等於0,故可以實現參數的稀疏,也叫做Lasso回歸。
- L2正則是向量的2范數,指向量的內積,是所有元素的平方和在求平方根。L2正則可以使參數都趨向於0,故可以實現參數的平滑,也叫Ridge回歸
給損失函數加入正則項相當於加入了對參數的先驗分布,因而能防止過擬合。其中,L1正則等價於參數$w$的先驗分布滿足均值為0的拉普拉斯分布,均值為0的拉普拉斯在0附近突出,周圍稀疏,對應容易產生稀疏解的模型;L2正則等價於參數w的先驗分布滿足均值為0的正態分布,均值為0的正態分布在0附近平滑,對應容易產平滑解的模型。