当前位置: 首页 > news >正文

【Pytorch】激活函数 Loss 梯度 超详细文本笔记

一、先讲个故事:投篮训练

  1. 你投篮球 → 这叫前向传播

  2. 看球离筐多远 → 这叫算 Loss(误差)

  3. 告诉手臂“下次多用力/少用力” → 这叫反向传播(梯度)

  4. 手臂关节里有个“开关”决定要不要听 → 这叫激活函数


二、激活函数:把“直线”掰弯的开关

表格

复制

名字前向(输入→输出)反向(局部梯度)一句话记忆
Sigmoidσ(x)=1/(1+e^(-x))σ′=σ(1−σ)用输出自己算,越极端越没信号
Tanhtanh(x)1−tanh²(x)同样用输出,0附近斜率最大
ReLUmax(0,x)x>0→1, x≤0→0正区域全开,负区域全关
LeakyReLUmax(αx,x) (α=0.01)x>0→1, x≤0→α负区留个小缝,避免“死亡”

代码看一眼(不用背):

Python

复制

import torch, torch.nn.functional as F
x = torch.tensor([-2., 0., 2.], requires_grad=True)
y = torch.sigmoid(x)      # 换成 torch.tanh(x) / F.relu(x)
loss = y.sum()            # 随便造个标量
loss.backward()
print(x.grad)             # 局部梯度值

三、Loss 函数:量“差多少”的尺子

1. 回归任务(预测连续值)

  • MSE(L2): loss = (ŷ−y)² → 梯度 = ŷ − y
    例:预测房价 100 万,真值 103 万 → 梯度 3 万(告诉模型再涨 3 万)

2. 分类任务(预测类别)

  • Cross-Entropy(多类):

    1. 先 softmax 把 logits→概率 prob

    2. 梯度 = prob − label(one-hot 形式)
      例:真实类别 [0,1,0],prob=[0.2,0.7,0.1] → 梯度=[0.2,−0.3,0.1](负的往下压,正的往上抬)

  • BCEWithLogits(多标签):
    梯度 = σ(z) − y(sigmoid 输出减标签)

代码模板(分类必背):

Python

复制

logits = model(images)               # [batch, n_class]
loss = F.cross_entropy(logits, labels)  # 内部已含 softmax
loss.backward()                      # 反向
# logits.grad 就是 prob − label

四、Softmax 梯度矩阵(自定义时才用)

定义:p_i = e^{a_i} / Σ_k e^{a_k}
雅可比矩阵:

复制

∂p_i / ∂a_j =i=j  : p_i(1−p_i)   ← 对角i≠j  : −p_i p_j     ← 非对角

记忆:

  • 自己:p(1−p)(正数,随自信度减小)

  • 别人:−p_i p_j(负数,互相抢概率)


五、常见翻车点

表格

复制

翻车现象原因正确打开
loss.backward() 报错“no grad”忘了 requires_grad=True创建张量时加参数或 x.requires_grad_()
分类 loss 爆炸先手动 softmax 再送 CE原始 logitsCrossEntropyLoss 自带 softmax
二次 backward 报错第一次没留图第一次加 retain_graph=True 或重构计算图
ReLU 神经元全死学习率太大+负输入换 LeakyReLU / 调小学习率 / 批量归一化

六、一口诀背走

“激活局部三样板:sig 自身乘补,tanh 一减平方,ReLU 台阶;分类全局一句话:prob 减 label!”


七、30 秒复盘

  1. 激活只产生局部开关(0/1 或 p(1−p))

  2. Loss 产生全局误差信号(ŷ−y 或 prob−label)

  3. PyTorch 自动链式相乘 → 每个参数得到 .grad

  4. 你只做三件事:选激活 → 选 Loss → 调 loss.backward()

http://www.dtcms.com/a/482952.html

相关文章:

  • 不同材质金冠钳的力学性能及其对修复体就位影响研究
  • vs2015做网站的后端个人怎么做百度竞价
  • 微信小程序入门学习教程,从入门到精通,项目实战:美妆商城小程序 —— 知识点详解与案例代码 (18)
  • 微信小程序添加水印功能
  • 02_ES索引规范kibana
  • 购物网站建设模板图片价格低的跑车
  • LeetCode hot100:049 字母异位词分组:两种解法的深度解析
  • 网站建设业务前景政务信息网站建设制度
  • 使用C#写微信小程序后端——电商微信小程序
  • C++——vector容器、动态容器
  • C++ 类与对象(下篇)笔记整理
  • 重庆建站服务商漳浦网站开发
  • 深入浅出理解电感:从理论到实践的电路“惯性”元件
  • 分布式事务:基于MQ事务的解决方案详解
  • 无信息先验:贝叶斯分析中的客观基准
  • 公司官网备案流程mysql优化 wordpress
  • 网站建设员课程注册网页版
  • 瑞莎星瑞(Radxa Orion O6) 基于 Android OS 使用 NPU的图片模糊查找APP 开发
  • 户外商品网站制作长沙网站建设的公司
  • 安卓13_ROM修改定制化-----ROM解打包 修改 讲解 导读篇
  • 网站设计亮点望野亭
  • RTC时钟原理
  • STM32运行原理深度解析:从软件到硬件的神奇之旅
  • OpenCV(十一):色彩空间转换
  • 广州安全教育平台网宁波网站seo哪家好
  • 家装网站自己做的平面设计常用网站
  • Three.js轨道控制器完全指南(OrbitControls与TrackballControls)
  • 服务器数据恢复—硬盘黄灯预警,RAID5阵列数据如何恢复?
  • CATIA 转换为 3DXML 全流程:迪威模型网在线转换和本地方转换方法指南
  • 学校门户网站建设的意义做任务分享赚钱的网站