六、改進神經網路的學習方法(2):Softmax輸出層
本部落格主要內容為圖書《神經網路與深度學習》和National Taiwan University (NTU)林軒田老師的《Machine Learning》的學習筆記,因此在全文中對它們多次引用。初出茅廬,學藝不精,有不足之處還望大家不吝賜教。
1. Softmax輸出層
定義一種新的輸出層,對於輸出層某一個神經元的權值輸入為
為了更好地理解⽅程, 假設我們有⼀個包含四個輸出神經元的神經⽹絡,對應四個帶權輸⼊為
1.1 Softmax的單調性證明
這裡應該首先對Softmax定義式進行理解,在這個定義中,
所以當
則\frac{\partial a_j^L}{\partial z_k^L}=\frac{e^{z_k^L}\sum_{k\neq j}e^{z_k^L}}{\left(\sum_k{e^{z_k^L}}\right)^2}\tag{3}\label{3}
因此
\frac{\partial a_j^L}{\partial z_k^L}=-\frac{e^{z_j^L}e^{z_k^L}}{\left(\sum_k{e^{z_k^L}}\right)^2}\tag{4}\label{4}
因此
所以當自己的權值輸入增加時,函式值會對應增加;但是隻有當別的神經元的權值輸入都下降的時候,函式值才會增加,因此Softmax是具有單調增加性的。
1.2 Softmax的非區域性性證明
通過定義式可以知道任何一個輸出啟用值依賴於所有的輸入。
這樣便引出了Softmax輸出層的第一個優點:softmax層得到的輸出是一系列相加和為1的正數,即從softmax層得到的輸出可以看做是一個概率分佈。
1.3 Softmax的數值穩定
程式設計實現softmax函式計算的時候,中間項
C 的值可自由選擇,不會影響計算結果,通過使用這個技巧可以提高計算中的數值穩定性。通常將 C 設為
2. log-likelihood代價函式
用
需要注意的是這裡我對
當網路的輸出層為Softmax輸出層且代價函式是log-likelihood函式,對輸出層的權重及偏置求梯度可得(具體過程省略,實際與之前的求法均相似,即先對
\frac{\partial C}{\partial w_{jk}^L}=a_k^{L-1}(a_j^L-y_j)\tag{7}\label{7}
這些表示式確保了Softmax輸出層的第二個優點:不會遇到學習速度衰退的問題。事實上可以將softmax輸出層與log-likelihood代價函式的搭配,類比成sigmoid輸出層與交叉熵代價函式的搭配。在許多情景下,兩種方法的效果都不錯。我們有時會使用softmax輸出層搭配log-likelihood代價函式來讓我們的網路和一些有影響力的學術論文中的網路更加接近。通常來說,在任何你想要把輸出啟用值解讀成概率的時候,softmax加上log-likelihood總是不錯的選擇,至少對於沒有交集的分類問題(例如MNIST)來說是這樣的。
3. Softmax & log-likelihodd 的反向傳播
因為
使用這個表示式以後,我們就可以在包含softmax輸出層和 log-likelihood 代價函式的網路中應用反向傳播演算法了。
4. Softmax與邏輯迴歸
留個坑有空填……