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 弄错了。