机器学习中的损失函数

着重介绍hige loss 和 softmax loss。

svm回顾

\(C_1,C_2\)是要区分的两个类别,通过分类函数执行时得到的值与阈值的大小关系来决定类别归属,例如:
\[g(x) = g(w^Tx+b)\]

我们取阈值为0,此时\(f(x)=sgn[g(x)]\)就是最终的判别函数。对于同一个问题,有多个分类函数,哪一个更好呢?于是引入了“分类间隔”的指标

函数间隔和几何间隔

给定样本\((x_i, y_i)\),函数间隔为:
\[\gamma_i=y_i*(w^Tx_i+b)\]
当\(y_i=1\)时,\(w^Tx_i+b\)应该是一个很大的正数,反之是一个大负数。因此函数间隔反映了模型的确定度。

考虑w和b,如果同时加倍w和b,函数间隔也会加倍,但这对于求解问题是无意义的。因此我们限制w和b,引入了归一化条件,毕竟我们求解的唯一的一对w和b。

几何距离:点A到垂足的单位方向向量BA为\(\frac{w}{||w||}\),假设\(A=x_i\),则\(B=x_i-\hat{\gamma}*\frac{w}{||w||}\),带入\(w^Tx+b=0\)得到:
\[\hat{\gamma} = \frac{w^Tx_i+b}{||w||}\]

\(\hat{\gamma}\)可以看出就是二维平面中,点到直线的距离,高维下便是点到平面的距离。考虑正反例:
\[\hat{\gamma} = y_i*\{\frac{w^Tx_i+b}{||w||}\}\]

当\(||w||=1\)时,几何间隔也正是我们想要的归一化函数间隔。归一化也解释了函数间隔的实际意义。

最优间隔分类器

我们的目标是找到一个超平面,使得里超平面较近的点能有更大的间距,也就是我们不必考虑所有的点,值关心离它最近的点能具有最大间距。

