今天系统聊聊深度学习里面的几大损失函数(Loss function).损失函数也叫目标函数,代价函数,误差函数等.损失函数就是用来衡量模型参数质量的函数.具体方式就是比较网络输出和真实输出的差异.当然,优化损失函数的过程就是使得损失函数取得极小值,最终目的是调整模型的最优参数.分类任务的损失函数:多分类交叉熵损失函数(CrossEntrpyLoss).底层默认调用了softmax()激活函数对输入的分数处理,输出的是对标签预测的概率,最终与真实值的比较计算出的损失值.如果是输入的多个样本点的情形,那么默认情况是返回的是这几个样本点的损失值的平均值.当然也可指定sum().二分类交叉熵损失函数BCELoss().与多分类不同,分类的结果只有两种,非此即彼,互为对立关系,正的标签为"1",反的标签为"0",底层选择sigmoid激活函数,输出的是为正例的条件概率,然后根据真实分类,计算损失函数.回归任务的损失函数:平均绝对误差(MAE)损失函数,也叫L1 Loss,L1 Loss的最大问题在于在零点附近,函数值不平滑,梯度消失,直接跳过极小值.平均平方(MSE)损失函数,也叫MSELoss,
MSE Loss的最大问题在于,当误差平方较大的时候,梯度容易爆炸,易受异常值的影响.smoothL1损失函数:它是huber损失函数在δ=1时的情形.摈弃了L1不平滑的部分,用到了MSE的下半段,解决了梯度爆炸和梯度消失的问题.系统介绍损失函数是方便在反向传播过程中对损失函数求梯度,进行参数更新,迭代出最优模型参数.