卡帕西中文站 / 文章导读 / 黑客的神经网络指南

黑客的神经网络指南:一部未完成的经典草稿

原文发表:约 2014 · 导读更新:2026-08
这是导读,不是翻译。目标是让你 5 分钟拿到文章的思想地图;值得的话,带着地图去读 英文原文 →

一句话

面向讨厌数学推导的程序员,把神经网络讲成「实值电路」:信号在门电路里前向流动,梯度像「力」一样反向拉扯每个输入。这是卡帕西最早的系统性教学尝试——一部只写完两章的未完成教程,作者本人已明确说它「很老了」、被 CS231n 取代;但正因如此,它是理解他整个教学谱系从哪里长出来的化石标本。

文章讲了什么

写完的部分有两章。第一章「实值电路」是全书精华:从一个乘法门开始,比较三种求梯度的策略——随机搜索、数值探测、解析推导——然后用链式法则把单个门组合成任意复杂的表达式,反向传播就这样在没有一个矩阵符号的情况下被讲透了。最有味道的是他的物理隐喻:把导数理解为「当你拉高输出时,施加在每个输入上的力」;梯度下降则像蒙着眼睛的人靠脚底的坡度感爬山。第二章「机器学习」把电路用于二分类:先用「力的规格说明」这个直觉版损失函数讲 SVM,再搭出一个两层神经网络,顺带讲 ReLU 和「把参数往零拉的弹簧」(正则化)。代码用 JavaScript 写,为的是能直接跑在浏览器里,刻意不向量化,牺牲效率换可读性。

第三、四章(实战技巧、真实网络)只有提纲,永远停在了草稿状态。驱动整部教程的是他自己的学习体验:

"Everything became much clearer when I started writing code" ——Andrej Karpathy · 原文 →

写作背景

2014 年前后,深度学习刚刚爆发,但学习材料几乎全是论文和满页公式的教科书,「程序员友好」的入门读物是空白。当时还在斯坦福读博的卡帕西动手填这个坑,结果坑没填完——因为他很快得到了更好的载体:2015 年他成为 CS231n 的主讲,这部个人教程的内容被整个吸收进了课程讲义,草稿也就此封存。页面顶部至今挂着他的免责声明,推荐读者转向 CS231n 和《深度学习》教科书。

十年后再看

把它当教程,今天确实不该用了——但把它当思想源头,它惊人地完整:「把反向传播讲成电路里的力」这个教法,后来原封不动地变成了 micrograd 和 Zero to Hero 第一课;「代码先于公式」的信条,则一路贯穿 从零实现比特币直到 2026 年的 MicroGPT。有趣的是载体的变迁:2014 年他选 JavaScript 是为了浏览器演示,十年后他改用纯 Python——工具换了三轮,教学哲学一个字没变。一部没写完的书,最终以课程、代码库和 200 行 Python 的形式全部「写完」了。

对你意味着什么

  1. 别把它当入门教材:作者自己都这么说。今天更好的版本是 Zero to Hero 第一课 micrograd(课程汉化)——同样的电路直觉,现代的代码和完整的后续。
  2. 但「力的隐喻」值得专门借走:如果你学反向传播总觉得隔一层,读第一章那几节,把梯度理解成拉扯的力,很多人卡壳多年的直觉会瞬间接通。
  3. 做教学或写技术文章的人:观察它为什么没写完却仍被记住——先给直觉、再给代码、最后才给符号。这个顺序本身就是可复用的方法。

延伸阅读