我是靠谱客的博主 酷炫小白菜,最近开发中收集的这篇文章主要介绍损失函数浅析:分类模型和回归模型 (1),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我在分析手写体识别源代码时,发现损失函数可以用更简单的形式代替。从第一感觉上看,只要不犯愚蠢的错误,损失函数总会驱使模型朝着提升识别精度的方向前进,似乎没必要把损失函数搞得太复杂。但是,仔细思考一下,发现其中还是有些门道的。关键在于,模型的最优解最终落在什么位置,这个和损失函数定义绝对有关系。

我们分析一个最简单的例子:考虑一维空间的二分类问题,负样本 x 1 = − 1 x_1=-1 x1=1,正样本 x 2 = 1 x_2=1 x2=1。答案显而易见,最优分类方法是用一维空间的”超平面” x = 0 x = 0 x=0分割一维实数轴即可。参见下图:

在这里插入图片描述

令分类模型为 x = k x = k x=k, 如果我们定义 loss 函数为下面的形式:
l o s s ( w ) = ∣ k − x 1 ∣ + ∣ k − x 2 ∣ loss(w) = |k-x_1|+|k-x_2| loss(w)=kx1+kx2
这并不是一个很好的损失函数定义方法,后面我们会讨论分类问题的损失函数应该如何定义,这里仅仅是论述损失函数的定义方式对结果的影响。把绝对值符号去掉,不难得出
l o s s ( w ) = { 2 , − 1 ≤ w ≤ 1 ∣ 2 x ∣ , o t h e r s loss(w)= begin{cases} 2, & -1le wle1\ |2x|, & others end{cases} loss(w)={2,2x,1w1others
函数图像如下:
在这里插入图片描述

显然,当 − 1 ≤ w ≤ 1 -1le wle 1 1w1 时, loss 取得恒定的最小值,因此无法保证参数 w w w 收敛到最优解 w = 0 w=0 w=0

如果定义
l o s s ( w ) = ( w − x 1 ) 2 + ( w − x 2 ) 2 = ( w + 1 ) 2 + ( w − 1 ) 2 loss(w) = (w-x_1)^2+(w-x_2)^2=(w+1)^2+(w-1)^2 loss(w)=(wx1)2+(wx2)2=(w+1)2+(w1)2

l o s s ( w ) = 2 w 2 + 2 loss(w) = 2w^2+2 loss(w)=2w2+2
显然可以收敛到 w = 0 w=0 w=0 这个真正的最优解。

可见 loss 函数会影响最优解的优劣。如果 loss 函数按照分类错误数量来定义,
l o s s ( w ) = { 0 , − 1 ≤ w ≤ 1 1 , ( o t h e r s ) loss(w)= begin{cases} 0,&-1le w le 1 \ 1, &(others) end{cases} loss(w)={0,1,1w1(others)
仍然无法收敛到 w = 0 w=0 w=0 这个最优解上。接下来,我们讨论, 对于分类问题和回归问题,应该如何定义合理的 loss 函数。

最后

以上就是酷炫小白菜为你收集整理的损失函数浅析:分类模型和回归模型 (1)的全部内容,希望文章能够帮你解决损失函数浅析:分类模型和回归模型 (1)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部