【深度学习的数学】交叉熵公式如何推导?
使用最小二乘法的二次代價函數作為損失函數由于存在計算收斂時間長的情況,人們引入了交叉熵函數,利用交叉熵和sigmoid函數,可以消除sigmoid函數的冗長性,提高梯度下降法的計算速度,那么,交叉熵函數是如何推導出來的呢?
20210819
損失函數|交叉熵損失函數
均方誤差函數在x=0附近不陡,交叉熵損失函數在x=0和x=1都有一定陡度
- 學習過程
交叉熵損失函數經常用于分類問題中,特別是在神經網絡做分類問題時,也經常使用交叉熵作為損失函數,此外,由于交叉熵涉及到計算每個類別的概率,所以交叉熵幾乎每次都和sigmoid(或softmax)函數一起出現。
我們用神經網絡最后一層輸出的情況,來看一眼整個模型預測、獲得損失和學習的流程:
神經網絡最后一層得到每個類別的得分scores(也叫logits);
該得分經過sigmoid(或softmax)函數獲得概率輸出;
模型預測的類別概率輸出與真實類別的one hot形式進行交叉熵損失函數的計算。
- 計算求導
使用交叉熵損失函數,不僅可以很好的衡量模型的效果,又可以很容易的的進行求導計算。
- 優點
在用梯度下降法做參數更新的時候,模型學習的速度取決于兩個值:一、學習率;二、偏導值。其中,學習率是我們需要設置的超參數,所以我們重點關注偏導值。從上面的式子中,我們發現,偏導值的大小取決于
和
,我們重點關注后者,后者的大小值反映了我們模型的錯誤程度,該值越大,說明模型效果越差,但是該值越大同時也會使得偏導值越大,從而模型學習速度更快。所以,使用邏輯函數得到概率,并結合交叉熵當損失函數時,在模型效果差的時候學習速度比較快,在模型效果好的時候學習速度變慢。
- 缺點
Deng [4]在2019年提出了ArcFace Loss,并在論文里說了Softmax Loss的兩個缺點:1、隨著分類數目的增大,分類層的線性變化矩陣參數也隨著增大;2、對于封閉集分類問題,學習到的特征是可分離的,但對于開放集人臉識別問題,所學特征卻沒有足夠的區分性。對于人臉識別問題,首先人臉數目(對應分類數目)是很多的,而且會不斷有新的人臉進來,不是一個封閉集分類問題。
另外,sigmoid(softmax)+cross-entropy loss 擅長于學習類間的信息,因為它采用了類間競爭機制,它只關心對于正確標簽預測概率的準確性,忽略了其他非正確標簽的差異,導致學習到的特征比較散。基于這個問題的優化有很多,比如對softmax進行改進,如L-Softmax、SM-Softmax、AM-Softmax等。
ps. 你得辯證的看,說不定作者寫的有疏漏哦。。。。。(Dontla)
總結
以上是生活随笔為你收集整理的【深度学习的数学】交叉熵公式如何推导?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSDN Markdown 博客如何设置
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习