torch的常用損失函數
nn.L1Loss
loss(xi,yi)=|xi−yi|
x,y需要有一樣的維度。
nn.MSELoss
均方損失函數
loss(xi,yi)=(xi−yi)2loss(xi,yi)=(xi−yi)2
nn.BCELoss
二分類用的交叉熵,用的時候需要在該層前面加上 Sigmoid
函數。交叉熵的定義參考 wikipedia 頁面。
因爲離散版的交叉熵定義是 ,其中 p,qp,q 都是向量,且都是概率分佈。如果是二分類的話,因爲只有正例和反例,且兩者的概率和爲 1,那麼只需要預測一個概率就好了,因此可以簡化成
nn.CrossEntropyLoss
多分類用的交叉熵損失函數,用這個 loss 前面不需要加 Softmax 層。
nn.KLDivLoss
KL 散度,又叫做相對熵,算的是兩個分佈之間的距離,越相似則越接近零。
注意這裏的 xixi 是 loglog 概率,剛開始還以爲 API 弄錯了。