softmax函数理解
該節課中提到了一種叫作softmax的函數,因為之前對這個概念不了解,所以本篇就這個函數進行整理,如下:
維基給出的解釋:softmax函數,也稱指數歸一化函數,它是一種logistic函數的歸一化形式,可以將K維實數向量壓縮成范圍[0-1]的新的K維實數向量。函數形式為:
? (1)
其中,分母部分起到歸一化的作用。至于取指數的原因,第一是要模擬max的行為,即使得大的數值更大;第二是方便求導運算。
在概率論中,softmax函數輸出可以代表一個類別分布--有k個可能結果的概率分布。
從定義中也可以看出,softmax函數與logistic函數有著緊密的的聯系,對于logistic函數,定義如下:
最顯著的區別:logistic 回歸是針對二分類問題,softmax則是針對多分類問題,logistic可看成softmax的特例。
二分類器(two-class classifier)要最大化數據集的似然值等價于將每個數據點的線性回歸輸出推向正無窮(類1)和負無窮(類2)。邏輯回歸的損失方程(Loss Function):
對于給定的測試輸入?,假如想用假設函數針對每一個類別j估算出概率值?。即估計??的每一種分類結果出現的概率。因此,假設函數將要輸出一個??維的向量(向量元素的和為1)來表示這??個估計的概率值。 假設函數??形式如下:
其中??是模型的參數。請注意?這一項對概率分布進行歸一化,使得所有概率之和為 1 。
其代價函數可以寫為:
其中,1{真}=1,1{假}=0.
12.23補充:
關于代價函數,softmax用的是cross-entropy loss,信息論中有個重要的概念叫做交叉熵cross-entropy,?公式是:?
香農熵的公式:
交叉熵與 loss的聯系,設p(x)代表的是真實的概率分布,那么可以看出上式是概率分布為的相對熵公式,是對第i個類別概率的估計。使用損失函數可以描述真實分布于估計分布的交叉熵。交叉熵可以看做熵與相對熵之和:,這里的相對熵也叫作kl距離,在信息論中,D(P||Q)表示當用概率分布Q來擬合真實分布P時,產生的信息損耗,其中P表示真實分布,Q表示P的擬合分布。又因為真實值的熵是不變的,交叉熵也描述預測結果與真實結果的相似性,用來做損失函數可保證預測值符合真實值。?
softmax的應用:
在人工神經網絡(ANN)中,Softmax常被用作輸出層的激活函數。其中,表示第L層(通常是最后一層)第j個神經元的輸入,表示第L層第j個神經元的輸出,表示自然常數。注意看,表示了第L層所有神經元的輸入之和。
不僅是因為它的效果好,而且它使得ANN的輸出值更易于理解,即神經元的輸出值越大,則該神經元對應的類別是真實類別的可能性更高。
12.17補充:softmax求導
由公式(1)可知,softmax函數僅與分類有關:
其負對數似然函數為:
對該似然函數求導,得:
注:參考博客里上面求導公式有誤,已更正。
對于①條件:先Copy一下Softmax的結果(即prob_data)到bottom_diff,再對k位置的unit減去1
對于②條件:直接Copy一下Softmax的結果(即prob_data)到bottom_diff
對于③條件:找到ignore位置的unit,強行置為0。
總結
以上是生活随笔為你收集整理的softmax函数理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tensorflow编程入门笔记之一
- 下一篇: 深度学习资料汇总