【机器学习入门】常用损失函数以及简介

在正文开始之前,需要先来阐述几个需要区分的概念,损失函数、代价函数以及目标函数:

    • 损失函数(Loss Function)通常是针对单个训练样本而言,给定一个模型输出和一个真实 y,损失函数输出一个实值损失

    • 代价函数(Cost Function)通常是针对整个训练集的总损失 。

    • 目标函数(Objective Function)是一个更通用的术语,表示任意希望被优化的函数,常常用于机器学习以及非机器学习领域。

这样看上去三者之间可能有一些乱,但其实这三者之间可以用一句话来进行描述:

“损失函数是代价函数的一部分,代价函数是目标函数的一种“。

在这篇文章主要介绍损失函数:

损失函数是关于模型计算结果f(x)和样本实际结果y的非负实值函数,记作L(y,f(x)),用它来解释模型在每个样本实例上的误差。

损失函数的值越小,说明预测值与实际值越接近,即模型的拟合效果越好

常见的损失函数主要包括以下几种:

  • 0-1损失函数

  • 平方损失函数

  • 绝对值损失函数

  • 全局损失函数

  • 交叉熵损失函数

    • 0-1损失函数(0-1 Loss Function):

【机器学习入门】常用损失函数以及简介_第1张图片

0-1损失函数是一种最简单的损失函数,如果实际值y与f(x)的值不相等,则认为预测失败。反之,预测成功,损失为0。

可见,该损失函数不考虑预测值和真实值的误差程度,只要预测错误,即使预测误差再小,也算预测错误

也就是说这种损失函数并未对于预测的误差做出量化,是真正的”一棍子打死“,是一种较绝对的损失函数。

 感知机就是用的这种损失函数。但是由于相等这个条件太过严格,因此我们可以放宽条件,即满足

时认为相等。

即:

    • 绝对损失函数((L1损失函数)Absolute Loss Function):

绝对损失函数是将实际目标值y与预测值f(x)之间的差求绝对值,损失函数的结果为非负。L1损失对估计值和真实值之差取绝对值,对偏离真实值的输出不敏感

因此在观测中存在异常值时有利于保持模型稳定

    • 平方损失函数((L2损失函数)Square Loss Function):

平方损失函数计算的是实际目标值y与预测值f(x)之间的差的平方,L2损失函数通过平方计算放大了估计值和真实值的距离,因此对偏离观测值的输出给予很大的惩罚

平方损失函数将预测的错误放大并且给予很大的惩罚,有利于后续的工作。

此外,L2损失函数是平滑函数,在求解其优化问题时有利于误差梯度的计算。

    • 对数损失函数(Logistic Loss Function):

对数损失函数用到了极大似然估计的思想。

Logistic回归的损失函数就是对数损失函数,在Logistic回归的推导中,它假设样本服从伯努利分布,然后求得满足该分布的似然函数,接着用对数求极值。

Logistic回归并没有求对数似然函数的最大值,而是把极大化当做一个思想,进而推导它的风险函数为最小化的负的似然函数。从损失函数的角度上,它就成为了log损失函数

在极大似然估计中,通常都是先取对数再求导,再找极值点,这样做是方便计算极大似然估计。

p(y|x)是指在当前模型的基础上,对于输入变量x,其预测值为y,也就是预测正确的概率

”在公式中加负号,表示预测正确的概率越高,其损失值应该越小”
    • 交叉熵损失函数(Cross Entropy Loss Function):

首先,先来了解一下“熵(entropy)”的概念:

熵在信息论中被用来度量信息量,熵越大,所含的有用信息越多,其不确定性越大;而熵越小,有用信息越少,确定性越大。

熵:

交叉熵:

平均交叉熵:

下面来说说为什么交叉熵能够衡量准确率?

信息论的角度来看,交叉熵等价于训练出来的模型(分布)与真实模型(分布)之间的分布差异(两者相差一个只和样本数据量有关的倍数N)。

而这个交叉熵的大小,衡量了训练模型与真实模型之间的差距,交叉熵越小,两者越接近,因此说明该模型更为准确


损失函数除了上面几种之外,还有其他类型的损失函数,这里只简单叙述以上几种。

新手投稿,有错误还希望大家多多指正。

你可能感兴趣的:(机器学习入门,深度学习,人工智能)