常见的损失函数

1.0-1损失函数(0-1 loss function)

L(Y,f(X))={1,Yf(X)0,Y=f(X)
<script type="math/tex; mode=display" id="MathJax-Element-1"> L(Y,f(X))=\left\{ \begin{aligned}&1,\quad Y\ne f(X)\\& 0,\quad Y=f(X) \end{aligned} \right. </script>

  可以看出,该损失函数的意义就是,当预测错误时,损失函数值为1,预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度,也就是只要预测错误,预测错误差一点和差很多是一样的。


2.平方损失函数(quadratic loss function)

L(Y,f(X))=(Yf(X))2
<script type="math/tex; mode=display" id="MathJax-Element-2"> L(Y,f(X))=(Y-f(X))^2 </script>

  该损失函数的意义也很简单,就是取预测差距的平方。


3.绝对值损失函数(absolute loss function)

L(Y,f(X))=|Yf(X)|
<script type="math/tex; mode=display" id="MathJax-Element-3"> L(Y,f(X))=|Y-f(X)| </script>

  该损失函数的意义和上面差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大。


4.对数损失函数(logarithmic loss function)

L(Y,P(Y|X))=logP(Y|X)
<script type="math/tex; mode=display" id="MathJax-Element-4"> L(Y,P(Y|X))=-logP(Y|X) </script>

  这个损失函数就比较难理解了。事实上,该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。


全局损失函数

  上面的损失函数仅仅是对于一个样本来说的。而我们的优化目标函数应当是使全局损失函数最小。因此,全局损失函数往往是每个样本的损失函数之和,即:

J(w,b)=1mi=1mL(Y,f(X))
<script type="math/tex; mode=display" id="MathJax-Element-5"> J(w,b)=\frac{1}{m} \sum_{i=1}^m L(Y,f(X)) </script>
  对于平方损失函数,为了求导方便,我们可以在前面乘上一个1/2,和平方项求导后的2抵消,即:
J(w,b)=12mi=1m(Yf(X))2
<script type="math/tex; mode=display" id="MathJax-Element-6"> J(w,b)=\frac{1}{2m}\sum_{i=1}^m (Y-f(X))^2 </script>

逻辑回归中的损失函数

  在逻辑回归中,我们采用的是对数损失函数。由于逻辑回归是服从伯努利分布(0-1分布)的,并且逻辑回归返回的sigmoid值是处于(0,1)区间,不会取到0,1两个端点。因此我们能够将其损失函数写成以下形式:

L(ŷ ,y)=(ylogŷ +(1y)log(1ŷ ))
<script type="math/tex; mode=display" id="MathJax-Element-7"> L(\hat y,y)=-(y\log{\hat y}+(1-y)\log(1-\hat y)) </script>
  解释一下含义:
  • 当真实值y=1时,L(ŷ ,y)=logŷ <script type="math/tex" id="MathJax-Element-8">L(\hat y,y)=-\log\hat y</script>,当预测值ŷ <script type="math/tex" id="MathJax-Element-9">\hat y</script>越接近1,logŷ <script type="math/tex" id="MathJax-Element-10">log\hat y</script>也越接近最大值1,加上负号后就代表误差值最小。而当预测值ŷ <script type="math/tex" id="MathJax-Element-11">\hat y</script>越接近0,logŷ <script type="math/tex" id="MathJax-Element-12">log\hat y</script>越接近负无穷,加上负号后就代表误差值最大。
  • 当真实值y=0时,L(ŷ ,y)=log(1ŷ )<script type="math/tex" id="MathJax-Element-13">L(\hat y,y)=-\log(1-\hat y)</script>,当预测值ŷ <script type="math/tex" id="MathJax-Element-14">\hat y</script>越接近0,log(1ŷ )<script type="math/tex" id="MathJax-Element-15">log(1-\hat y)</script>也越接近最大值1,加上负号后就代表误差值最小。而当预测值ŷ <script type="math/tex" id="MathJax-Element-16">\hat y</script>越接近1,log(1ŷ )<script type="math/tex" id="MathJax-Element-17">log(1-\hat y)</script>越接近负无穷,加上负号后就代表误差值最大。

  最后逻辑回归中对于所有样本的损失函数为:

J(w,b)=1mi=1mL(ŷ (i),y(i))=1mi=1m[y(i)logŷ (i)+(1y(i))log(1ŷ (i))]
<script type="math/tex; mode=display" id="MathJax-Element-18"> J(w,b)=\frac{1}{m}\sum_{i=1}^mL(\hat y^{(i)},y^{(i)})=-\frac{1}{m}\sum_{i=1}^m[ y^{(i)}log\hat y^{(i)}+(1-y^{(i)})log(1-\hat y^{(i)}) ] </script>
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