技术文摘
十个常用损失函数与 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 中实现和应用它们,将有助于我们在机器学习和深度学习的实践中取得更好的效果。
- Service 层异常应抛至 Controller 层还是直接处理?
- 在 Linux 命令行中将环境变量传递给 Docker 容器
- SpringBoot 与 CQRS 的精妙融合:打造高效可扩展应用程序
- Java 异步编程理应更简单
- DiffUtil 及其差量算法
- 基于丰富业务实践的轻量高性能表单库
- Python 中 Subprocess 库的用法深度剖析
- Java 中 Enum 的 HashCode 在不同 JVM 中返回结果存差异?
- IntelliJ IDEA 内置 Git 插件助力轻松使用 Github
- Spring 利用三级缓存解决循环依赖的方法
- 输入 npm start 于终端后所产生的变化
- Web Deploy 配置与 Visual Studio 助力.NET Web 项目发布部署
- 12 月 TIOBE 编程语言:PHP 稳坐第七,持续向前
- Go 语言于微服务架构内的应用
- 高效工具 Hutool 魅力无限,开用!