\[\max \gamma \s.t.\ y_i(w^Tx_i+b)>\gamma,i=1,...,m \||w||=1
\]
然而这个目标函数仍然不是凸函数,我们把问题转化一下,我们取\(\gamma=1\),此时离超平面最近点的距离即为\(\frac{1}{||w||}\),计算\(\frac{1}{||w||}\)的最大值相当于计算\(\frac{1}{2}||w||^2\)的最小值。(之所以采用这种形式,是为了方便后面的求解过程

最终的优化方程如下:

\[\min \frac{1}{2} ||w||^2 \s.t.\ y_i(w^Tx_i+b)\geq1, i=i,...,m
\]

只有线性约束,且是一个典型的二次规划问题。核函数、松弛变量等问题这里先不做涉及。

损失函数

模型的优化函数的通常形式如:

\[\theta^* = \arg \min_\theta \frac{1}{N}{}\sum_{i=1}^{N} L(y_i, f(x_i; \theta)) + \lambda\ \Phi(\theta)\]

前面是损失函数,后面是正则项。

常用的损失函数

  • 铰链损失(Hinge Loss):主要用于支持向量机 SVM中;
  • 交叉熵损失(Cross Entropy Loss/Softmax Loss):用于逻辑回归问题;
  • 平方损失(Square Loss):用于最小二乘问题;
  • 指数损失(Exponential Loss):主要用于Adaboost集成学习算法中;
  • 其他特定场景有奇效的loss

Hinge Loss

损失函数是一个折线,函数表达式为:

\[L(x_i)=\max(0, 1-f(m_i,w))\]

如果类别正确,损失为0,否则为\(1-f(m_i,w)\)。

在svm中,考虑松弛变量,优化函数为:
\[
\underset{w,\zeta}{argmin} \frac{1}{2}||w||^2+ C\sum_i \zeta_i \st.\quad \forall y_iw^Tx_i \geq 1- \zeta_i \\zeta_i \geq 0
\]

约束进行变形得:\(\zeta_i \geq 1-y_iw^Tx_i\)

优化损失函数进一步可写为:
\[
\begin{aligned}
J(w)&=\frac{1}{2}||w||^2 + C\sum_i max(0,1-y_iw^Tx_i) \&= \frac{1}{2}||w||^2 + C\sum_i max(0,1-m_i(w)) \&= \frac{1}{2}||w||^2 + C\sum_i L_{Hinge}(m_i)
\end{aligned}
\]

SVM的损失函数实质可看作是L2-norm和Hinge loss之和。

Softmax Loss

逻辑回归问题要求:\(P(Y|X)\)尽可能的大,即最小化负的似然函数。

\[L=-log(P(Y|X))\]

逻辑回归的表达式为:

\[
P(y=1|x;\theta) = h(x) \P(y=0|x;\theta) = 1-h(x)
\]

\[p(y|x;\theta)=h(x)^y(1-h(x))^{(1-y)}\]

得:

\[
L(\theta) = \prod_{i=1}^n{h(x)^y(1-h(x))^{(1-y)}}
\]

最大log似然函数为:

\[
\begin{split}
\ell(\theta)&=log(L(\theta)) \&= \sum_{i=1}^m{ylog(h(x)) + (1-y)log(1-h(x))}
\end{split}
\]

上式也是最小化交叉熵。

Squares Loss

损失函数:
\[L(Y, f(X)) =\sum_{i=1} ^n (Y-f(X))^2\]

Exponentially Loss

损失函数:

\[L(Y,f(X)) = \frac{1}{2} \sum_{i=1}^n \exp[-y_if(x_i)]\]

Adabooost 的目标式子就是指数损失,可以参考https://en.wikipedia.org/wiki/AdaBoost

假设数据集 \(\{(x_1, y_1), \ldots, (x_N, y_N)\}\),\(x_i\)相应的标签\(y_i \in \{-1, 1\}\), 已有的弱分类器组 \(\{k_1, \ldots, k_L\}\),它们的输出为 \(k_j(x_i) \in \{-1, 1\}\)。\(m-1\)次迭代后,得到boosted classifier:

\[C_{(m-1)}(x_i) = \alpha_1k_1(x_i) + \cdots + \alpha_{m-1}k_{m-1}(x_i)\]

第m次迭代后,我们添加了新的弱分类器:

\[C_{m}(x_i) = C_{(m-1)}(x_i) + \alpha_m k_m(x_i)\]

为了确定新的弱分类器及其权重,定义损失函数
\[E = \sum_{i=1}^N e^{-y_i C_m(x_i)}\]

设\(w_i^{(1)} = 1\) , \(w_i^{(m)} = e^{-y_i C_{m-1}(x_i)}\) for \(m > 1\), 则:
\[E = \sum_{i=1}^N w_i^{(m)}e^{-y_i\alpha_m k_m(x_i)}\]

我们把数据分为两部分: (\(y_i k_m(x_i) = 1\))\(k_m\) 分类器区分正确和 \(y_i k_m(x_i) = -1\) 分类错误:

\[E = \sum_{y_i = k_m(x_i)} w_i^{(m)}e^{-\alpha_m} + \sum_{y_i \neq k_m(x_i)} w_i^{(m)}e^{\alpha_m}\]

\[= \sum_{i=1}^N w_i^{(m)}e^{-\alpha_m} + \sum_{y_i \neq k_m(x_i)} w_i^{(m)}(e^{\alpha_m}-e^{-\alpha_m})\]

因为只有右侧项\(\sum_{y_i \neq k_m(x_i)} w_i^{(m)}\)依赖于\(k_m\),我们最小化\(E\) 等价于最小化\(w_i^{(m)} = e^{-y_i C_{m-1}(x_i)}\)的权重。

计算\(\alpha_m\),求导:
\[\frac{d E}{d \alpha_m} = \frac{d (\sum_{y_i = k_m(x_i)} w_i^{(m)}e^{-\alpha_m} + \sum_{y_i \neq k_m(x_i)} w_i^{(m)}e^{\alpha_m}) }{d \alpha_m}\]

\[\alpha_m = \frac{1}{2}\ln\left(\frac{\sum_{y_i = k_m(x_i)} w_i^{(m)}}{\sum_{y_i \neq k_m(x_i)} w_i^{(m)}}\right)\]

弱分类器的加权错误率为\(\epsilon_m = \sum_{y_i \neq k_m(x_i)} w_i^{(m)} / \sum_{i=1}^N w_i^{(m)}\)

所以:
\[\alpha_m = \frac{1}{2}\ln\left( \frac{1 - \epsilon_m}{\epsilon_m}\right)\]

原文地址:https://www.cnblogs.com/houkai/p/10160673.html

时间: 2024-08-23 16:31:49

机器学习中的损失函数的相关文章

(转)机器学习中的损失函数

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好.损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分.模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子: 其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的ΦΦ是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或

机器学习中的目标函数、损失函数、代价函数有什么区别?

作者:zzanswer链接:https://www.zhihu.com/question/52398145/answer/209358209来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 谢谢评论区 @阿萨姆 老师的建议,完善下答案: 首先给出结论:损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function). 举个例子解释一下:(图片来自Andrew Ng Machine

机器学习中常见的损失函数

损失函数是机器学习中常用于优化模型的目标函数,无论是在分类问题,还是回归问题,都是通过损失函数最小化来求得我们的学习模型的.损失函数分为经验风险损失函数和结构风险损失函数.经验风险损失函数是指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项.通常表示为: θ*是我们通过损失函数最小化要求得的参数,一般都是通过梯度下降法来求得 1.0-1损失函数 0-1损失函数的表达式如下,常见于感知机模型中,预测正确则损失为0,预测错误则损失为1: 2.绝对值损失函数 3.log对数损失

机器学习中目标函数、损失函数、代价函数之间的区别和联系

首先给出结论:损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function) 举个例子解释一下:(图片来自Andrew Ng Machine Learning公开课视频) 上面三个图的函数依次为 , , .我们是想用这三个函数分别来拟合Price,Price的真实值记为 .我们给定 ,这三个函数都会输出一个 ,这个输出的 与真实值 可能是相同的,也可能是不同的,为了表示我们拟合的好坏,我们就用一个函数来度量拟

