机器学习--损失函数

损失函数概述

损失函数(Loss Function)是机器学习中用于衡量模型预测值与真实值之间差异的函数,是优化算法的核心目标。通过最小化损失函数,模型逐步调整参数以提高预测准确性。


常见损失函数分类

回归任务
  1. 均方误差(MSE)

    计算预测值与真实值平方差的平均值,对异常值敏感:

    L(y, \\hat{y}) = \\frac{1}{n}\\sum_{i=1}\^{n}(y_i - \\hat{y}_i)\^2

  2. 平均绝对误差(MAE)

    使用绝对差值,对异常值鲁棒性更强:

    L(y, \\hat{y}) = \\frac{1}{n}\\sum_{i=1}\^{n}\|y_i - \\hat{y}_i\|

  3. Huber损失

    结合MSE和MAE,在误差较小时使用平方项,较大时转为线性项:

    L(y, \\hat{y}) = \\begin{cases} \\frac{1}{2}(y_i - \\hat{y}_i)\^2 \& \\text{if } \|y_i - \\hat{y}_i\| \\leq \\delta \\ \\delta(\|y_i - \\hat{y}_i\| - \\frac{1}{2}\\delta) \& \\text{otherwise} \\end{cases}

分类任务
  1. 交叉熵损失(Cross-Entropy)

    用于二分类或多分类,衡量概率分布的差异:

    • 二分类:

      L(y, \\hat{y}) = -\\frac{1}{n}\\sum_{i=1}\^{n}\[y_i \\log(\\hat{y}_i) + (1-y_i)\\log(1-\\hat{y}_i)\]

    • 多分类(Softmax交叉熵):

      L(y, \\hat{y}) = -\\frac{1}{n}\\sum_{i=1}\^{n}\\sum_{c=1}\^{C}y_{i,c} \\log(\\hat{y}_{i,c})

  2. Hinge损失

    支持向量机(SVM)中使用的损失函数,最大化分类边界:

    L(y, \\hat{y}) = \\max(0, 1 - y_i \\cdot \\hat{y}_i)

  3. Focal Loss

    解决类别不平衡问题,通过调整难易样本的权重:

    L(y, \\hat{y}) = -\\alpha (1-\\hat{y}_i)\^\\gamma y_i \\log(\\hat{y}_i)


损失函数选择原则

  • 任务类型:回归任务常用MSE/MAE,分类任务常用交叉熵。
  • 数据特性:异常值较多时选择MAE或Huber损失;类别不平衡时使用Focal Loss。
  • 模型需求:SVM需配合Hinge损失,神经网络常用交叉熵。

自定义损失函数

通过组合现有函数或设计新公式满足特定需求。例如:

  • 加权MSE:为不同样本分配不同权重。
  • 正则化损失:加入L1/L2惩罚项防止过拟合。

代码示例(PyTorch自定义Huber损失):

python 复制代码
import torch

def huber_loss(y_pred, y_true, delta=1.0):
    error = y_true - y_pred
    mask = (error.abs() <= delta).float()
    return (mask * 0.5 * error.pow(2) + (1 - mask) * delta * (error.abs() - 0.5 * delta)).mean()
相关推荐
sell-cloud5 分钟前
Prompt Engineering要凉了?Fable 5.5能“猜“意图,但银行正在封杀AI Agent——企业AI的真正护城河是什么
人工智能·prompt
Navicat中国2 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI2 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区2 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris4 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy4 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V4 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai
AI_AGENT_DEV_AI4 小时前
AI英语教培智能体的开发
人工智能
物联网软硬件开发-轨物科技5 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
gCode Teacher 格码致知5 小时前
Pandas教学-17:Series与Dataframe的关系
开发语言·python·pandas