Pytorch中分类回归常用的损失和优化器

Pytorch中分类回归常用的损失和优化器

在机器学习和深度学习中,分类任务和预测任务(回归任务)有不同的常用损失函数和优化器。下面将详细介绍这些常用的损失函数和优化器。

分类任务

1. 损失函数

  • 交叉熵损失(Cross-Entropy Loss):

    • 适用场景:多分类任务。
    • 实现 :nn.CrossEntropyLoss() 在 PyTorch 中自动计算 softmax 和交叉熵。
    python 复制代码
    criterion = nn.CrossEntropyLoss()
  • 二元交叉熵损失(Binary Cross-Entropy Loss):

    • 适用场景:二分类任务。
    • 实现 :nn.BCELoss() 需要配合 sigmoid 激活函数,nn.BCEWithLogitsLoss() 将 sigmoid 和二元交叉熵计算合二为一。
    python 复制代码
    criterion = nn.BCEWithLogitsLoss()
  • 稀疏分类交叉熵损失(Sparse Categorical Cross-Entropy Loss):

    • 适用场景:多分类任务,标签为整数索引而非 one-hot 编码。
    • 实现 :在 TensorFlow 中通常使用 tf.keras.losses.SparseCategoricalCrossentropy()。
    python 复制代码
    from tensorflow.keras.losses import SparseCategoricalCrossentropy
    criterion = SparseCategoricalCrossentropy(from_logits=True)

2. 优化器

  • 随机梯度下降(SGD):

    • 优点:简单易用,适用于一般的优化问题。
    • 实现 :optim.SGD()。
    python 复制代码
    optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
  • 自适应矩估计(Adam):

    • 优点:适应性学习率,通常能快速收敛,适用于大多数任务。
    • 实现 :optim.Adam()。
    python 复制代码
    optimizer = optim.Adam(model.parameters(), lr=0.001)
  • 均方根传播(RMSprop):

    • 优点:适用于处理非平稳目标问题。
    • 实现 :optim.RMSprop()。
    python 复制代码
    optimizer = optim.RMSprop(model.parameters(), lr=0.001)

回归任务

1. 损失函数

  • 均方误差(Mean Squared Error, MSE):

    • 适用场景:回归任务。
    • 实现 :nn.MSELoss()。
    python 复制代码
    criterion = nn.MSELoss()
  • 平均绝对误差(Mean Absolute Error, MAE):

    • 适用场景:回归任务。
    • 实现:在 PyTorch 中通常需要自定义实现。
    python 复制代码
    class MAELoss(nn.Module):
        def __init__(self):
            super(MAELoss, self).__init__()
    
        def forward(self, output, target):
            return torch.mean(torch.abs(output - target))
            
    criterion = MAELoss()
  • Huber 损失:

    • 优点:对异常值更鲁棒,是 MSE 和 MAE 的折中。
    • 实现 :nn.SmoothL1Loss()。
    python 复制代码
    criterion = nn.SmoothL1Loss()

2. 优化器

  • 随机梯度下降(SGD):

    • 优点:简单易用,适用于一般的优化问题。
    • 实现 :optim.SGD()。
    python 复制代码
    optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
  • 自适应矩估计(Adam):

    • 优点:适应性学习率,通常能快速收敛,适用于大多数任务。
    • 实现 :optim.Adam()。
    python 复制代码
    optimizer = optim.Adam(model.parameters(), lr=0.001)
  • 均方根传播(RMSprop):

    • 优点:适用于处理非平稳目标问题。
    • 实现 :optim.RMSprop()。
    python 复制代码
    optimizer = optim.RMSprop(model.parameters(), lr=0.001)

总结

  • 分类任务通常使用交叉熵损失(针对多分类和二分类任务),优化器可以选择 SGD、Adam 或 RMSprop。
  • 回归任务常用均方误差(MSE)和平均绝对误差(MAE),优化器也可以选择 SGD、Adam 或 RMSprop。

根据任务的具体需求和模型的表现,可以尝试不同的损失函数和优化器,选择最合适的组合。

相关推荐
7yewh2 小时前
SLAM 三维空间刚体运动(2)
数据结构·人工智能·机器人·嵌入式·slam
小虎AI生活2 小时前
WorkBuddy 模型选型实操:0.03 倍的 Space-Bunny 怎么用、派什么活、避什么坑
人工智能·超级个体·一人公司·青玥ai
ai小陈2 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
微三云马玮均—GEO源码系统 私有化部署2 小时前
消费返物业费:消费+服务趋势的必然产物!
大数据·人工智能·物联网·区块链·生活
明月_清风2 小时前
Muse 登顶 App Store 第一,SDK 直接开源:AI Agent 开始进入下一个阶段
人工智能·后端
JackSparrow4143 小时前
和AI一起将全部CSDN博文迁移到个人博客站
人工智能·程序人生·ai·github·cloudflare·astro·静态博客
55873 生态系统3 小时前
第 22 篇|社区聊天|55873 文明共建者的日常交流与协作界面
人工智能·区块链·55873全域文明生态体系·55873操作系统·55873社区聊天
搬砖的小码农_Sky3 小时前
AI Agent:如何处理Claude Code 最近版本(2026年更新)引入的模型上下文限制
人工智能·windows·ai·ai编程
企业数字化笔记3 小时前
视频目标跟踪怎么选?SORT、DeepSORT、ByteTrack 的连续性、遮挡与计算成本对比
人工智能·目标跟踪·音视频