首页 百问百答 帖子详情
损失函数在神经网络中的作用
收藏
快速回复
百问百答 问答学习资料 827 0
损失函数在神经网络中的作用
收藏
快速回复
百问百答 问答学习资料 827 0

损失函数是衡量我们的网络模型的输出与真实标签之间的差距的。损失函数设计的好坏直接关系到模型最终能收敛到的程度。深度学习的训练过程是输入-->神经网络输出-->输出与标签做损失计算-->梯度回传更新模型参数。

举个例子,当我们想让神经网络来回归出一条直线来拟合一串数据点的时候,一般情况下,使用L2损失函数会好于L1损失函数,一个是欧氏距离(即平方),一个是做差取绝对值。如下图所示,使用L1损失,1直线和2直线的损失值是相等的,网络可能会选择1直线来进行拟合。但是当我们使用L2损失时,网络就会学出如右边的绿线,很明显,绿线更加符合点分布的趋势。

对于不同的任务,我们常常需要设计各种不同的损失函数来使梯度更容易反向传播。虽然L1损失和L2损失取0的时候,表现是一样的,即输出==标签值,但是在普遍的深度学习任务中,这是不可能做到的,所以不同损失函数的差距也就体现了出来。如L2损失在偏差大时损失值更大,它倾向于将较大的误差减小。L1损失对于大误差和小误差的导数值是一样的,所以会对大误差和小误差进行同等程度地修正。

以下列出一些常见的损失函数:

交叉熵损失函数,常用于分类任务中
L1和L2损失函数,常用于回归任务中
Dice Loss,常用于图像分割任务中
AP Loss,常用于目标检测任务中

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户