机器学习中的数理统计与参数估计

概率统计与机器学习的关系 概率问题是已知整体的情况下判定样本(整体推个体) 统计问题是概率问题的逆向工程(个体推整体) 机器学习监督学习中,首先根据样本及样本标签训练出模型(个体推整体),再根据模型对样本标签进行预测(整体推个体). 统计估计的是分布,机器学习训练出来的是模型,模型可能包含了很多分布. 训练与预测过程的一个核心评价指标就是模型的误差. 误差本身就可以是概率的形式,与概率紧密相关. 对误差的不同定义方式就演化成了不同损失函数的定义方式. 机器学习是概率与统计的进阶版本.(不严谨的说

Caffe中的损失函数解析

Caffe中的损失函数解析 导言 在有监督的机器学习中,需要有标签数据,与此同时,也需要有对应的损失函数(Loss Function). 在Caffe中,目前已经实现了一些损失函数,包括最常见的L2损失函数,对比损失函数,信息增益损失函数等等.在这里做一个笔记,归纳总结Caffe中用到的不同的损失函数,以及分析它们各自适合的使用场景. 欧式距离损失函数(Euclidean Loss) 输入: 预测的值: y ^ ∈[?∞,+∞] , 其中,它们的形状为:N×C×H×W 标签的值: y∈[?∞,+

(转)机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译.不过还是可以看.另外一个是prml-pattern recogni

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是

机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在