技术文摘
十个常用损失函数与 Python 代码示例
2024-12-31 01:09:50 小编
十个常用损失函数与 Python 代码示例
在机器学习和深度学习中,损失函数用于衡量模型预测值与真实值之间的差异。选择合适的损失函数对于模型的性能和训练效果至关重要。以下是十个常用的损失函数及其 Python 代码示例。
- 均方误差(Mean Squared Error,MSE) MSE 常用于回归问题,计算预测值与真实值的平方差的平均值。
import numpy as np
def mse(y_true, y_pred):
return np.mean((y_true - y_pred) ** 2)
- 平均绝对误差(Mean Absolute Error,MAE) MAE 也是回归问题中常用的损失函数,计算预测值与真实值的绝对差的平均值。
def mae(y_true, y_pred):
return np.mean(np.abs(y_true - y_pred))
- 交叉熵损失(Cross Entropy Loss) 在分类问题中广泛使用,特别是二分类和多分类任务。
def cross_entropy_loss(y_true, y_pred):
return -np.sum(y_true * np.log(y_pred))
- 二元交叉熵损失(Binary Cross Entropy Loss) 适用于二分类问题。
import tensorflow as tf
def binary_cross_entropy_loss(y_true, y_pred):
return tf.keras.losses.BinaryCrossentropy()(y_true, y_pred)
- Hinge 损失 常用于支持向量机(SVM)。
def hinge_loss(y_true, y_pred):
return np.mean(np.maximum(1 - y_true * y_pred, 0))
- Kullback-Leibler 散度(Kullback-Leibler Divergence,KLD) 用于衡量两个概率分布的差异。
def kld_loss(y_true, y_pred):
return np.sum(y_true * np.log(y_true / y_pred))
- 对数损失(Log Loss) 常用于逻辑回归。
def log_loss(y_true, y_pred):
return -np.mean(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))
- 指数损失(Exponential Loss)
def exponential_loss(y_true, y_pred):
return np.mean(np.exp(-y_true * y_pred))
- 0-1 损失 简单直观,但不连续,难以优化。
def zero_one_loss(y_true, y_pred):
return np.mean((y_true!= y_pred).astype(int))
- 感知损失(Perceptual Loss) 常用于图像生成等任务。
不同的损失函数适用于不同的场景和问题,需要根据具体任务和数据特点进行选择。在实际应用中,还可以结合正则化等技术来提高模型的泛化能力和性能。
通过理解和掌握这些常用的损失函数,并能够在 Python 中实现和应用它们,将有助于我们在机器学习和深度学习的实践中取得更好的效果。
- HTML元素的最大尺寸
- HTML中Div布局与表格布局对比分析
- JavaScript 如何组合多个元素并将结果附加到 div 里
- CSS3 的 flex 布局技巧大揭秘,助你轻松打造现代化网页界面
- 怎样限制表单输入文本字段的允许字符数量
- 2020 年网页设计的 CSS 新属性与 API
- JavaScript中CFAbsoluteTime与日期对象的相互转换方法
- CSS3新特性汇总:用CSS3实现半透明效果的方法
- web使用iframe的原因
- Vue3 与 Django4 构建全栈应用项目开发详细解析
- 突破静态网页局限:借助 CSS3 动画打造超炫交互界面
- iframe存在哪些危险
- 借助 CSS 实现动画效果
- JavaScript 中 Promise 链的含义
- FabricJS 中如何设置椭圆的最小允许比例值