机器学习和深度学习中常见损失函数,包括损失函数的数学公式、推导及其在不同场景中的应用
目录
- 引言
- 什么是损失函数?
- 常见损失函数介绍
- 3.1 均方误差(Mean Squared Error, MSE)
- 3.2 交叉熵损失(Cross-Entropy Loss)
- 3.3 平滑L1损失(Smooth L1 Loss)
- 3.4 Hinge Loss(合页损失)
- 3.5 二进制交叉熵损失(Binary Cross-Entropy Loss)
- 3.6 KL散度(KL Divergence)
- 3.7 Huber损失(Huber Loss)
- 3.8 对比损失(Contrastive Loss)
- 损失函数的选择
- 如何实现常见的损失函数(Python代码)
- 5.1 MSE的Python实现
- 5.2 交叉熵损失的Python实现
- 5.3 平滑L1损失的Python实现
- 5.4 Hinge Loss的Python实现
- 5.5 二进制交叉熵损失的Python实现
- 5.6 KL散度的Python实现
- 5.7 Huber损失的Python实现
- 5.8 对比损失的Python实现
1. 引言
在机器学习和深度学习的训练过程中,损失函数(Loss Function)是一个至关重要的部分。它衡量了模型的预测输出与真实值之间的差距,并指导模型的优化方向。不同的任务使用不同的损失函数,本文将详细介绍机器学习和深度学习中常见的损失函数,包括其数学表达、应用场景以及如何使用Python从零实现它们。
2. 什么是损失函数?
损失函数在模型训练中的角色是衡量模型的预测结果与真实标签之间的差异。损失函数的输出通常是一个非负数,越接近0表示模型预测越准确。根据任务的不同,损失函数可以分为回归任务中的损失函数和分类任务中的损失函数两大类。
3. 常见损失函数介绍
3.1 均方误差(Mean Squared Error, MSE)
-
数学公式:
L ( y ^ , y ) = 1 n ∑ i = 1 n ( y ^ i − y i ) 2 L(\hat{y}, y) = \frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)^2 L(y^,y)=n1i=1∑n(y^i−yi)2
-
应用场景:常用于回归任务中,比如预测房价、预测温度等连续值输出的场景。
3.2 交叉熵损失(Cross-Entropy Loss)
- 数学公式:
L ( y ^ , y ) = − ∑ i = 1 n y i log ( y ^ i ) L(\hat{y}, y) = -\sum_{i=1}^{n} y_i \log(\hat{y}_i) L(y^,y)=−i=1∑nyilog(y^i) - 应用场景:常用于多分类问题,如图像分类、文本分类等。
3.3 平滑L1损失(Smooth L1 Loss)
- 数学公式:
L ( x , y ) = { 0.5 ( x − y ) 2 if ∣ x − y ∣ < 1 ∣ x − y ∣ − 0.5 otherwise L(x, y) = \begin{cases} 0.5(x -