常用的损失函数(Loss Functions)在深度学习中有很多种类,选择取决于问题类型和任务目标。以下是一些常见的损失函数及其在PyTorch中的使用:
-
均方误差损失(Mean Squared Error, MSE):
- 用于回归问题,衡量模型输出与真实值之间的均方误差。
- PyTorch命令:
torch.nn.MSELoss()
-
交叉熵损失(Cross Entropy Loss):
- 用于多分类问题,衡量模型输出的概率分布与真实标签之间的差异。
- 对于二分类问题,可以使用二元交叉熵损失;对于多分类问题,可以使用多元交叉熵损失。
- PyTorch命令:
torch.nn.CrossEntropyLoss()
-
二元交叉熵损失(Binary Cross Entropy Loss):
- 用于二分类问题,衡量模型输出的概率与真实标签之间的差异。
- PyTorch命令:
torch.nn.BCELoss()
-
KL散度损失(Kullback-Leibler Divergence Loss):
- 用于衡量两个概率分布之间的差异,常用于生成对抗网络(GAN)等。
- PyTorch命令:
torch.nn.KLDivLoss()
-
平均绝对误差损失(Mean Absolute Error, MAE):
- 衡量模型输出与真实值之间的平均绝对误差。
- PyTorch命令:
torch.nn.L1Loss()
-
Huber损失:
- 介于均方误差和平均绝对误差之间,对离群值不敏感。
- PyTorch命令:
torch.nn.SmoothL1Loss()
-
对比损失(Contrastive Loss):
- 用于学习相似性度量,例如在孪生网络中。
- PyTorch命令:自定义实现或使用损失库
torch.nn.functional
中的函数。
-
三元组损失(Triplet Margin Loss):
- 用于学习嵌入向量的相似性,例如在人脸识别中。
- PyTorch命令:自定义实现或使用损失库
torch.nn.functional
中的函数