深度學習基礎系列(四)| 理解softmax函數


  深度學習最終目的表現為解決分類或回歸問題。在現實應用中,輸出層我們大多采用softmax或sigmoid函數來輸出分類概率值,其中二元分類可以應用sigmoid函數。

  而在多元分類的問題中,我們默認采用softmax函數,具體表現為將多個神經元的輸出,映射到0 ~ 1的區間中,按概率高低進行分類,各概率之和為1。

  某分類的概率數學表達式為:y= e/ ∑j=1e 

  具體來說,假設有四個輸出單元,分別為:

  •   y= ex1 / (ex1 + ex2 + ex3 + ex4 ),假設其概率為0.4
  •   y2 = ex2/ (ex1 + ex2 + ex3 + ex4 ),假設其概率為0.15
  •   y= ex3/ (ex1 + ex2 + ex3 + ex4 ),假設其概率為0.15
  •   y4= ex4/ (ex1 + ex2 + ex3 + ex4 ), 假設其概率為0.3

  可以看出 y1 + y+ y+ y4 = 1。並且其中某神經元的輸出若增加,則其他神經元的輸出則減少,反之也成立。

  最后再看看softmax函數如何求導,令y = ex/ ∑exk ,分兩種情況:

  1. i為softmax值,我們對exi 求導,

      與此相關的基礎求導公式:(u/v)= (uv - uv') / v2 和  (ex)= e,並應用鏈式法則可得求導過程:

   dy/dexi = ( ex/ ∑exk)

       =  (exi * ∑exk  - exi * exi ) / (∑exk)

       =  ex/ ∑exk   -  (ex/ ∑exk ) * (ex/ ∑exk )

       = yxi - yxi2

  2. i不為softmax值,我們依然對exi 求導,其過程為:

   dy/dexi =  ( ex/ ∑exk)    注:i ≠ j

       = (0 * ∑exk - exj * exi) / (∑exk)

       = -1 * (ex/ ∑exk ) * (exj / ∑exk)

       = - yxi * yxj 

 

       

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM