技术文摘
十个常用损失函数与 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 中实现和应用它们,将有助于我们在机器学习和深度学习的实践中取得更好的效果。
- 网络新纪元
- Python Web 应用程序中 Django 框架概述
- 负载均衡后能随意加机器吗?
- Selenium 实现 Web 浏览器自动化
- 反向代理层无法替代 DNS 轮询
- 阿里 Java 程序员面试题,你能应对吗?
- MDwiki 助力 Markdown 转化为 HTML
- 谷歌 JavaScript 编写风格中值得我们注意的 13 点
- 人工智能时代员工 IT 工作价值的证明之道
- 摆脱 Vue、React、JQuery 等第三方 js ,如何编写代码?
- 编写首行 HTML 代码,助力蝙蝠侠写情书
- PHP 协程:Go、Chan 与 Defer
- 前端和编译原理:用 JS 打造 JS 解释器
- Python 实现微信提醒备忘录功能
- 生产与开发环境中 Kubernetes 的四大认识误区