👾 Day 6: 计算图
1️⃣【技术债与演进动机】The Technical Debt & Evolution
手动推导梯度复杂易错,深度学习模型嵌套多层。计算图自动记录前向过程,反向自动求导。
2️⃣【直觉建立】Visual Intuition
想象一个流程图:数据从左到右经过各种运算节点,每个节点记录输入输出,反向时从右到左传递梯度。
🎬 B 站搜索:计算图 自动求导 原理
3️⃣【符号解码字典】The Symbol Decoder
$x$ → input_tensor (输入张量)
$y$ → output_tensor (输出张量)
$\frac{\partial y}{\partial x}$ → gradient (梯度)
$\mathcal{G}$ → computation_graph (计算图结构)
4️⃣【核心推导】The Math
### 计算图结构
$$y = f(x) = f_L(f_{L-1}(\cdots f_1(x)\cdots))$$
### 链式法则
$$\frac{\partial y}{\partial x} = \frac{\partial f_L}{\partial u_{L-1}} \cdot \frac{\partial f_{L-1}}{\partial u_{L-2}} \cdots \frac{\partial f_1}{\partial x}$$
### 反向传播
前向:计算每一层的输出 $u_l = f_l(u_{l-1})$
反向:从后往前计算梯度
$$\frac{\partial L}{\partial u_l} = \frac{\partial L}{\partial u_{l+1}} \cdot \frac{\partial u_{l+1}}{\partial u_l}$$
5️⃣【工程优化点】The Optimization Bottleneck
计算图占用内存存储中间结果,大模型下显存爆炸。使用梯度检查点(checkpoint)节省内存。
6️⃣【今日靶机】The OJ Mission
🎯 任务:cd exercises/ && python3 day6_task.py
实现简易计算图的 forward 和 backward,验证链式法则的正确性。