损失函数是机器学习中用来衡量模型预测值 F(x) 和真实值 Y 之间的不一致程度的,通常越小越好。损失函数通常由经验风险和正则化项组成:
第一项是经验风险,后面是正则化项,正则化项通常有L1正则化和L2正则化,这里不考虑正则化项,只考虑经验风险项,损失函数通常由以下几种:
平方损失函数
平方损失函数常用在最小二乘法中。它的思想是使得各个训练点到最优拟合线的距离最小(平方和最小)。平方损失函数定义如下:
L(θ)=1N∑iN(yi−f(xi;θ))2
对数损失函数
对于逻辑回归
hθ(x)=g(θTx)=11+e−θTx
逻辑回归,标签 y=0 或 y=1 ,那么代价函数
cost(hθ(x),y)={log(hθ(x))−log(1−hθ(x))ify=1ify=0
综合起来,可以得到
L(hθ(x),y)=1N∑i=1N[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))
这只是二分类的情况,如果是多分类,则用到Softmax,,假设有k类,对应每个类别的概率分别为:
hθ(x)=1∑kj=1e−θTix⎡⎣⎢⎢⎢⎢⎢⎢e−θT1xe−θT2x⋮e−θTkx⎤⎦⎥⎥⎥⎥⎥⎥
那么损失函数为
L(hθ(x),y)=1N∑i=1N[∑j=1k1{y(j)=j}log(y(j)=j|x;θ)]
Hinge损失函数
SVM分类器中,常常使用hinge loss函数,用来最大化“分类间隔”。加上正确类别为
y
,分类间隔最小为
Loss(y)=max(0,m+maxt≠y(WtX−WyX))
其中 WyX 为正确类别的得分,即正确类别的得分,最少要比错误类别大 m <script type="math/tex" id="MathJax-Element-16">m</script>,否则Loss就不为零。