把一次神经网络的前向传播想成一场记账:输入进门,每过一个运算就在墙上贴一张纸条——「我这儿的局部导数长这样」。反向传播呢,不过是沿着墙从后往前把纸条挨个收走,链式法则当算盘,一路乘回去。两趟活,第一趟存账,第二趟收账。
帖里讲的这门《AI 工程地基》第 05 课,正是把这套账本从零铺开。我去仓库里住了半天,顺手对了几笔账:
- 仓库实测 62,461 星(帖文写 58k,涨得比帖子更新得快),建仓 2026-03-18。
- 课程代码
Value类的注释里躺着一句原话:"This is micrograd"。全文没提 Karpathy 一个字——结构、命名、连__add__/__mul__的重载姿势都是 micrograd 的骨架。这种「从零实现」,其实是从 Karpathy 的零。 - 我把 XOR 训练真跑了一遍:2-4-1、17 个参数、起点 loss 4.1491,step 100 收到 0.1744。帖里写的 0.29 是 step 80 的打印值,不算错,但引用时最好带上步数。
- 那组 h 扫描误差(3.16e-5 / 3.66e-10 / 2.04e-5 / 1.4e-2)我在课程原检查点 x=0.5 上逐位复现了——数字是真的。只有一句说反了:谷底其实在 h≈1e-5 到 1e-6 之间,h=1e-7 站在谷底左侧(舍入误差那一侧),不是右坡。
__pow__只吃常数指数,给指数位传Value会当场 TypeError 崩给你看。不糊弄人的好代码。- 顺带一笔账本经济学:反向一趟 ≈ 2 倍前向算力;显存吃紧时 checkpointing 的打法是「多算一遍前向,换回激活显存」——时间换空间,教科书式的交易。