Back_To_Home..

Loss

在不同任务中的Loss函数

Loss函数即损失函数,用于衡量模型预测结果与真实标签之间的差异,是模型训练过程中的重要指标。

分类任务

回归任务

其他

损失函数

softmax损失

一、定义

Softmax是一种函数,主要用于多分类问题中,将一个含有任意实数的K维向量“压缩”(或归一化)到另一个K维实向量中,使得每一个元素的范围都在$(0,1)$之间,并且所有元素的和为1。这样输出的向量可以被解释为一个概率分布。

设输入向量为$z = [z_1,z_2,\cdots,z_K]$,经过softmax函数转换后的输出向量为$y = [y_1,y_2,\cdots,y_K]$,则softmax函数的计算公式为:

[y_i=\frac{e^{z_i}}{\sum_{j = 1}^{K}e^{z_j}}]

其中,$i = 1,2,\cdots,K$,$e$是自然常数,约等于2.71828。

二、作用原理及示例

  1. 原理
    • 以神经网络的输出层为例,假设神经网络的最后一层输出了一个向量$z$,这个向量的每个元素代表了对应类别(假设有$K$个类别)的得分。但是这些得分可能是任意实数,范围也没有限制。通过softmax函数,将这些得分转换为概率。这样就可以根据概率来判断输入数据属于哪一个类别,概率最高的类别就是模型预测的类别。
  2. 示例
    • 假设神经网络输出一个三维向量$z=[3,1, - 1]$。
    • 首先计算指数:$e^{z_1}=e^{3}\approx20.0855$,$e^{z_2}=e^{1}\approx2.7183$,$e^{z_3}=e^{- 1}\approx0.3679$。
    • 然后计算分母$\sum_{j = 1}^{3}e^{z_j}=e^{3}+e^{1}+e^{-1}\approx20.0855 + 2.7183+0.3679=23.1717$。
    • 最后计算softmax输出:$y_1=\frac{e^{z_1}}{\sum_{j = 1}^{3}e^{z_j}}=\frac{20.0855}{23.1717}\approx0.867$,$y_2=\frac{e^{z_2}}{\sum_{j = 1}^{3}e^{z_j}}=\frac{2.7183}{23.1717}\approx0.117$,$y_3=\frac{e^{z_3}}{\sum_{j = 1}^{3}e^{z_j}}=\frac{0.3679}{23.1717}\approx0.016$。
    • 可以看到,输出向量$y = [0.867,0.117,0.016]$,这些值在$(0,1)$之间,且它们的和为1,现在就可以将其看作是输入数据属于这三个类别(假设类别1、类别2、类别3)的概率。

三、在机器学习和深度学习中的应用场景

  1. 神经网络的输出层
    • 在图像分类任务中,如使用卷积神经网络(CNN)对MNIST手写数字数据集(包含0 - 9十个数字类别)进行分类。神经网络最后一层输出一个10维向量,经过softmax函数后,将这个向量转换为每个数字类别对应的概率,从而预测输入图像最可能是哪个数字。
  2. 自然语言处理中的文本分类
    • 例如在情感分析任务中,将文本分为正面、负面、中性三种情感类别。神经网络输出一个3维向量,通过softmax函数得到每种情感的概率,进而判断文本的情感倾向。
  3. 生成模型中的概率分布计算
    • 在生成对抗网络(GAN)和变分自编码器(VAE)等生成模型中,softmax函数也可以用于计算生成数据所属类别的概率分布,辅助模型生成更符合真实分布的数据。

基于欧几里德距离的损失 (Euclidean distance based loss)

对比损失(contrastive loss)

对比损失(Contrastive Loss)是一种在机器学习和深度学习中常用的损失函数,用于度量两个样本之间的相似度或差异度,以下是其详细介绍:

公式及参数

原理

应用

优势与局限性

三重损失(triplet loss)

三重损失(Triplet Loss)是一种在深度学习中广泛应用于度量学习的损失函数,旨在学习一种特征表示,使得相似样本的特征在特征空间中距离更近,不相似样本的特征距离更远。

公式及参数

原理

应用

优势与局限性

中心损失(center loss)

