「优化器 + 损失函数 + 激活函数」的完整配对速查表

一、通用核心规则(先记这 4 句)

  1. 隐藏层 :只负责非线性,不跟损失 / 优化器绑定
  2. 输出层激活 + 损失函数 = 必须严格配对
  3. 优化器通用 :绝大多数任务优先用 Adam
  4. 损失只算在输出层,梯度自动回传更新所有

二、全套配对速查表(直接背 / 直接用)

任务场景 隐藏层激活(推荐) 输出层激活 标准损失函数 推荐优化器
回归(任意实数) ReLU / GELU 无(线性) MSE / MAE / HuberLoss Adam / SGD
回归(输出≥0) ReLU / GELU ReLU MSE Adam
二分类(0/1) ReLU / GELU Sigmoid BCE(二元交叉熵) Adam
多分类(互斥类别) ReLU / GELU Softmax CrossEntropyLoss(交叉熵) Adam
多标签分类(多标签同时存在) ReLU / GELU Sigmoid(逐标签) BCEWithLogitsLoss / BCE Adam
Transformer / LLM / 大模型 GELU(主流) 任务决定(分类用 Softmax,生成用 Linear+Logits) 对应任务损失 AdamW(比 Adam 更稳)

三、极简口诀(10 秒记住)

  • 回归:线性输出 + MSE
  • 二分类:Sigmoid + BCE
  • 多分类:Softmax + 交叉熵
  • 隐藏层:ReLU 传统,GELU 现代
  • 优化器:默认 Adam,大模型用 AdamW

四、关键易错点(必看)

  1. CrossEntropyLoss 内部自带 Softmax 。 PyTorch:模型输出层不要手动写 Softmax,直接输 logits 即可
  2. BCEWithLogits = Sigmoid + BCE同样:输出层可以不写 Sigmoid,直接丢进损失
  3. 隐藏层永远不用 Sigmoid / Tanh(梯度消失)
  4. 优化器只管更新参数,和任务无关,只影响训练速度 / 稳定性

五、一句话终极总结

  • 隐藏层:ReLU / GELU(加非线性)
  • 输出层:按任务选激活
  • 损失:和输出激活严格配对
  • 优化器:默认 Adam 通吃

四大场景终极对比(背这个就够)

场景 输出性质 简单例子 输出层激活 常用损失
回归 连续数值 房价 238.6 万、气温 26.8℃ 线性 / ReLU MSE
二分类 二选一(是 / 否) 图片是猫?是 / 否 Sigmoid BCE
多分类(互斥) 多选一 动物:猫 / 狗 / 鸟(只选一个) Softmax CrossEntropy
多标签分类 多选多(共存) 图片:猫 + 狗 + 沙发(同时存在) Sigmoid BCE
相关推荐
IT_陈寒1 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
jooloo5 小时前
Codex 间歇性 400 之谜:一条对话里,它为什么有时候用 chat/completions,有时候切到 responses?
人工智能
用户5191495848455 小时前
OpenSSL PKCS#12 PBMAC1 堆栈缓冲区溢出漏洞 (CVE-2025-11187) 分析与验证
人工智能·aigc
用户5191495848456 小时前
HP Sound Research SECOMNService 权限提升漏洞利用工具
人工智能·aigc
用户018349301696 小时前
给 AI 智能体能力包一层 BFF,前端只调一个接口
人工智能
这token有力气10 小时前
Function Calling 格式漂移
人工智能
onething36510 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 5 —— SSE 流式输出 + 打字机效果
人工智能·后端·全栈
onething36510 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 6 —— 业务完善 + 会话消息预览
人工智能·后端·全栈
IT_陈寒11 小时前
SpringBoot自动配置的坑,我爬了三天才出来
前端·人工智能·后端
甲维斯12 小时前
笑抽了!DeepSeek识图,豆包完胜了!
人工智能·deepseek