一文完全搞懂损失函数,期望风险,经验风险,结构风险

本文深入探讨了机器学习中的关键概念:损失函数、经验风险和结构风险。损失函数衡量预测值与真实值的差距,如0-1损失、对数损失、指数损失、Hinge损失和交叉熵损失。经验风险是模型对训练数据的平均损失,而结构风险在经验风险基础上加入了模型复杂度的正则化项,以防止过拟合。理解这些概念有助于优化模型并提高预测准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入

机器学习中,选定预测模型后,我们就可以对训练数据中的每一个输入样本进行预测。而预测结果对比真实标签可能正确,也可能错误,这里我们就需要一定的准则来评估机器学习模型的好坏,这里就引入损失函数这个概念,它负责在预测结果正确时不予惩罚,预测结果错误时给予惩罚。同时为了方便依照损失函数来调整模型参数,通常希望损失函数是个取值非负的连续可导的函数,最好是凸函数,比如二次函数或者交叉熵函数等,这样比较容易优化。

损失函数往往有更好的数学性质,比如:

  • 连续
  • 可导
  • 凸性

另外当数据、模型以及损失函数都准备好后,我们就可以在整个训练数据集上计算预测模型对应的总体损失,也就是在这里引入的第二个概念:经验风险。计算得到这个总体损失后会使用合适的优化方法(例如梯度下降法、牛顿法等)来最小化这个损失,从而获得具有某种最优的模型参数。但是,如果我们使用的损失函数很复杂的话,如果是个凸函数的话则可以很容易找到全局最优,但多数情况下得到的往往只是局部最优,而不是真正意义上的“最优”。这里就需要我们对经验风险进行一定的矫正。在经验风险函数后面加一个正则化项(惩罚项),这里就引人了结构风险第三个概念。

损失函数

损失函数的定义

监督学习问题是在假设空间 F \mathcal{F} F中选取模型 f f f作为决策函数,对于给定的输入 X X X,由 f ( X ) f(X) f(X)给出相应的输出 Y Y Y,预测值 f ( X ) f(X) f(X)与真实值 Y Y Y通常情况下是不一致的,会有所差距,而损失函数(loss function)或代价函数(cost function)就是用来衡量该差距的大小。记做 L ( Y , f ( X ) ) L(Y, f(X)) L(Y,f(X)),它是 f ( X ) f(X) f(X) Y Y Y和非负实值函数。简单来说,损失函数是表示针对单个具体样本的模型预测值与真实样本值之间的差距。损失函数越小,模型就越好。

在实际应用中,选取损失函数会受到诸多因素的制约,比如:

  • 数据是否存在异常值
  • 使用了具体哪种机器学习算法
  • 梯度下降的时间复杂度
  • 求导的难易程度
  • ……

因此,不存在某一种损失函数适用于处理所有的问题。并且分类问题和回归问题的损失函数也是不同的,常见损失函数分类如下所示:

常用的损失函数

分类模型的损失函数

分类模型常用的损失函数有以下几种:
(1)0-1损失函数(0-1 loss function)0-1损失是指,预测值和目标值不相等为1,否则为0:
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y, f(X))=\left\{\begin{array}{ll}1, & Y \neq f(X) \\ 0, & Y=f(X)\end{array}\right. L(Y,f(X))={ 1,0,Y=f(X)Y=f(X)感知机就是用的这种损失函数。但是由于完全相等的条件过于严格,可以适当放宽条件: L ( Y , f ( X ) ) = { 1 , ∣ Y − f ( X ) ∣ ≥ T 0 , ∣ Y = f ( X ) ∣ < T L(Y, f(X))=\left\{\begin{array}{l}1,|Y-f(X)| \geq T \\ 0,|Y=f(X)|<T\end{array}\right. L(Y,f(X))={ 1,Yf(X)T0,Y=f(X)<T

特别是在二分类问题中,0-1误差是最终的评价准则,但是因为它不是一个连续的凸函数,直接拿来指导模型优化往往不是一个好的选择。为了解决这个问题,我们往往使用别的更具数学性质的损失函数作为0-1误差的一个凸近似或者凸上界,然后通过最小化损失函数,来间接的达到最小化0-1误差的目的,下边介绍几种更具数学性质的典型损失函数。
(2)对数损失函数(logarithmic loss function),也叫对数似然损失函数(log-likelihood loss function) 逻辑回归的损失函数就是对数损失函数,逻辑回归假设样本服从伯努利分布(0-1)分布,然后求得满足该分布的似然函数,接下来用对数求极值。逻辑回归并没有求对数似然函数的极大值,而是把极大化当做一个思想,进而推导它的风险函数为:最小化负的似然函数(即max F(y, f(x)) —> min -F(y, f(x)))。从损失函数的角度上,它就成为了对数损失函数。损失函数的标准形式: L ( Y , P ( Y ∣ X ) ) = − log ⁡ P ( Y ∣ X ) L(Y, P(Y \mid X))=-\log P(Y \mid X) L(Y,P(YX))=logP(YX)

(3)指数损失函数(Exponential Loss),损失函数的标准形式是: L ( Y , f ( X ) ) = exp ⁡ [ − Y f ( X ) ] L(Y, f(X))=\exp [-Y f(X)] L(Y,f(X))=exp[Yf(X)] 主要应用于 Boosting 算法中,AdaBoost就是以指数损失函数为损失函数的,在Adaboost 算法中,经过 m 次迭代后,可以得到 f m ( x ) f_{m}(x) fm(x) f m ( x ) = f m − 1 ( x ) + α m G m ( x ) f_{m}(x)=f_{m-1}(x)+\alpha_{m} G_{m}(x) fm(x)=fm1(x)+αmGm(x) Adaboost 每次迭代时的目的都是找到最小化下列式子的参数α 和G: argmin ⁡ α , G = ∑ i = 1 N exp ⁡ [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] \operatorname{argmin}_{\alpha, G}=\sum_{i=1}^{N} \exp \left[-y_{i}\left(f_{m-1}\left(x_{i}\right)+\alpha G\left(x_{i}\right)\right)\right] argminα,G=i=1Nexp[yi(fm1(xi)+αG(xi))] 可以看出,Adabooost 的目标式子就是指数损失,在给定n个样本的情况下,Adaboost 的损失函数为: L ( Y , f ( X ) ) = 1 2 ∑ i = 1 n exp ⁡ [ − y i f ( x i ) ] L(Y, f(X))=\frac{1}{2} \sum_{i=1}^{n} \exp \left[-y_{i} f\left(x_{i}\right)\right] L(Y,f(X))=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

data大柳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值