Pytorch損失函數

定義

損失函數(Loss Function)
Loss=f(a^,y)Loss=f( \hat{a} ,y)

代價函數(Cost Function)
Cost=1NiNf(yi^,yi)Cost=\frac{1}{N}\sum_{i}^{N}f(\hat{y_{i}},y_{i})

目標函數(Objective Function)
Obj=Cost+RegularizationObj=Cost+Regularization

在Pytorch中如何定義

損失函數要繼承於nn.Moudle
參數size_average和reduce已經棄用,現在統一使用reduction參數

幾種損失函數

1.CrossEntropyLoss
在這裏插入圖片描述
在這裏插入圖片描述
具體推導過程:
在這裏插入圖片描述
H(P,Q)=DKL(P,Q)+H(P)交叉熵:H(P,Q)=D_{KL}(P,Q)+H(P)
所以優化交叉熵是在優化相對熵

對於nn.CrossEntropyLoss來說,損失函數內部自帶softmax,所以不需要人爲額外在上一步執行softmax操作

2.nn.NLLLoss
在這裏插入圖片描述
僅僅實現負號的功能

3.nn.BCELoss
二分類
在這裏插入圖片描述
因爲是一個概率分佈,在數據輸入損失函數之前呢,需要經過一下Sigmoid來把輸出值變成0~1之間

4.nn.BCEWithLogitsLoss
在這裏插入圖片描述
對於第三個損失函數的補足,不需要再模型中加入Sigmoid函數
並且多了一個參數pos_weight

5.nn.L1Loss和nn.MSELoss
在這裏插入圖片描述
前面爲第一範數,後面的爲第二範數

7.SmoothL1Loss
在這裏插入圖片描述

在這裏插入圖片描述
8.PoissonNLLLoss
在這裏插入圖片描述
9.nn.KLDivLoss
在這裏插入圖片描述
10.nn.MarginRankingLoss
在這裏插入圖片描述
11.nn.MultiLabelMarginLoss
多標籤是指,一個樣本對應多個類別
在這裏插入圖片描述
12nn.SoftMarginLoss
在這裏插入圖片描述
13.nn.MutiLabelSoftMarginLoss
在這裏插入圖片描述

14.在這裏插入圖片描述

15 .nn.TripletMarginLoss
在這裏插入圖片描述
16.在這裏插入圖片描述
17.在這裏插入圖片描述
18.nn.CTCLoss
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章