深度學習小白——線性分類(Softmax) -开发者知识库

深度學習小白——線性分類(Softmax) -开发者知识库,第1张

一、Softmax分類器(區別於SVM)

在Softmax分類器中,評分函數深度學習小白——線性分類(Softmax) -开发者知识库,f(x_i;W)=Wx_i,第2张保持不變,但是這些評分被視為每個分類的未歸一化的對數概率,

損失函數變為cross-entropy loss:   深度學習小白——線性分類(Softmax) -开发者知识库,\displaystyle Li=-log(\frac{e^{f_{y_i}}}{\sum_je^{f_j}}),第3张 

深度學習小白——線性分類(Softmax) -开发者知识库,f_j(z)=\frac{e^{z_j}}{\sum_ke^{z_k}},第4张 被稱作softmax函數,輸入為一個評分值的向量f,輸出為0~1的壓縮值,含義是深度學習小白——線性分類(Softmax) -开发者知识库,P(y_i|x_i,W)=\frac{e^{f_{y_i}}}{\sum_je^{f_j}},第5张給定圖像數據xi,以W為參數,分配給正確分類標簽yi的歸一化概率,所有元素和為1

(個人理解)由信息論的熵的定義知:熵為平均獲取的信息量,若是輸入輸出“差異”越大,則信息量越大,則熵越大,反之,“差異”越小,熵越小


深度學習小白——線性分類(Softmax) -开发者知识库,\displaystyle H(p,q)=-\sum_xp(x) logq(x),第6张 交叉熵的定義式,(q與p之間的熵)

因此:Softmax分類器所做的就是最小化估計分類概率和真實分布之間的交叉熵(真實分布為p=[0,0,....1,0,0..0]在yi的位置為1,其余為0)


【實際操作】

因為式子中有深度學習小白——線性分類(Softmax) -开发者知识库,e^{f_{y_i}},第7张深度學習小白——線性分類(Softmax) -开发者知识库,\sum_j e^{f_j},第8张,所以數值可能會非常大,所以需要分子分母同乘常數C,並把它變換到去和之中,就能得到一個從數學上等價的公式:

深度學習小白——線性分類(Softmax) -开发者知识库,\frac{e^{f_{y_i}}}{\sum_je^{f_j}}=\frac{Ce^{f_{y_i}}}{C\sum_je^{f_j}}=\frac{e^{f_{y_i} logC}}{\sum_je^{f_j logC}},第9张

通常,將C設為深度學習小白——線性分類(Softmax) -开发者知识库,logC=-max_jf_j,第10张該技巧簡單地說,就是應該將向量深度學習小白——線性分類(Softmax) -开发者知识库,f,第11张中的數值進行平移,使得最大值為0

f = np.array([123, 456, 789]) # 例子中有3個分類,每個評分的數值都很大
p = np.exp(f) / np.sum(np.exp(f)) # 不妙:數值問題,可能導致數值爆炸

# 那么將f中的值平移到最大值為0:
f -= np.max(f) # f becomes [-666, -333, 0]
p = np.exp(f) / np.sum(np.exp(f)) # 現在OK了,將給出正確結果


【求解L關於W的偏導數】——反向傳播會用到

深度學習小白——線性分類(Softmax) -开发者知识库,第12张


二、SVM 和Softmax的比較

深度學習小白——線性分類(Softmax) -开发者知识库,第13张


Softmax 分類器輸出的是p(yi | xi ; W), 即正確分類的概率

當λ變大時,權重W就會被懲罰的更多,然后W就會變得更小,算出來的分數也會更小,則,概率分布就越來越平均化


相對於Softmax分類器,SVM更加“局部目標化”,因為對於[10,-2,3]的數據,其中第一分類是正確的,那么當△=1時,就會得到損失值為0,對於[10,-100,-100]和[10,9,9]都是一樣的,所以對SVM來說沒什么不同,只要滿足超過邊界值等於1,那么損失值就等於0


但對於Softmax分類器,就不一樣。 對於[10,9,9]來說,計算出的損失值就遠遠高於[10,-100,-100]

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复