那些回归问题的损失函数(三)

回归问题的损失函数,之前说过了最符合直觉的平方差和绝对值损失函数,也说了一下为了综合两者有点构建的huber损失函数和log-cosh损失函数。这些损失函数都有一个特点,就是他们对于预测值在两个方向上的偏差给出的惩罚是一样的。

这个可以这么理解哈,就比如说你订购了一批木地板,跟厂家约定了一个尺寸,比这个尺寸长1厘米就少付10%,比这个尺寸短1厘米也少付10%。那这个你每差一厘米,少付款项的机制就是损失函数,而这10%就是对应的惩罚。那么这样你”训练“的出来的供应商,最终给你的货肯定都是在你要求的这个尺寸附近的,所有木地板的平均值应该就是你要求的这个尺寸。

在这种损失函数的要求下,大了或是小了的偏差惩罚是一样的。但也有另外一种损失函数,他们对于两边的惩罚可以不一样。这种就是分位数损失函数。

他的思想也很朴素,就是对于不同方向上的预测偏差给出不同的惩罚程度。就比如说,你还是订购了一批木地板,但这次你和供应商谈的条件不一样了,如果比规定尺寸长了1厘米就少付1%,如果比这个尺寸短了1厘米就少付10%。也就是说对于供应商来说,做长一点惩罚小,但是做短了惩罚就大多了。那结果也会很显然,你“训练”出来的供应商提供的产品一定是比规定尺寸长的多,比规定尺寸小的少。那所有木地板长度的平均值就要比你要求的长。

那这么做有什么意义么?答案是想知道预测值可能的分布范围,也就是分位数。

之前的损失函数训练的模型,预测的其实是目标的均值。就好比,你打高尔夫球,这一杆球的落点可能近也可能远,在球真正落地之前你其实也不知道,这是个随机事件。我们之前用平方差损失函数预测的其实就是这个落点的平均值,我们把他当做预测值。

而分位数损失函数呢,预测的是目标的分位数。还是打高尔夫球,分位数损失函数预测的就是你这杆90%的情况下不会超过的距离,或者是90%的情况下一定会超过的距离。而这其实是你击球距离这个随机事件的分布,而不仅仅是均值了。

分位数损失之所以不同,就是因为这其实给了线性拟合一个不一样的角度,关注的不仅仅是平均值,更是这个数值分布的上下界。就好比很多时候,你关心的并不是所有人的平均工资是多少,你更关心的是90%的人都低于的工资线,这样你就找到了那批高收入人群。或者是那些只有10%的人无法达到的工资线,你也就找到了低保收入线。

比起前几种损失函数在同一纬度上的优化,分位数损失函数其实是多给了我们一个了解分布区间的工具。 

END

作者:锅哥不姓郭

   

那些回归问题的损失函数(三)》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/1364.html