神经网络学习笔记指南:用 nn-zero-to-hero 亲手实现反向传播与语言模型
【免费下载链接】nn-zero-to-heroNeural Networks: Zero to Hero项目地址: https://gitcode.com/GitHub_Trending/nn/nn-zero-to-hero
nn-zero-to-hero是 "Neural Networks: Zero to Hero" 视频课程的配套笔记本仓库:每一讲都是一个 Jupyter Notebook,跟着视频从零手写代码,先实现支持反向传播的微型自动求导库micrograd,再逐级搭出字符级语言模型makemore,最终指向 GPT 的完整构建。它适合会基础 Python、希望搞懂神经网络训练与调试底层机制的学习者。
仓库里有什么:一个 README 加两个笔记本目录
整个仓库非常精简,核心内容就是 README.md 里的课程索引和lectures/下的代码:
- lectures/micrograd/:两半课对应的 notebook,讲解标量计算图与反向传播的推导;
- lectures/makemore/:五个递进文件,从 bigram 模型、MLP、批归一化(BatchNorm)、手动反向传播,到类 WaveNet 的卷积网络。
README 中的 Lecture 7(从零构建 GPT)和 Lecture 8(GPT Tokenizer)目前在仓库内没有对应 notebook,需要配合视频中的外部练习链接使用,本地可运行的是前六讲。
两条主线:先拆反向传播,再建语言模型
课程的组织逻辑是"先懂原理,再做工程"。
micrograd 系列只依赖 Python,用上百行代码搭一个标量级的自动求导系统,目标是把"梯度是怎么传回来的"讲透,前置要求只有基础 Python 和高中学过的微积分概念。
makemore 系列则是一条完整的模型迭代线:
- bigram(part1):最简单的二元字符统计模型,同时引入
torch.Tensor与语言模型的训练、采样、loss 评估框架; - MLP(part2):换成多层感知机,顺带覆盖学习率调参、过拟合、训练/验证/测试集划分等机器学习基本功;
- BatchNorm(part3):检查前向激活与反向梯度的统计量,用诊断可视化定位训练不稳定的原因;
- 手动反向传播(part4):不用
loss.backward(),对交叉熵、线性层、tanh、BatchNorm、embedding 逐层手推梯度,在张量层面理解梯度流动; - CNN(part5):把两层 MLP 加深为树状结构,得到类似 DeepMind WaveNet 的卷积架构,体会
torch.nn的实际工作方式。
环境准备:装好 PyTorch 与 Jupyter 即可
仓库里没有安装脚本,环境很简单:Python 3 + PyTorch + Jupyter。克隆后执行:
git clone https://gitcode.com/GitHub_Trending/nn/nn-zero-to-heropip install torch jupyter之后在lectures/micrograd/目录打开第一个 notebook 运行即可。micrograd 不依赖任何第三方库,是验证环境最快的入口;makemore 各节则依赖 PyTorch,建议按文件名顺序推进,因为 part2 之后的代码建立在前面文件的变量与函数之上。
三个自检点:loss 日志告诉你会不会
判断自己是否真的跑通了,可以看 notebook 里留存的调试记录:
- part3 的 loss log:原始 MLP 训练 loss 约 2.12,修复 softmax 初始化、换用 Kaiming 初始化、引入 BatchNorm 后逐步降到 2.06 左右——这组数字就是"诊断工具如何指导调参"的实例;
- part4 是明确设计成"动手优先"的练习:作者建议在 Colab 上先自己做,卡住再暂停视频看答案,只看不练收益很小;
- part5 的 performance log 记录了参数扩展的效果:从 12K 参数(验证 loss 2.105)扩到 76K 参数(验证 loss 1.993),能直观感受模型容量与泛化的关系。
如果某一步的 loss 明显高于这些参考值,优先检查数据切分与学习率,而不是怀疑框架。
学完这两条线之后的下一步
仓库本身停在 makemore part5,README 标注 Ongoing,意味着后续讲座会持续补充。合理的延伸路线是:按 README 顺序补看 Lecture 7 与 8 的视频,把 makemore 中积累的自回归语言建模经验迁移到 GPT 与分词器上。
现在就可以做的具体动作:克隆仓库,打开 lectures/micrograd/micrograd_lecture_first_half_roughly.ipynb,把第一个计算图的求导部分逐单元格跑通。项目采用 MIT 协议(见 LICENSE),代码可以任意改写练习。
【免费下载链接】nn-zero-to-heroNeural Networks: Zero to Hero项目地址: https://gitcode.com/GitHub_Trending/nn/nn-zero-to-hero
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考