机器学习的损失函数

机器学习三方面

机器学习问题,大致包含这是哪个方面:

  • 模型:建立什么样的模型
  • 目标:怎么定义最大化或最小化的目标函数
  • 算法:怎么求解最大或最小化目标函数的优化问题

举个例子:

  • 逻辑回归。模型是y=θ(wx)y=\theta(wx);通过最大似然(MLE)构造目标函数;通过SGD求解目标函数。
  • 线性回归。模型是y=wxy=wx;通过最小二乘构建目标函数;通过求解最小二乘得到优化问题的闭解。

机器学习的目的,就是在确定好模型(假设集)的前提下,构建目标函数构建优化问题,然后通过优化算法求解模型的最优参数,通常可以表达成如下式子:

θ=argminθ1N∑i=1NL(yi,f(xi,θ))+λϕ(θ)

\theta = \arg\min_{\theta} \frac{1}{N} \sum_{i=1}^N L(y_i, f(x_i, \theta)) + \lambda \phi(\theta)

式子左边表示经验风险函数,损失函数是其核心部分;式子右边是正则项。式子整体是结构风险函数,其由经验风险函数和正则项组成。

损失函数

交叉熵(逻辑回归)

逻辑回归的经验风险函数如下:

Ein=1N∑i=1Nlog(1+exp(−ynwTxn))

E_{in} = \frac{1}{N} \sum_{i=1}^N \log(1+\exp(-y_n w^T x_n))

其损失函数叫做交叉熵:

