机器学习--损失函数

损失函数概述

损失函数(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()
相关推荐
武子康2 分钟前
H3-World 为何在加载 LoRA 前,先检查导入的代码?
人工智能·深度学习·算法
装不满的克莱因瓶22 分钟前
【SpringAI Alibaba】ReactAgent结构化输出OutputType与OutputSchema实战
java·人工智能·ai·springai·springaialibaba
楚山之石31 分钟前
【Radiology】影像组学的标准化与可重复性:IBSI 卷积滤波器共识及其未能覆盖的环节
人工智能·学习·机器学习·mri
东姬AI38 分钟前
挖出948个内核漏洞、自动写补丁:GPT-6 Cyber把AI推进“实战岗“,内容行业还卡在哪一关?
人工智能·网络安全·openai·gpt-6
用户29914221968044 分钟前
GitHub 热榜项目:日榜(2026-11-10)
人工智能·开源·github
用户2991422196801 小时前
AI 日报(2026年11月10日)
人工智能
QXWZ_IA1 小时前
定位数据怎么推给 IoT 平台?消息协议选型与接入准备
网络·人工智能·物联网·安全
java_logo1 小时前
Docker 部署 ReMe:轻松搭建 AI Agent 记忆管理平台
人工智能·docker·容器·ai agent·轩辕镜像·reme·agentscope-ai
合尘猫1 小时前
图片表格变结构化数据:OCR 后的三个坑
python·ocr
小小张说故事1 小时前
Python 里弱引用到底弱在哪:拆开 weakref.ref、回调陷阱和 WeakValueDictionary
python