损失函数(Loss Function),在机器学习和深度学习中,是用来衡量模型预测值与实际值之间差异的函数。它是一个非负值函数,损失函数的值越小,表示模型的预测结果与真实结果越接近,即模型的性能越好。在训练过程中,目标是通过调整模型参数来最小化损失函数的值。
损失函数的作用
损失函数是模型学习的“指导”,指示模型预测结果的好坏。通过不断优化模型参数以减少损失函数值,模型可以学习到从输入到输出的映射关系。
常见的损失函数
1. 均方误差(Mean Squared Error, MSE)
- 用于回归问题。
- 计算预测值与真实值差的平方的平均值。
- 公式:(MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2),其中 (y_i) 是真实值,(\hat{y}_i) 是预测值。
2. 交叉熵损失(Cross-Entropy Loss)
- 用于分类问题。
- 计算实际输出的分布和预测输出的分布之间的差异。
- 二分类交叉熵公式:(L = -\sum_{i=1}^{n} [y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)]),其中 (y_i) 是真实标签(0或1),(\hat{y}_i) 是预测为正类的概率。
- 多分类交叉熵公式:(L = -\sum_{i=1}^{n} \sum_{c=1}^{M} y_{i,c} \log(\hat{y}{i,c})),其中 (M) 是类别数目,(y{i,c}) 是如果样本 (i) 属于类 (c) 则为1,否则为0,(\hat{y}_{i,c}) 是样本 (i) 属于类 (c) 的预测概率。
3. 二元交叉熵(Binary Cross-Entropy, BCE)
- 特殊的交叉熵损失,用于二分类问题中。
4. 对数损失(Log Loss)
- 实际上就是二分类问题的交叉熵损失。
5. Huber损失
- 结合了MSE和MAE(平均绝对误差)的特点,对于小误差是平方误差,对于大误差是线性误差,因此对异常值更加鲁棒。
损失函数的选择
损失函数的选择取决于具体的机器学习任务(回归或分类)、数据的特性,以及是否需要对异常值特别敏感。选择合适的损失函数可以帮助模型更有效地学习,从而达到更好的性能。