中心损失(Center Loss)是一种用于深度学习的损失函数,主要用于学习具有判别性的特征表示,其相关信息如下:

公式及参数

原理

应用

优势与局限性

基于角度/余弦边界的损失(Angular/cosine-margin-based loss)

基于角度/余弦边界的损失(Angular/Cosine-Margin-Based Loss)是一类用于深度学习的损失函数,通过引入角度或余弦边界的概念,使模型学习到更具判别性的特征表示,在人脸识别、图像分类等领域有广泛应用。以下是其详细介绍:

常见类型及公式

原理

应用

优势与局限性

L1和L2详解(范数、损失函数、正则化)

易混淆距离概念

欧式距离

X和Y都是一个n维的向量,$X = (x_1,x_2,x_3,…,x_n)$,$Y = (y_1,y_2,y_3,…,y_n)$,则欧式距离$D\left( X,Y \right) = \sqrt{\sum_{i = 1}^{n}\left( x_{i} - y_{i} \right)^{2}}$。

L2范数

X是n维的特征,$X = (x_1,x_2,x_3,…,x_n)$。L2范数为${\left |X\right |}{2} = \sqrt{\sum{i = 1}^{n}x_{i}^{2}}$

闵可夫斯基距离

这里的p值是一个变量,当p=2的时候就得到了欧氏距离。

\[D\left( X,Y \right) = \left( \sum_{i = 1}^{n}\left| x_{i} - y_{i} \right|^{p} \right)^{\frac{1}{p}}\]

曼哈顿距离

来源于美国纽约市的曼哈顿区是方方正正的城市。

\[D\left( X,Y \right) = \sum_{i = 1}^{n}\left| x_{i} - y_{i} \right|\]

损失函数

L1和L2都可以做损失函数使用。

L2损失函数

L2范数损失函数,也被称为最小平方误差(LSE)。它是把目标值yi与估计值f(xi) 的差值的平方和最小化。一般回归问题会使用此损失,离群点对次损失影响较大。

\[L = \sum_{i = 1}^{n}\left( y_{i} - f\left( x_{i} \right) \right)^{2}\]

L1损失函数

也被称为最小绝对值偏差(LAD),绝对值损失函数(LAE)。总的说来,它是把目标值 yi 与估计值f(xi) 的绝对差值的总和最小化。

\[L = \sum_{i = 1}^{n}\left| y_{i} - f\left( x_{i} \right) \right|\]

L1和L2对比

L1损失函数相比于L2损失函数的鲁棒性更好。L2范数将误差平方化(如果误差大于1,则误差会放大很多),模型的误差会比L1范数大的多,因此模型会对这种类型的样本更加敏感,这就需要调整模型来最小化误差。但是很大可能这种类型的样本是一个异常值,模型就需要调整以适应这种异常值,那么就导致训练模型的方向偏离目标了。

正则化

正则化为什么可以避免过拟合?

正则化是防止过拟合的一种重要技巧。正则化通过降低模型的复杂行,缓解过拟合。过拟合时,拟合函数考虑到了每一个样本点,最终形成的拟合函数波动非常大,即在某些很小的去区间里,函数值的变化很剧烈,拟合函数的系数(即模型中的w)往往非常大。

L1正则

L1正则通常用来进行特征选择,主要原因在于L1正则化会使得较多的参数为0,从而产生稀疏解,我们可以将0对应的特征遗弃,进而用来选择特征。一定程度上,L1也可以防止模型过拟合。

假设L(W)是未增加正则项的损失,λ是一个超参,控制正则化项的大小。

对应的损失函数:$L = L\left( W \right) + \lambda\sum_{i = 1}^{n}\left w_{i} \right $

L2正则

主要用来防止模型过拟合,直观上理解就是L2正则化是对于大数值的权重向量进行严厉惩罚。鼓励参数是较小值,如果 w 小于1,那么w2会更小。

对应的损失函数:$L = L\left( W \right) + \lambda\sum_{i = 1}^{n}w_{i}^{2}$

L1为什么会产生稀疏解?

稀疏性:很多参数值为0。

© 2025 ai-charlie   •  Powered by Soopr   •  Theme  Moonwalk