定义
损失函数(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