无论对于哪种损失,我们都希望损失越小越好。损失,即为预测值与实际值之间的差距(个人感觉距离只是用来描述差距的一种数学方式)。我们当然希望我们的模型的预测值和真实值之间的差距越小越好。

关于损失函数的终极目标:让损失越小越好!

常见的损失函数

  • 经验风险
    L(θ)=φi=1ml(hθ(x(i)),y(i)) L(\theta)=\varphi \sum_{i=1}^{m}l(h_{\theta}(x^{(i)}),y^{(i)})

其中:φ\varphi为常数,一般为1m\frac{1}{m},即为样本容量的倒数

  • 结构风险

L(θ)=φi=1ml(hθ(x(i)),y(i))+λΩ(θ) L(\theta)=\varphi \sum_{i=1}^{m}l(h_{\theta}(x^{(i)}),y^{(i)})+\lambda\Omega(\theta)

其中:λΩ(θ)\lambda\Omega(\theta)为正则化项;约定$\lambda \geqslant0 \varphi为常数,一般为\frac{1}{m}$,即为样本容量的倒数;

0-1损失函数

  • 这应该是最直接,也是简单的损失函数了。如果预测值与实际值相同,那么他们之间就没有损失,反之,如果预测值与实际值不同,那么他们之间就存在损失。
  • 问题是,如何用数学语言描述没有损失和存在损失,最直接的方法就是,如果没有损失就用0代表,如果存在损失就用1代表。(这就有点像为何使用随机变量的意思,将描述性语言转化为数学表达式)

l(y,hθ(x))={1,hθ(x)y0,hθ(x)=y l(y,h_\theta(x))=\begin{cases}1 ,h_{\theta}(x) \neq y\\0, h_{\theta}(x) = y\end{cases}

绝对值损失函数

  • 基于上面的说明,如何描述预测值与实际值之间的差距。用绝对值描述也是一个很直观的感受。毕竟绝对值本身就带有描述距离的性质。
    l(hθ(x),y)=hθ(x)y l(h_\theta(x),y)=|h_{\theta}(x)-y|

说明:

  1. 无论是0-1损失函数还是绝对值损失函数,他们都有一个求解上的问题。在描述距离的层面上,他们的直观感受是最直接的,但是不利于求解。
  2. 主要原因是:通过最小化损失函数过程中,参数θ\theta是多维的,一般都是采用迭代的方法进行求解(以梯度下降为例),这就涉及到一个问题:求导或求偏导的问题。阶跃和绝对值在分界点出都是不可求导的。所有0-1损失函数和绝对值损失函数的局限性就比较大了,所以不是很常用,但是可以依据这种思想设计更优秀的损失函数。

平方损失函数

  • 放在二维及以上的空间中,怎么描述距离呢?最直接的就是欧氏距离。这是符合直观感受的,也是合理的。就好像绝对值损失函数升华了一样(虽然本质上他们不同,尤其求导时)。

  • 最小二乘法
    l(y,hθ(x))=hθ(x)y)2 l(y,h_\theta(x))=(h_{\theta}(x)-y)^2

  • 比如在线性回归模型中,就是使用了平方损失函数。

    • 理论背景:假设样本和噪声都符合高斯分布(中心极限定理),然后通过最大似然估计(MLE),推出最小二乘法。

对数损失函数

l(y,p(yx))=log(p(yx)) l(y,p(y|x))=-log(p(y|x))

  • 从这里开始,损失函数的设计就开始不想前面那样直观了。对数损失函数,是引入了概率的想法。它并不是直接指定距离的差距到底是多少,而是给出一个概率值(自然是p[0,1]p \in [0,1],实际上更多是p(0,1)p \in (0,1))。例如,对于某一个分类类别y=1y=1,如果在样本数据为xx下出现y=1y=1的概率即p(y=1x)p(y=1|x)越高,说明此时的设计的损失函数值应该越小。
  • 但是这回出现一个问题:p(y=1x)p(y=1|x)越高(分类正确的概率),意味着值就越大(从概率上说),但是损失函数的基本要求是分类越准确,损失应该越小才对,这就矛盾了。那怎么解决呢?
  • 解决方法:
    • 分类正确的概率应该和损失函数的要求(min)想法,所以最直接方法就是在概率前面加个负号,这样概率和损失函数之间就负相关了。但是这又会出现一个问题,概率出现负的,这应该是被允许的。那么怎么办呢?
    • 此时,牛皮的log(p)-log(p)就出现了!,它一举解决了两个问题。
      1. 概率和设计损失函数的要求之间保证负相关,即保证了分类越准确,损失函数的值越小。比如,分类越准确,此时pp就越从左侧接近于1,此时log(p)-log(p)就越小(>0)(极端情况下位0),损失函数值越小。如果分类错误,此时pp就越从右侧接近于1,此时log(p)-log(p)就越大(>0)(理论上是++\infty),损失函数值越大。
      2. 同时解决了计算机计算过程中出现的下溢出问题。如果一个概率下的极大似然估计作为构建损失函数的的话,那么由于概率均在(0,1)(0,1)之间,且各样本值的概率输出会以累乘的形式出现(独立同分布,极大似然估计),那么就会使这个累乘的值变得非常非常的小(0.011000.01^{100}),这就超出了计算机的表示范围。对数函数会将属于(0,1)(0,1)中的值放大,但是结论还是保持不变。

Hinge损失函数

  • Hinge损失,又称合页损失,铰链损失。(就是英语的翻译)。因为其函数图像想合页。

l(y,hθ(x))=max(0,w(y)) l(y,h_{\theta}(x))=\max(0, w(y))

  • 如果hθ(x)h_{\theta}(x)yy一致,则损失函数值为0,不一会损失函数值为w(y)w(y)

  • 例如,SVM中的损失函数为Hinge损失函数:
    lhinge(z)=max(0,1z) l_{hinge}(z)=\max(0,1-z)

    argminwCi=1mmax(0,1y(i)(wTx(i))+λw2 arg\min_{w} C \sum_{i=1}^{m}max(0,1-y^{(i)}(w^{T}x^{(i)})+\lambda\left \| w \right \|^2

    变形为:
    argminw,ξCi=1mξi+λw2 arg \min_{w,\xi}C\sum_{i=1}^{m}\xi_i + \lambda\left \| w \right \|^2
    其中:
    KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲& \begin{array}…

参考:

统计学习方法

https://blog.csdn.net/lz_peter/article/details/79614556(0-1,感知机,合页损失)

常见的损失函数-不完整,待补充

指数损失函数

l(y,hθ(x))=eyhθ(x) l(y,h_{\theta}(x))=e^{-y*h_{\theta}(x)}

AdaBoost中的损失函数为:
l(HD)=ExD[ef(x)H(x)] l(H|D)=\mathbb{E}_{x\sim D}[e^{-f(x)H(x)}]
说实话,这个没看懂!另外的问题是:指数族是什么?

损失函数背后的理论依据

  • 这里面牵扯到的东西会比较多,理论支撑一般都很难,待补充!

相关文章: