在前面的logistic regression博文Deep learning:四(logistic regression練習(xí)) 中,我們知道logistic regression很適合做一些非線性方面的分類問(wèn)題,不過(guò)它只適合處理二分類的問(wèn)題,且在給出分類結(jié)果時(shí)還會(huì)給出結(jié)果的概率。那么如果需要用類似的方法(這里類似的方法指的是輸出分類結(jié)果并且給出概率值)來(lái)處理多分類問(wèn)題的話該怎么擴(kuò)展呢?本次要講的就是對(duì)logstic regression擴(kuò)展的一種多分類器,softmax regression。參考的內(nèi)容為網(wǎng)頁(yè):http://deeplearning./wiki/index.php/Softmax_Regression 在Logistic regression中,所學(xué)習(xí)的系統(tǒng)的程為:
其對(duì)應(yīng)的損失函數(shù)為:
可以看出,給定一個(gè)樣本,就輸出一個(gè)概率值,該概率值表示的含義是這個(gè)樣本屬于類別’1’的概率,因?yàn)榭偣膊庞?個(gè)類別,所以另一個(gè)類別的概率直接用1減掉剛剛的結(jié)果即可。如果現(xiàn)在的假設(shè)是多分類問(wèn)題,比如說(shuō)總共有k個(gè)類別。在softmax regression中這時(shí)候的系統(tǒng)的方程為:
其中的參數(shù)sidta不再是列向量,而是一個(gè)矩陣,矩陣的每一行可以看做是一個(gè)類別所對(duì)應(yīng)分類器的參數(shù),總共有k行。所以矩陣sidta可以寫成下面的形式:
此時(shí),系統(tǒng)損失函數(shù)的方程為:
其中的1{.}是一個(gè)指示性函數(shù),即當(dāng)大括號(hào)中的值為真時(shí),該函數(shù)的結(jié)果就為1,否則其結(jié)果就為0。 當(dāng)然了,如果要用梯度下降法,牛頓法,或者L-BFGS法求得系統(tǒng)的參數(shù)的話,就必須求出損失函數(shù)的偏導(dǎo)函數(shù),softmax regression中損失函數(shù)的偏導(dǎo)函數(shù)如下所示:
注意公式中的是一個(gè)向量,表示的是針對(duì)第i個(gè)類別而求得的。所以上面的公式還只是一個(gè)類別的偏導(dǎo)公式,我們需要求出所有類別的偏導(dǎo)公式。表示的是損失函數(shù)對(duì)第j個(gè)類別的第l個(gè)參數(shù)的偏導(dǎo)。 比較有趣的時(shí),softmax regression中對(duì)參數(shù)的最優(yōu)化求解不只一個(gè),每當(dāng)求得一個(gè)優(yōu)化參數(shù)時(shí),如果將這個(gè)參數(shù)的每一項(xiàng)都減掉同一個(gè)數(shù),其得到的損失函數(shù)值也是一樣的。這說(shuō)明這個(gè)參數(shù)不是唯一解。用數(shù)學(xué)公式證明過(guò)程如下所示:
那這個(gè)到底是什么原因呢?從宏觀上可以這么理解,因?yàn)榇藭r(shí)的損失函數(shù)不是嚴(yán)格非凸的,也就是說(shuō)在局部最小值點(diǎn)附近是一個(gè)”平坦”的,所以在這個(gè)參數(shù)附近的值都是一樣的了。那么怎樣避免這個(gè)問(wèn)題呢?其實(shí)加入規(guī)則項(xiàng)就可以解決(比如說(shuō),用牛頓法求解時(shí),hession矩陣如果沒(méi)有加入規(guī)則項(xiàng),就有可能不是可逆的從而導(dǎo)致了剛才的情況,如果加入了規(guī)則項(xiàng)后該hession矩陣就不會(huì)不可逆了),加入規(guī)則項(xiàng)后的損失函數(shù)表達(dá)式如下:
這個(gè)時(shí)候的偏導(dǎo)函數(shù)表達(dá)式如下所示:
接下來(lái)剩下的問(wèn)題就是用數(shù)學(xué)優(yōu)化的方法來(lái)求解了,另外還可以從數(shù)學(xué)公式的角度去理解softmax regression是logistic regression的擴(kuò)展。 網(wǎng)頁(yè)教程中還介紹了softmax regression和k binary classifiers之間的區(qū)別和使用條件??偨Y(jié)就這么一個(gè)要點(diǎn):如果所需的分類類別之間是嚴(yán)格相互排斥的,也就是兩種類別不能同時(shí)被一個(gè)樣本占有,這時(shí)候應(yīng)該使用softmax regression。反正,如果所需分類的類別之間允許某些重疊,這時(shí)候就應(yīng)該使用binary classifiers了。
參考資料: Deep learning:四(logistic regression練習(xí)) http://deeplearning./wiki/index.php/Softmax_Regression
|
|
來(lái)自: lzqkean > 《deep learning》