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