Loss
- loss的作用如下:
- 計(jì)算實(shí)際輸出和真實(shí)值之間的差距
- 為我們更新模型提供一定的依據(jù)(反向傳播)
L1Loss
- 絕對(duì)值損失函數(shù):在每一個(gè)batch_size內(nèi),求每個(gè)輸入x和標(biāo)簽y的差的絕對(duì)值,最后返回他們平均值

MSELoss
- 均方損失函數(shù):在每一個(gè)batch_size內(nèi),求每個(gè)輸入x和標(biāo)簽y的差的平方,最后返回他們的平均值

交叉熵Loss
- 當(dāng)我們?cè)谔幚矸诸悊?wèn)題時(shí),經(jīng)常使用交叉熵?fù)p失函數(shù)。
- 交叉熵能夠衡量同一個(gè)隨機(jī)變量中的兩個(gè)不同概率分布的差異程度,在機(jī)器學(xué)習(xí)中就表示為真實(shí)概率分布與預(yù)測(cè)概率分布之間的差異。交叉熵的值越小,模型預(yù)測(cè)效果就越好。
- 交叉熵在分類問(wèn)題中常常與softmax是標(biāo)配,softmax將輸出的結(jié)果進(jìn)行處理,使其多個(gè)分類的預(yù)測(cè)值和為1,再通過(guò)交叉熵來(lái)計(jì)算損失。
- 由于以下內(nèi)容需要理解Softmax函數(shù)和交叉熵?fù)p失函數(shù),所以先回顧一遍:
- Softmax函數(shù):
- 首先,分類任務(wù)的目標(biāo)是通過(guò)比較每個(gè)類別的概率大小來(lái)判斷預(yù)測(cè)的結(jié)果。但是,我們不能選擇未規(guī)范化的線性輸出作為我們的預(yù)測(cè)。原因有兩點(diǎn)。
1. 線性輸出的總和不一定為1
2. 線性輸出可能有負(fù)值
- 因此我們采用Softmax規(guī)范手段來(lái)保證輸出的非負(fù)、和為1,公式和舉例如下:
- 左側(cè)為Softmax函數(shù)公式,右側(cè)的o為線性輸出,y為Softmax規(guī)范后的輸出

- 交叉熵?fù)p失函數(shù):
- 下圖為交叉熵?fù)p失函數(shù)公式,P(x)為真實(shí)概率分布,q(x)為預(yù)測(cè)概率分布:

- 我們將Softmax規(guī)范后的輸出代入交叉熵?fù)p失函數(shù)中,可得:
- 在訓(xùn)練中,我們已知該樣本的類別,那么在該樣本的真實(shí)概率分布中,只有該類別為1,其他都為0。
- 在計(jì)算機(jī)中的log,默認(rèn)都是ln。

- 這就是Pytorch官網(wǎng)中的交叉熵?fù)p失函數(shù)公式:
