@[toc]
1. 損失函數(shù)概念
-
損失函數(shù):衡量模型輸出與真實(shí)標(biāo)簽的差異
在這里插入圖片描述 - 損失函數(shù)(Loss Function):
- 代價(jià)函數(shù)(Cost Function):
- 目標(biāo)函數(shù)(Objective Function):
2. 交叉熵?fù)p失函數(shù)
- 1.nn.CrossEntropyLoss
- 功能:nn.LogSoftmax()與nn.NLLLoss()結(jié)合,進(jìn)行交叉熵計(jì)算
- 主要參數(shù):
- weight:各類別的loss設(shè)置權(quán)值
- ignore_index:忽略某個(gè)類別
- reduction:計(jì)算模式,可為none/sum/mean
- none:逐個(gè)元素計(jì)算
- sum:所有元素求和,返回標(biāo)量
- mean:加權(quán)平均,返回標(biāo)量
3. NLL/BCE/BCEWITHLogits Loss
-
2.nn.NLLLoss
- 功能:實(shí)現(xiàn)負(fù)對(duì)數(shù)似然函數(shù)的負(fù)號(hào)功能
- 主要參數(shù):
- weight:各類別的loss設(shè)置權(quán)值
- ignore_index:忽略某個(gè)類別
- reduction:計(jì)算模式,可為none/sum/mean
- none:逐個(gè)元素計(jì)算
- sum:所有元素求和,返回標(biāo)量
- mean:加權(quán)平均,返回標(biāo)量
-
3.nn.BCELoss
- 功能:二分類交叉熵,輸入值取值在[0,1]
- 主要參數(shù):
- weight:各類別的loss設(shè)置權(quán)值
- ignore_index:忽略某個(gè)類別
- reduction:計(jì)算模式,可為none/sum/mean
- none:逐個(gè)元素計(jì)算
- sum:所有元素求和,返回標(biāo)量
- mean:加權(quán)平均,返回標(biāo)量
-
4.BCEWITHLogits Loss
- 功能:結(jié)合Sigmoid與二分類交叉熵,網(wǎng)絡(luò)最后不加sigmoid函數(shù)
- 主要參數(shù):
- pos_weight:正樣本的權(quán)值
- weight:各類別的loss設(shè)置權(quán)值
- ignore_index:忽略某個(gè)類別
- reduction:計(jì)算模式,可為none/sum/mean
- none:逐個(gè)元素計(jì)算
- sum:所有元素求和,返回標(biāo)量
- mean:加權(quán)平均,返回標(biāo)量
數(shù)據(jù)回歸模型中常用的損失函數(shù):
- 5.nn.L1Loss
- 功能:計(jì)算inputs與target之差的絕對(duì)值
- 公式:
- 6.nn.MSELoss
- 功能:計(jì)算inputs與target之差的平方
- 公式:
兩個(gè)損失函數(shù)的主要參數(shù)為:
reduction:計(jì)算模式,可為none/sum/mean
- none:逐個(gè)元素計(jì)算
- sum:所有元素求和,返回標(biāo)量
- mean:加權(quán)平均,返回標(biāo)量-
7.SmoothL1Loss
- 功能:平滑的L1Loss
- 參數(shù):
- reduction:計(jì)算模式,可為none/sum/mean
- none:逐個(gè)元素計(jì)算
- sum:所有元素求和,返回標(biāo)量
-
mean:加權(quán)平均,返回標(biāo)量
在這里插入圖片描述
在這里插入圖片描述
- reduction:計(jì)算模式,可為none/sum/mean
-
8.PoissonNLLLoss
- 功能:泊松分布的負(fù)對(duì)數(shù)似然損失函數(shù)
- 主要參數(shù):
- log_input:輸入是否為對(duì)數(shù)形式,決定計(jì)算公式
- full:計(jì)算所有l(wèi)oss,默認(rèn)為False
-
eps:修正項(xiàng),避免log(input)為nan
在這里插入圖片描述
-
9.nn.KLDivLoss
- 功能:計(jì)算KLD(divergence),KL散度,相對(duì)熵
- 注意:需提前將輸入計(jì)算log-probabilities, 如通過(guò)nn.logsoftmax()
- 主要參數(shù):
- reduction:計(jì)算模式,可為none/sum/mean/batchmean
- batchmean:batchsize維度求平均值
- none:逐個(gè)元素計(jì)算
- sum:所有元素求和,返回標(biāo)量
-
mean:加權(quán)平均,返回標(biāo)量
在這里插入圖片描述
- reduction:計(jì)算模式,可為none/sum/mean/batchmean
-
10.nn.MarginRankingLoss
- 功能:計(jì)算兩個(gè)向量之間的相似度,用于排序任務(wù)
- 特別說(shuō)明:該方法計(jì)算兩組數(shù)據(jù)之間的差異,返回一個(gè)n*n的loss矩陣
- 主要參數(shù):
- margin:邊界值,x1與x2之間的差異值
-
reduction:計(jì)算模式,可為none/sum/mean
在這里插入圖片描述
-
11.nn.MultiLabelMarginLoss
- 功能:多標(biāo)簽邊界損失函數(shù)
- 主要參數(shù):
- reduction:計(jì)算模式
-
示例:四分類任務(wù),樣本x輸入0類和4類,標(biāo)簽[0,3,-1,-1],不是[1,0,0,1]
在這里插入圖片描述
-
12.nn.SoftMarginLoss
- 功能:計(jì)算二分類的logistic損失
-
參數(shù):reduction:計(jì)算模式
在這里插入圖片描述
-
13.nn.MultiLabelSoftMarginLoss
- 功能:SoftMarginLoss多標(biāo)簽版本
- 參數(shù):
- weight:各類別的loss設(shè)置權(quán)值
-
reduction:計(jì)算模式。
在這里插入圖片描述
-
14.nn.MultiMarginLoss
- 功能:計(jì)算多分類的折頁(yè)損失
- 參數(shù):
- p:可選1或2
- weight:各類別的loss設(shè)置權(quán)值
- margin:邊界值
-
reduction:計(jì)算模式
在這里插入圖片描述
在這里插入圖片描述
-
15.nn.TripletMarginLoss
- 功能:計(jì)算三元組損失,人臉驗(yàn)證中常用
- 主要參數(shù):
- p:范數(shù)的階,默認(rèn)為2
- margin:邊界值
-
reduction:計(jì)算模式
在這里插入圖片描述
-
16.nn.HingeEmbeddingLoss
- 功能:計(jì)算兩個(gè)輸入的相似性,常用于非線性embedding和半監(jiān)督學(xué)習(xí)
- 注意:輸入x應(yīng)為兩個(gè)輸入之差的絕對(duì)值
- 主要參數(shù):
- margin:邊界值
-
reduction:計(jì)算模式
在這里插入圖片描述
-
17.nn.CosineEmbeddingLoss
- 功能:采用余弦相似度計(jì)算兩個(gè)輸入的相似性
- 主要參數(shù):
- margin:可取值[-1, 1],推薦為[0, 0.5]
-
reduction: 計(jì)算模式
在這里插入圖片描述
-
18.nn.CTCLoss
- 功能:計(jì)算CTC損失,解決時(shí)序類數(shù)據(jù)的分類
- 主要參數(shù):
- blank:blank label
- zero_infinity:無(wú)窮大的值或梯度置0
- reduction:計(jì)算模式










