损失函数浅析:分类模型和回归模型 (1)

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

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

在这里插入图片描述

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

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

如果定义
loss(w)=(wx1)2+(wx2)2=(w+1)2+(w1)2 loss(w) = (w-x_1)^2+(w-x_2)^2=(w+1)^2+(w-1)^2

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

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

发布了167 篇原创文章 · 获赞 77 · 访问量 34万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览