机器学习(四):损失函数

来源:互联网 发布:console显示日志java 编辑:程序博客网 时间:2024/05/22 10:46

在上上一节逻辑回归中,是使用似然函数来作为模型的求解参数的目标。
但在很多情况下,似然函数很难直接写出,更常用的方法是损失函数,这个在上上一节的补充中也有提过。
那么损失函数表示什么概念呢?

和似然函数相反,损失函数是模型预测失败的度量。

注意最大化似然函数和最小化损失函数两者并不能完全等同,因为这涉及到所选取的参数。
对于机器学习模型来说,选择哪一种都符合模型求解的规则,关键在于选择哪一种标准(最大化似然函数or最小化损失函数)能够进行求解。

损失函数分为两个部分:损失向,正则项

损失项

损失项即代表模型误判的度量,这和与上面说的损失函数的意义是一致的。
在介绍各类损失之前,先简单说明样本的数据,并引入几个自定义参数。
从最简答的二分类开始,样本数据如下(xi,yi)xiyiyi{0,1}
模型的形式为:f(xi)
自定义参数如下:

m=f(xi)(yi12)

m>0表示预测正确,m<0表示预测错误。
如果你看过其他资料,就会发现,一般m定义为m=f(xi)yi,那是因为在这里yi{1,1}

0-1损失

和上上一节介绍的一样,0-1损失应该是衡量模型最直接(应该也是最准确)的指标了,即

直接拿模型预测的错误率来作为损失函数。

0-1损失的损失函数定义如下:

L01(m)={010m0>m

这是一个跃阶函数,或者成为0-1函数。
0-1函数
模型求解的目标即是:minL01(x)
0-1损失并不依赖于m的大小,而只与m的正负号有关,因此0-1损失是一个非凸的函数,在求解的过程中,存在很多的不足,通常在实际的使用中将0-1损失函数作为一个标准,选择0-1损失函数的代理函数作为损失函数。

log损失

既然是0-1损失的代理,那么log损失应该是0-1损失的近似,折中一点,至少损失函数的性状最好和0-1函数形似。
跃阶会导致函数不可微,一般我们还是习惯使用可微函数,毕竟nature never jump(除了量子力学)。
于是我们需要将m至于函数里面,而不是作为分段函数的分段依据。
ln(1+em)当m越大时,该值越小,表示损失越小;m越小时,该值越大,则表示损失越大。
于是log损失的损失项就出来了:

Llog(m)=ln(1+em)

log函数
逻辑回归就是使用的log损失作为模型求解参数的依据。

原创粉丝点击