线性-LR-softmax傻傻分不清楚
softmax
對于分類網絡,最后一層往往是全連接層,如果是N分類,那么最終的全連接層有N個結點。很顯然,每個節點對應一個類,該節點的權重越大,說明網絡越傾向于認為輸入樣本屬于該類。這其實就是Softmax的思想:古典概率模型。Softmax的不同之處在于將基本事件用e的冪表示,這樣的好處是便于反向傳播中的求導。我們來看softmax的概率計算:
有了概率就可以求交叉熵:,這里的是獨熱編碼,所以Loss中的求和符合可以去掉,得到
驚喜地發現,只要得到前向傳播的結果,結果減1就得到反向傳播的梯度。緣,妙不可言。
更嚴格的證明,其實要區分i與j是否相等,因為在全連接中是交叉連接的,反向傳播也會交叉傳播。那么,如果輸出是[0.1,0.3,0.6],對第二類求偏導,得到[0.1,0.7,0.6]。可以看到,當節點與標簽不同時,輸出直接作為loss的導數,當節點與標簽相同時,會將1-輸出作為梯度。通過這樣的反向傳播,就會造成輸出越來越集中在正確的節點上,且越來越逼近1.https://www.cnblogs.com/alexanderkun/p/8098781.html
Sigmoid
Softmax其實是一個激活函數,而提到激活函數,就不得不提Sigmoid,他們兩個有什么關系呢?直接說結論:二分類時,二者可以看作是等價的。
可以看到,二者的輸出形式都是一樣的,求導的特點也是一樣的。sigmoid其實可以看作是softmax在類別N等于2時的一個特例,因為模擬神經元的受刺激與受抑制,這時二分類問題,所以sigmoid不僅用于分類網絡的最后一層,也常用于隱藏層中的神經元連接處。如果說有什么不同點的話那就是網絡結構在實現上有所不同:同樣是二分類,sigmoid只要對一個featuremap進行計算則可直接得到它屬于正樣本的概率;而softmax需要兩個節點,在兩個channel上分別求e的冪再套用softmax的概率公式,分別得到正負樣本的概率。
具體使用時要看情況:如果是多分類任務,且類別間是互斥的,使用softmax。softmax的好處就是可以任意調整分類類別。如果一個樣本可能同時屬于多個類別,則使用sigmoid,此時sigmoid對各個類別輸出的概率之和不為1。https://www.cnblogs.com/jiashun/p/doubles.html
說一下sigmoid。它的作用首先是將之前的線性輸出轉換為“分類”,最簡單的分類是設定閾值的分類,對應的激活函數表現為分段函數,這樣不利于求導。所以sigmoid首先可以看作是對階梯函數的近似,同時獲得了連續可微,可得到概率的特性。更進一步地,sigmoid還使得分類器獲得了非線性的特性。那么sigmoid這個函數的表達式到底是怎樣確立的呢?這就要引入“對數幾率”的概念。對于線性模型,不再用線性模型直接表示類別輸出,而是表示類別概率的比值的對數(只能盡量去理解,比值是為了體現概率,對數是為了引入非線性),那么可以得到,從而解得
LR(Logistic?Regression)
前面提到Sigmoid對一個單通道輸出就可以得到屬于正樣本的概率,這個概率實際上就是樣本1的后驗概率。而使用sigmoid做分類其實就是邏輯回歸。這里就從后驗概率的角度討論一下邏輯回歸的代價函數和反向傳播。會發現和交叉熵的角度反向傳播softmax也是等價的。https://blog.csdn.net/zjuPeco/article/details/77165974
假設數據服從伯努利分布,那么。寫成一部形式:,是所求參數,現在我們認為它是一個確定的但未知的(區別于貝葉斯學派認為它是一個分布)?,F在我們有n個訓練樣本,認為他們服從獨立同分布,那么就可以使用最大似然估計:對于正確的,聯合分布概率取最大值(因為獨立同分布,所以是后驗概率的乘積)
由此得到代價函數,再進行求導即可以進行梯度更新https://zhuanlan.zhihu.com/p/103459570
指數分布族
https://www.zhihu.com/question/29435973
總結
以上是生活随笔為你收集整理的线性-LR-softmax傻傻分不清楚的全部內容,希望文章能夠幫你解決所遇到的問題。