损失函数浅析:分类模型和回归模型 (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, & -1\le w\le1\\ |2x|, & others \end{cases} loss(w)={2,2x,1w1others
函数图像如下:
在这里插入图片描述

显然,当 − 1 ≤ w ≤ 1 -1\le w\le 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,&-1\le w \le 1 \\ 1, &(others) \end{cases} loss(w)={0,1,1w1(others)
仍然无法收敛到 w = 0 w=0 w=0 这个最优解上。接下来,我们讨论, 对于分类问题和回归问题,应该如何定义合理的 loss 函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值