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

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

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

  • 损失函数(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正则项的目标函数,此时的目标函数同时兼顾模型的精度以及模型的泛化能力。


目录
相关文章
|
4月前
|
机器学习/深度学习 算法 Python
【Python机器学习】神经网络中常用激活函数、损失函数、优化方法(图文解释 附源码)
【Python机器学习】神经网络中常用激活函数、损失函数、优化方法(图文解释 附源码)
46 0
|
7月前
|
机器学习/深度学习 算法 大数据
机器学习线性回归优化损失函数
机器学习线性回归优化损失函数
50 0
|
4月前
|
机器学习/深度学习 数据采集 算法
【Python机器学习】特征工程含义、方法、对应函数详解(图文解释)
【Python机器学习】特征工程含义、方法、对应函数详解(图文解释)
58 0
|
6月前
|
机器学习/深度学习 算法 搜索推荐
为什么说机器学习的本质其实就是一个函数?
为什么说机器学习的本质其实就是一个函数?
|
7月前
|
机器学习/深度学习 算法
机器学习SVM函数
机器学习SVM函数
45 0
|
机器学习/深度学习 计算机视觉
sklearn 中 learning_curve 函数 的详细使用方法 (机器学习)
sklearn 中 learning_curve 函数 的详细使用方法 (机器学习)
219 0
sklearn 中 learning_curve 函数 的详细使用方法 (机器学习)
|
11月前
|
机器学习/深度学习 数据采集 Python
【机器学习】Pandas函数总结
【机器学习】Pandas函数总结
86 0
|
11月前
|
机器学习/深度学习 数据采集 数据挖掘
【机器学习】Scipy模块函数
【机器学习】Scipy模块函数
170 0
|
机器学习/深度学习 存储 监控
机器学习测试笔记(17)——线性回归函数(下)
机器学习测试笔记(17)——线性回归函数(下)
110 0
|
机器学习/深度学习 存储 算法
机器学习测试笔记(17)——线性回归函数(上)
机器学习测试笔记(17)——线性回归函数(上)
78 0

热门文章

最新文章