2-2 动手学深度学习v2-损失函数-笔记

损失函数,用来衡量预测值和真实值之间的区别。是机器学习里面一个非常重要的概念。
三个常用的损失函数 L2 lossL1 lossHuber’s Robust loss

均方损失 L2 Loss

l ( y , y ′ ) = 1 2 ( y − y ′ ) 2 l(y,y^{\prime})=\frac{1}{2}(y-y^{\prime})^{2} l(y,y)=21(yy)2
(除以 2 2 2的时候, 2 2 2 1 2 \frac{1}{2} 21相互抵消。)请添加图片描述
2-2 动手学深度学习v2-损失函数-笔记_第1张图片
请添加图片描述
这里说的梯度,其实是经过了一次取绝对值


绝对值损失函数 L1 Loss

l ( y , y ′ ) = | y − y ′ | l(y,y^{\prime})=|y-y^{\prime}| l(y,y)=yy

2-2 动手学深度学习v2-损失函数-笔记_第2张图片
① 相对L2 loss,L1 loss的梯度就是远离原点时,梯度也不是特别大,权重的更新也不是特别大。会带来很多稳定性的好处。不管离原点多远(预测值和真实值相差多大),梯度它总是以同样的粒度后撤。

它的缺点是在零点处不可导,并在零点处左右有±1的变化这个不平滑性导致预测值与真实值靠的比较近的时候,优化到末期的时候,可能会不那么稳定


Huber’s Robust loss

l ( y , y ′ ) = { ∣ y − y ′ ∣ − 1 2 , i f   ∣ y − y ′ ∣ > 1 1 2 ( y − y ′ ) 2 ,    o t h e r w i s e l(y,y^{\prime})= \begin{cases} |y-y^{\prime}|-\frac{1} {2 } ,\quad if \ |y-y^{\prime}|>1\\ \frac{1}{2}(y-y^{\prime})^{2}, \quad \ \ otherwise \end{cases} l(y,y)={yy21,if yy>121(yy)2,  otherwise当真实值和预测值的差大于 1 1 1的时候,损失函数是一个绝对值误差;当真实值和预测值的差小于 1 1 1的时候,损失函数是一个均方误差。(绝对值误差减去二分之一,是为了把曲线连起来)
2-2 动手学深度学习v2-损失函数-笔记_第3张图片
+ 1 +1 +1 − 1 -1 1之间是一个二次函数,在之外是两条直线。
好处:

  • 当预测值和真实值差的比较远的时候,不管怎样,它都会以一个比较均匀的梯度往回撤
  • 在预测值和真实值差的比较小的时候,可以保证梯度下降优化是比较平滑的

你可能感兴趣的:(深度学习/机器学习入门,深度学习,笔记,人工智能)