【机器学习】损失函数、代价函数、目标函数之间有什么区别

简介: 【机器学习】损失函数、代价函数、目标函数之间有什么区别

首先说明一下它们三个的定义:

  • 损失函数(Loss Function ):就是单个样本的误差,预测值和真实值之间的差距,但是衡量差距的方式有很多种,但是大多数情况下采用距离或者做差
  • 代价函数(Cost Function ):它是整个训练集的损失,可以理解为所有样本数据的平均损失,但有时也可以不做平均,就是考虑总体损失
  • 目标函数(Object Function):它是最终我们需要优化的函数,它代表着我们模型的各方面能力,抗干扰性、精度方面等

一般情况来说我们的目标函数为:

目 标 函 数 = 损 失 函 数 / 代 价 函 数 + 结 构 风 险 ( 正 则 项 ) 目标函数=损失函数/代价函数+结构风险(正则项)=/+

前面的损失函数有时也成为经验风险,它你就可以理解为这个函数的值可以评估模型的精度或者误差之类的,它的值越小,说明我们模型此时的精度越好(针对于训练集),我们有时可以直接采用损失函数作为最终的目标函数进行优化,也就是我们只关心精度或者误差,我们可以优化该函数进行优化达到使训练集的误差最小,但是有时我们希望提高模型的泛化能力,减少过拟合,那么此时如果仍使用损失函数作为目标函数就不太合适了,就应该在损失函数的后面添加正则项,这个作为我们最终的目标函数,我们此时的目标就是同时重视模型的精度误差和模型的泛化能力。

总的来说,我们的目标函数就是可以衡量模型的多方面能力,而损失函数只可以衡量精度或者损失方面,看你的目标是什么,如果你的目标就是精度,此时完全可以把损失函数作为目标函数进行优化,如果要注重其它方面,此时损失函数只是目标函数的一部分。

其实有些时候把损失函数和代价函数混用,大多数情况都叫损失函数,不是特别严格。

我们用个线性回归的例子解释一下:

线性回归(以二维数据说明)是要找到一组参数构建一条直线去拟合图中所有点,此时我们的损失函数就为:

L = ( y i − w T x i ) 2 L=(y_i-w^Tx_i)^2L=(yiwTxi)2

代价函数就为:

J = 1 m ∑ i = 1 m ( y i − w T x i ) 2 J=\frac{1}{m}\sum_{i=1}^m(y_i-w^Tx_i)^2J=m1i=1m(yiwTxi)2

这也就是MSE:均方误差

但有的时候区分不是太严格,有的地方也把总体损失写成:

L ( w ) = 1 m ∑ i = 1 m ( y i − w T x i ) 2 L(w)=\frac{1}{m}\sum_{i=1}^m(y_i-w^Tx_i)^2L(w)=m1i=1m(yiwTxi)2

此时如果我们意图将训练数据最大程度拟合,那么我们只需要找到一组参数值使我们的代价函数最小即可,此时就可以把代价函数作为目标函数然后使用一些迭代求解算法求极值。

此时虽然可以使训练集拟合的非常好,但是它的泛化能力非常低,容易产生过拟合,所以此时我们的目标就不仅仅重视误差,还要重视模型的泛化能力,所以此时目标函数就应该包括结构风险:

1 m ∑ i = 1 m ( y i − w T x i ) 2 + λ ∣ ∣ w ∣ ∣ 2 2 \frac{1}{m}\sum_{i=1}^m(y_i-w^Tx_i)^2+\lambda||w||_2^2m1i=1m(yiwTxi)2+λw22

这就是加上了L2正则项的目标函数,此时的目标函数同时兼顾模型的精度以及模型的泛化能力。


目录
相关文章
|
6月前
|
机器学习/深度学习 自动驾驶 机器人
【机器学习知识点】3. 目标检测任务中如何在图片上的目标位置绘制边界框
【机器学习知识点】3. 目标检测任务中如何在图片上的目标位置绘制边界框
|
2月前
|
机器学习/深度学习 算法 知识图谱
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
|
2月前
|
机器学习/深度学习 自然语言处理 算法
机器学习和深度学习之间的区别
机器学习和深度学习在实际应用中各有优势和局限性。机器学习适用于一些数据量较小、问题相对简单、对模型解释性要求较高的场景;而深度学习则在处理大规模、复杂的数据和任务时表现出色,但需要更多的计算资源和数据,并且模型的解释性较差。在实际应用中,需要根据具体的问题和需求,结合两者的优势,选择合适的方法来解决问题。
70 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
浅谈机器学习与深度学习的区别
浅谈机器学习与深度学习的区别
56 0
|
2月前
|
机器学习/深度学习 算法 PyTorch
【机器学习】揭开激活函数的神秘面纱
【机器学习】揭开激活函数的神秘面纱
|
2月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
4月前
|
机器学习/深度学习
【机器学习】如何判断函数凸或非凸?(面试回答)
文章介绍了如何判断函数是凸函数还是非凸函数,包括凸函数的定义、几何意义、判定方法(一元函数通过二阶导数判断,多元函数通过Hessian矩阵的正定性判断),以及凸优化的概念和一些经典的凸优化问题。
202 1
【机器学习】如何判断函数凸或非凸?(面试回答)
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
116 1
|
4月前
|
机器学习/深度学习 人工智能 算法
"揭秘机器学习背后的魔法:函数的力量如何塑造智能预测的奇迹之旅"
【8月更文挑战第16天】机器学习是人工智能的关键分支,通过算法和统计模型使计算机能从数据中学习并预测。本文介绍核心函数的应用及实现:线性回归预测连续值;逻辑回归处理二分类问题;决策树依据简单规则分类或预测;支持向量机寻找最优边界分类。使用Python的`scikit-learn`库实现这些函数,帮助理解机器学习算法的工作原理及其应用场景。
75 1
|
4月前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
96 4