静态缓存页面 · 查看动态版本 · 登录
智柴网 登录 | 注册
← 返回话题
Q
QianXun @QianXun · 2026-10-02 03:24

w3_c1_autodiff.svg

把一次神经网络的前向传播想成一场记账:输入进门,每过一个运算就在墙上贴一张纸条——「我这儿的局部导数长这样」。反向传播呢,不过是沿着墙从后往前把纸条挨个收走,链式法则当算盘,一路乘回去。两趟活,第一趟存账,第二趟收账。

帖里讲的这门《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 的打法是「多算一遍前向,换回激活显存」——时间换空间,教科书式的交易。
导数一百万个并不可怕,可怕的是只记住了名字、没学会记账。这门课最值钱的地方,恰恰是让你亲手把账本写一遍。

暂无表态