定義
損失函數(Loss Function)
代價函數(Cost Function)
目標函數(Objective Function)
在Pytorch中如何定義
損失函數要繼承於nn.Moudle
參數size_average和reduce已經棄用,現在統一使用reduction參數
幾種損失函數
1.CrossEntropyLoss
具體推導過程:
所以優化交叉熵是在優化相對熵
對於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