L(yn,xn,w)=log(1+exp(−ynwTxn)

L(y_n, x_n, w) = \log(1+\exp(-y_n w^T x_n)

其函数图像如下(横坐标轴代表ysys,即ywTxyw^Tx):

平方损失函数(最小二乘)

最小二乘的经验风险函数如下:

Ein=1N∑i=1N(yn−wTxn)2

E_{in} = \frac{1}{N} \sum_{i=1}^N (y_n-w^T x_n)^2

其损失函数为平方损失函数:

L(yn,xn,w)=(yn−wTxn)2

L(y_n, x_n, w) =(y_n-w^T x_n)^2

其函数图像如下(横坐标轴代表ysys,即ywTxyw^Tx):

Hinge损失函数(SVM)

软间隔的SVM有如下表示:

s.t.minb,w,ξ12wTw+C∑n=1Nξnyn(wTxn+b)≥1−ξn,ξn≥0

\begin{split} &\min _{b,w,\xi}\frac{1}{2} w^Tw + C\sum_{n=1}^N \xi_n \\ s.t. &y_n(w^Tx_n +b) \ge 1-\xi_n,\xi_n \ge 0 \end{split}

将约束条件放到最小化的式子中得到软间隔SVM的结构风险函数:

minb,w,ξ12wTw+C∑n=1Nmax(0,1−yn(wTxn+b))

\min _{b,w,\xi}\frac{1}{2} w^Tw + C\sum_{n=1}^N \max(0,1-y_n(w^Tx_n +b))

软间隔SVM的损失函数为Hinge损失函数:

L(yn,xn,w,b)=max(0,1−yn(wTxn+b))

L(y_n, x_n, w,b) = \max(0,1-y_n(w^Tx_n +b))

其图像为:

指数损失函数(AdaBoost)

在AdaBoost中,数据权重的更新方式为:

u(t+1)nu(t+1)nu(T+1)n∑n=1Nu(T+1)n=u(t)n◊−yngt(xn)=u(t)nexp(−ynαtgt(xn))=1Nexp(−yn∑t=1Tαtgt(xn))=1N∑n=1Nexp(−yn∑t=1Tαtgt(xn))

\begin{split} u_n^{(t+1)} &= u_n^{(t)} \Diamond^{-y_n g_t(x_n)} \\ u_n^{(t+1)} &= u_n^{(t)} \exp(-y_n \alpha_t g_t(x_n)) \\ u_n^{(T+1)} &= \frac{1}{N} \exp(-y_n \sum_{t=1}^T\alpha_t g_t(x_n)) \\ \sum_{n=1}^N u_n^{(T+1)} &= \frac{1}{N} \sum_{n=1}^N \exp(-y_n \sum_{t=1}^T\alpha_t g_t(x_n)) \end{split}

AdaBoost的训练的目标就是减少∑Nn=1u(T+1)n\sum_{n=1}^N u_n^{(T+1)} ,因此其风险函数为:

1N∑n=1Nexp(−yn∑t=1Tαtgt(xn))

\frac{1}{N} \sum_{n=1}^N \exp(-y_n \sum_{t=1}^T\alpha_t g_t(x_n))

其损失函数为:

L(yn,xn,α,g)=exp(−yn∑t=1Tαtgt(xn))

L(y_n, x_n, \alpha, g) =\exp(-y_n \sum_{t=1}^T\alpha_t g_t(x_n))

其损失函数的图像为:

对比与总结

  • 01 loss是最本质的分类损失函数,但是这个函数不易求导,在模型的训练不常用,通常用于模型的评价。
  • squared loss方便求导,缺点是当分类正确的时候随着ysys的增大损失函数也增大。
  • cross entropy方便求导,逼近01 loss。
  • Hinge Loss当ys≥1ys \ge 1,损失为0,对应分类正确的情况;当ys<1ys <1时,损失与ysys成正比,对应分类不正确的情况(软间隔中的松弛变量)。
  • exponential loss方便求导,逼近01 loss。
  • squared loss, cross entropy,exponential loss以及hinge loss的左侧都是凸函数,方便求导有利于优化问题的求解;同时这些loss函数都是01 error的上界,可以通过减少loss来实现01问题的求解,即求解分类问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

入门 | 一文概览深度学习中的激活函数

2708
来自专栏图像识别与深度学习

2018-04-21 语义分割Semantic segmentation

26410
来自专栏机器学习算法原理与实践

最小二乘法小结

    最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影,这里就对我对最小二乘法的认知做一个小结。

604
来自专栏数据科学与人工智能

机器学习调优实战

导语 机器学习算法性能很差怎么办?过拟合和欠拟合是什么?调优方法有哪些?如何高效运用trick? 大家知道最近 A.I 非常火,经常看到各种相关技术介绍,像什么...

2695
来自专栏开心的学习之路

神经网络体系搭建(三)——卷积神经网络

本篇是神经网络体系搭建的第三篇,解决体系搭建的卷积神经网络相关问题,详见神经网络体系搭建(序) 卷积神经网络(CNN) ? CNN是什么 卷积神经网络是一种空间...

3298
来自专栏叶茂的专栏

机器学习调优实战

最近我在学习吴恩达的 Machine Learning 课程中看到他讲的关于如何高效对机器学习效果进行调优的内容,感觉非常有用,想给大家分享下。

4.1K1
来自专栏管蓉的专栏

卷积神经网络的特点和应用

卷积神经网络是一种前馈神经网络,即表明没有环路,普通神经网络的 BP 算法只是用于方便计算梯度,也是前馈神经网络。本文给大家简要介绍卷积神经网络的特点和应用,希...

1.7K1
来自专栏李智的专栏

斯坦福CS231n - CNN for Visual Recognition(3)-lecture3(下)最优化

  上节我们已经介绍了图像分类的两个关键部分:评分函数与损失函数,接下来就是最优化的问题了,即如何寻找使得损失函数值最小的WW。 对于SVM 得分函数:...

581
来自专栏应兆康的专栏

机器学习概念:梯度下降

机器学习中大部分都是优化问题,大多数的优化问题都可以使用梯度下降/上升法处理,所以,搞清楚梯度算法就非常重要

5109
来自专栏机器之心

入门 | 机器学习中常用的损失函数你知多少?

机器通过损失函数进行学习。这是一种评估特定算法对给定数据建模程度的方法。如果预测值与实际结果偏离较远,损失函数会得到一个非常大的值。在一些优化函数的辅助下,损失...

702

扫码关注云+社区