202_深度学习的动力源泉:矩阵微积分与自动求导 (Autograd)

在深度学习中,我们不仅仅是对单个变量求导,而是对整个向量或矩阵求导。理解梯度(Gradient)如何在高维空间中流动,是掌握反向传播算法的关键。

1. 导数的基本概念:从标量到向量

笔记中回顾了导数的本质:衡量输入发生微小变化时,输出变化的速率。

  • 标量导数:y = f(x)的导数 f'(x)。
  • 亚微分 (Subgradient):对于不可导的点(如 ReLU 在 x=0 处),引入亚微分的概念,确保优化过程在这些点依然可行。

2. 向量微积分:梯度 (Gradient)

当函数 y的输入是一个向量

时,导数就变成了梯度

  • 几何意义 :梯度指向函数增长最快的方向。在训练中,我们沿着梯度的反方向走,这就是"梯度下降"。

3. 自动求导实战:PyTorch 的 backward()

PyTorch 强大的核心原因之一就是其自动求导系统。它会根据前向传播构建计算图,并自动推导出复杂的链式法则。

文件展示了如何对函数

进行求导:

Python

复制代码
import torch

# 1. 创建变量并声明需要计算梯度
x = torch.arange(4.0)
x.requires_grad_(True) # 默认是 False

# 2. 定义函数 y = 2 * (x的平方和)
y = 2 * torch.dot(x, x)

# 3. 反向传播
y.backward()

# 4. 查看梯度结果
# y = 2 * (x1^2 + x2^2 + ...) -> dy/dx = 4 * x
print(x.grad) 
print(x.grad == 4 * x) # 验证结果是否为 [0, 4, 8, 12]

4. 计算图与链式法则 (Chain Rule)

神经网络是由许多层堆叠而成的复合函数

  • 链式法则
  • 计算图 :PyTorch 在后台将操作记录为有向无环图(DAG),.backward() 实际上是在这个图上从后往前进行拓扑遍历。

5. 进阶:分离计算与非标量求导

笔记中提到了两个非常实用的技巧:

① 分离计算 (detach)

有时我们希望将某些计算移出计算图,使其不参与梯度更新。

Python

复制代码
# z 对 x 的梯度不会通过 y 传递
y = x * x
u = y.detach() 
z = u * x
z.sum().backward()
print(x.grad == u) # 此时梯度只计入 u,不计入 y

② 非标量求导

PyTorch 通常只对标量输出求导。如果 y 是一个向量,调用 y.backward() 会报错。

  • 解决方法 :通常对 y.sum().backward() 进行操作,这相当于计算梯度向量。

6. 总结:矩阵计算的"三板斧"

  1. 定义变量 :使用 requires_grad_(True)
  2. 构建逻辑:编写前向计算公式。
  3. 触发求导 :调用 .backward(),然后从 .grad 属性中提取结果。
相关推荐
m0_5873830014 分钟前
深圳24小时自助健身房系统软件开发实战:架构设计与部署指南
人工智能·数据挖掘·系统架构·需求分析
Joy T15 分钟前
Spring AI 2.0 Agent 进阶:Memory、State 与 Context Engineering 常见技术全景
java·人工智能·后端·spring·agent入门·agent state
估值探索者16 分钟前
【Python量化系统工程化 #08】关了 SSH 就停?systemd 让脚本开机自启 + 异常自动拉起
java·c++·人工智能·分类·数据挖掘
西柚研究生12345618 分钟前
论文分析17:YOLOv11_UAVNet:无人机航拍图像专用目标检测算法
人工智能·python·深度学习·算法·目标检测
m4Rk_18 分钟前
【论文阅读】Agent 记忆机制(74):CompassMem——从相似度检索走向事件图上的记忆导航
论文阅读·人工智能·学习·开源·github
镭封22 分钟前
短剧多人对白怎么配?一人完成多角色配音的办法
人工智能·音视频·语音识别·媒体
昇腾知识体系34 分钟前
昇腾 torchrec_npu Docker 镜像选择:CANN/PyTorch/torchrec 版本矩阵与启动参数
人工智能·华为·知识图谱
VIP_CQCRE40 分钟前
用 Ace Data Cloud 一次接入 AI 视频生成:HappyHorse Videos API 实战指南
人工智能·api·ai视频·acedatacloud
沧海一笑-dj1 小时前
【Python】Python学习笔记-初识 Python
python·python安装·python解释器