本文是《Karpathy神经网络零基础课程》系列文章
← 上一篇:Karpathy神经网络02:Makemore – 语言模型入门 | → 下一篇:Karpathy神经网络04:BatchNorm – 解决训练崩盘
欢迎回来!如果在上一集我们造的是一辆“乐高迷你车”(Bigram 模型),那么今天 Andrej Karpathy 大神要带我们升级装备,造一辆真正的“电动轿车”!
这堂课的主题是:多层感知机 (MLP)。虽然名字听起来很吓人,但它的原理其实超级有趣。我们将参考 2003 年的一篇经典论文,用现代的方法重现它。
以下是为你准备的“初中生进阶版”AI 笔记:
🚀 第一部分:为什么要升级?(从死记硬背到寻找规律)
在上一集里,我们的 AI 只有“金鱼记忆”,只看前 1 个字母来猜下一个。
- 笨办法: 如果我们想让它聪明点,看前 3 个字母怎么办?
- 爆炸的表格: 如果用老办法(查表法),表格会变得巨大无比!27 个字母的 3 次方是 19,000 多种组合,再多一点电脑内存就爆了。
- 新思路: 我们不要“死记硬背”每一种组合,而是要学会“寻找规律”。这就是神经网络(MLP)登场的时候。
🗺️ 第二部分:核心魔法——字符嵌入 (Embeddings)
这是本集最酷的概念!想象一下,我们把每个字母(a, b, c…)都变成一个坐标。
- 什么是 Embedding?
以前 ‘a’ 就是一个单纯的代号。现在,我们给 ‘a’ 一个身份信息,比如[0.1, -0.5]。这就好像把字母放在了一个地图上。 - 神奇的效果:
经过训练后,AI 会自动把相似的字母放在一起。 - 比如元音
a, e, i, o, u在地图上可能会聚成一个小圈子。 - 因为它们在单词里出现的用法很像(比如都可以放在辅音中间)。
- 这就是 AI 产生的“语感”!它不再只认符号,而是开始理解字母之间的关系。
🧠 第三部分:搭建更强的大脑 (MLP 结构)
Andrej 带我们用代码搭积木,这次的积木分三层:
- 输入层 (Input):
比如我们要看前 3 个字母来猜第 4 个。我们把这 3 个字母的“坐标” (Embeddings) 拿出来,拼在一起。 - 隐藏层 (Hidden Layer) —— 大脑的处理中心:
这些拼起来的数据,会通过一个“全连接层” (Linear Layer) 和一个激活函数 (tanh)。 -
这就好比把信息揉碎了、混合在一起进行深加工。
-
输出层 (Output):
最后算出一个概率:下一个字母是谁?
🎓 第四部分:大神教你的“避坑指南” (教学重点)
这部分是教科书上学不到的实战经验,非常宝贵:
1. 怎么找到最合适的“学习速度” (Learning Rate)?
- 问题: 步子迈太大(学习率太高),AI 会学疯了;步子太小(学习率太低),学到天荒地老。
- Karpathy 的绝招: 先试探性地扫描!
- 让学习率从非常小慢慢变到非常大,记录下中间过程的 Loss(错误率)。
- 画出一张图,找到那个“下坡最快,但又没翻车”的最低点,那就是最完美的学习率。
2. 考试不能作弊 (Train / Dev / Test Sets)
- 如果 AI 把题目全背下来了(Loss 很低),但遇到新题就不会做,这叫“过拟合” (Overfitting)。
- 为了防止 AI 作弊,我们要把数据分成三份:
- 训练集 (Train): 平时的作业,用来学习。
- 验证集 (Dev/Validation): 模拟考,用来调整参数(比如改改模型大小)。
- 测试集 (Test): 最终期末考。绝对不能让 AI 提前看到! 只有这样才能知道它是不是真学会了。
3. PyTorch 的魔法咒语
view(): 这是一个超高频使用的命令。它能瞬间把数据的形状改变(比如把“3 行 2 列”变成“1 行 6 列”),而且完全不消耗内存。学会用它,你就是 PyTorch 魔法师。
📝 总结
看完这个视频,我们的 AI 已经进化了:
- 它不再需要死记硬背巨大的表格。
- 它学会了把字母变成向量坐标 (Embeddings),有了初步的“语感”。
- 它生成的单词更像人话了(名字听起来更真实)。
给初中生的启示:
这个视频告诉我们,解决困难问题(比如数据太多存不下)的方法,往往是换一个角度看问题(把离散的符号变成连续的空间向量)。这就是数学和编程结合的美妙之处!
视频链接:https://www.youtube.com/watch?v=TCH_1BHY58I






程序员数学扫盲课
AI周刊:大模型、智能体与产业动态追踪
Claude Code 全体系指南:AI 编程智能体实战
Karpathy神经网络零基础课程
最新评论
开源的AI对话监控面板很实用,正好团队在找这类工具。准备试用一下。
折叠屏市场确实在升温,不过售罄也可能是备货策略。期待看到实际销量数据。
从磁盘I/O角度解释B树的设计动机,这个切入点很好。终于理解为什么数据库不用二叉树了。
IT术语转换确实是个痛点,之前用搜狗总是把技术词汇转成奇怪的词。智谱这个方向值得期待。
这个工具结合LLM和搜索API的思路很有意思,正好解决了我在做知识管理时遇到的问题。请问有没有部署文档?
这个漏洞确实严重,我们团队上周刚遇到类似问题。建议补充一下如何检测现有项目是否受影响的方法。
从简单规则涌现复杂性这个思路很有意思,让我想起元胞自动机。不过数字物理学在学术界争议还挺大的。
我也遇到了指令跟随变差的问题,特别是多轮对话时容易跑偏。不知道是模型退化还是负载优化导致的。