CivArchive
    ← All articles
    Published May 5, 2024by arcgua

    深度学习笔记6 损失函数

    82 views0 reactions0 comments on CivitAI0 collected
    tool guide

    损失函数的定义


    损失函数(Loss Function)是深度学习模型中的一种重要的评价指标,用于衡量模型的预测输出与真实标签之间的差异。换句话说,损失函数用来量化模型预测值与真实值之间的误差程度。

    形式上,给定一个预测模型 𝑓(𝑥;𝜃)f(x;θ),其中 𝑥x 是输入数据,𝜃θ 是模型的参数,损失函数 𝐿L 可以表示为:

    𝐿(𝑦,𝑓(𝑥;𝜃))L(y,f(x;θ))

    其中,𝑦y 是真实标签。损失函数通常是一个非负实数,当模型的预测值与真实值越接近时,损失函数的值越小,反之越大。

    损失函数的设计通常取决于任务的类型和模型的结构。例如,对于分类任务,常用的损失函数包括交叉熵损失函数、对数损失函数等;对于回归任务,常用的损失函数包括均方误差损失函数、绝对误差损失函数等。

    通过最小化损失函数,可以优化模型的参数,使得模型在训练集上的预测结果与真实标签之间的差异尽可能小,从而提高模型的性能。

    损失函数的作用 输出数据和输入数据的对比,和识别准确度而言,对于模型本身的调整能够参数的变化上有所细微的变化,整体梯度变化较为平滑,不是一种陡然出现的现象,能够从损失函数的你变化当中发现参数对于权重的影响。

    常用的损失函数类型:

    1. 均方误差(Mean Squared Error, MSE)

      MSE=1𝑁∑𝑖=1𝑁(𝑦𝑖−𝑦^𝑖)2MSE=N1​i=1∑N​(yi​−y^​i​)2

      其中,𝑁N 是样本数量,𝑦𝑖yi​ 是真实标签,𝑦^𝑖y^​i​ 是模型的预测值。MSE 适用于回归任务,它衡量了模型预测值与真实值之间的平均平方差。

    2. 交叉熵损失(Cross Entropy Loss): 对于二分类任务:

      CE=−1𝑁∑𝑖=1𝑁[𝑦𝑖log⁡(𝑦^𝑖)+(1−𝑦𝑖)log⁡(1−𝑦^𝑖)]CE=−N1​i=1∑N​[yi​log(y^​i​)+(1−yi​)log(1−y^​i​)]

      对于多分类任务:

      CE=−1𝑁∑𝑖=1𝑁∑𝑐=1𝐶𝑦𝑖,𝑐log⁡(𝑦^𝑖,𝑐)CE=−N1​i=1∑Nc=1∑Cyi,c​log(y^​i,c​)

      其中,𝐶C 是类别数量,𝑦𝑖,𝑐yi,c​ 是第 𝑖i 个样本属于类别 𝑐c 的真实标签,𝑦^𝑖,𝑐y^​i,c​ 是模型对第 𝑖i 个样本属于类别 𝑐c 的预测概率。交叉熵损失常用于分类任务,它衡量了模型输出的概率分布与真实标签之间的差异。

    3. 对数损失(Log Loss): 对数损失与交叉熵损失类似,通常用于二分类任务,计算公式如下:

      Log Loss=−1𝑁∑𝑖=1𝑁[𝑦𝑖log⁡(𝑦^𝑖)+(1−𝑦𝑖)log⁡(1−𝑦^𝑖)]Log Loss=−N1​i=1∑N​[yi​log(y^​i​)+(1−yi​)log(1−y^​i​)]

      其中,𝑦𝑖yi​ 是真实标签,𝑦^𝑖y^​i​ 是模型的预测概率值。对数损失也是衡量分类模型输出与真实标签之间的差异的一种常用损失函数。

    4. Hinge Loss: Hinge Loss 通常用于支持向量机(SVM)等模型,适用于二分类任务,计算公式如下:

      Hinge Loss=1𝑁∑𝑖=1𝑁max⁡(0,1−𝑦𝑖⋅𝑦^𝑖)Hinge Loss=N1​i=1∑N​max(0,1−yi​⋅y^​i​)

      其中,𝑦𝑖yi​ 是真实标签,𝑦^𝑖y^​i​ 是模型的预测值。Hinge Loss 衡量了模型预测值与真实标签之间的差异,并在预测值与真实标签之间有一定的间隔时损失为0,用于支持向量机等模型的训练。

    均方误差函数

    均方误差(Mean Squared Error, MSE)函数是一种常用的损失函数,用于衡量模型的预测值与真实值之间的差异。它计算的是预测值与真实值之间的平方差的均值。

    对于一个包含 𝑁N 个样本的数据集,均方误差的计算公式如下:

    MSE=1𝑁∑𝑖=1𝑁(𝑦𝑖−𝑦^𝑖)2MSE=N1​∑i=1N​(yi​−y^​i​)2

    其中,𝑦𝑖yi​ 是第 𝑖i 个样本的真实标签,𝑦^𝑖y^​i​ 是模型对第 𝑖i 个样本的预测值。

    均方误差的局限性:

    对异常值敏感:均方误差对异常值(outliers)非常敏感,因为它计算的是预测值与真实值之间的平方差的均值。如果数据集中存在异常值,它们可能会对均方误差的计算产生较大的影响,导致模型受到异常值的干扰而产生较差的性能。

    1. 不平衡数据:对于存在类别不平衡的数据集,均方误差可能会导致模型对少数类别的预测效果不佳。因为均方误差不考虑类别的权重,而只是简单地计算所有样本的平方误差的均值,这可能导致模型更倾向于预测出现频率较高的类别。

    2. 不适用于分类任务:均方误差通常用于回归任务中,而不适用于分类任务。在分类任务中,模型的输出通常是一个概率分布,而均方误差无法直接衡量概率分布之间的差异,因此不适合用作分类任务的损失函数。

    交叉熵误差

    交叉熵误差 交叉熵函数的数值仅有正确标签和其输出表示,不涉及其他标签及其数值。