AI编程 · 架构思考 · 技术人生

Karpathy神经网络03:MLP - 多层感知机

#Karpathy神经网络零基础课程
智谱 GLM,支持多语言、多任务推理。从写作到代码生成,从搜索到知识问答,AI 生产力的中国解法。

本文是《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 带我们用代码搭积木,这次的积木分三层:

  1. 输入层 (Input):
    比如我们要看前 3 个字母来猜第 4 个。我们把这 3 个字母的“坐标” (Embeddings) 拿出来,拼在一起。
  2. 隐藏层 (Hidden Layer) —— 大脑的处理中心:
    这些拼起来的数据,会通过一个“全连接层” (Linear Layer) 和一个激活函数 (tanh)。
  3. 这就好比把信息揉碎了、混合在一起进行深加工。

  4. 输出层 (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 已经进化了:

  1. 它不再需要死记硬背巨大的表格。
  2. 它学会了把字母变成向量坐标 (Embeddings),有了初步的“语感”。
  3. 它生成的单词更像人话了(名字听起来更真实)。

给初中生的启示:
这个视频告诉我们,解决困难问题(比如数据太多存不下)的方法,往往是换一个角度看问题(把离散的符号变成连续的空间向量)。这就是数学和编程结合的美妙之处!

视频链接:https://www.youtube.com/watch?v=TCH_1BHY58I


返回系列总览

👉 Karpathy神经网络零基础课程:完整课程大纲

赞(0)
未经允许不得转载:Toy's Tech Notes » Karpathy神经网络03:MLP - 多层感知机
免费、开放、可编程的智能路由方案,让你的服务随时随地在线。

评论 抢沙发

十年稳如初 — LocVPS,用时间证明实力

10+ 年老牌云主机服务商,全球机房覆盖,性能稳定、价格厚道。

老品牌,更懂稳定的价值你的第一台云服务器,从 LocVPS 开始