2026-01-04 · AI
32
AI · 2026-01-04

Karpathy神经网络02:Makemore - 语言模型入门

本文是《Karpathy神经网络零基础课程》系列文章

← 上一篇:Karpathy神经网络01:Micrograd - 手撸一个AI大脑 | → 下一篇:Karpathy神经网络03:MLP - 多层感知机


这是一篇为您准备的关于 Andrej Karpathy 视频《语言模型入门:构建 makemore》的详细总结与教学文章,专门为初中生程度的读者设计。我们将通过通俗易懂的语言,带你一步步通过代码“教”电脑创造名字。


🎓 像教小孩一样教电脑:手把手带你写一个“取名AI”

视频来源: Andrej Karpathy - The spelled-out intro to language modeling: building makemore

👋 简介:我们要不仅是写代码,还要造“大脑”

你是否好奇像 ChatGPT 这样的 AI 是如何学会说话的?这个视频就是一切的起点!大神 Andrej Karpathy(前特斯拉 AI 总监)带我们从零开始,不使用复杂的黑盒工具,而是用最基础的数学和代码,构建一个能自动给小婴儿起名字的 AI 模型——makemore

我们将学习两种方法来实现它:

  1. 统计法(数数)
  2. 神经网络法(模仿大脑)

第一部分:最直观的方法——“数数法” (Bigram Model)

1. 什么是 Bigram(二元模型)?

电脑不会天生理解名字,它只能看到字母的顺序。

2. 训练模型 = 统计概率

Karpathy 老师下载了 32,000 个名字。我们要做的就是统计在这些名字里,哪个字母后面最常跟着哪个字母。

3. 让 AI 尝试起名

一旦有了概率表,我们就可以扔骰子了!


第二部分:给模型打分——这也太笨了吧?

1. 损失函数 (Loss Function)

我们怎么知道 AI 起的名字好不好?我们需要一个数学老师来打分。

2. 模型平滑 (Smoothing)


第三部分:进阶——用“神经网络”来思考

虽然“数数法”很有用,但如果我们想看前 10 个字母来预测第 11 个,表格就会大到电脑存不下。所以我们要换一种方法:神经网络

1. 把字母变成数字 (One-Hot Encoding)

电脑不认识 'A' 或 'B',它只认识数字。

2. 神经网络的“神经元”

3. 梯度下降 (Gradient Descent)——让 AI 学习

这是 AI 学习的核心魔法!


📝 课后重点笔记(必考题)

  1. 广播机制 (Broadcasting)
  2. 在编程时,如果你让一个长数组和一个短数组相加,电脑会自动把短的“拉长”来匹配长的。这很方便,但如果不小心不仅会算错,还不容易报错(Bug),一定要小心![46:02]

  3. 殊途同归

  4. 视频最后证明了,用神经网络训练出来的结果,和我们最开始直接数数算出来的结果,是一模一样的!
  5. 为什么要折腾学神经网络? 因为神经网络更灵活,以后我们可以不仅看前一个字母,还能看前 100 个,甚至根据图片来预测文字,这才是现代 AI 的基础 [01:56:16]。

  6. 正则化 (Regularization)

  7. 为了防止 AI “死记硬背”,我们可以给它加点阻力(比如让权重 W 尽量接近 0)。这就像给自行车加辅助轮,让模型更平滑,不要太极端。这在数学上等同于我们在第一部分做的“给计数加 1”的操作 [01:51:57]。

🎯 总结

这个视频通过教电脑“起名字”这样一个小任务,揭示了 ChatGPT 等超级 AI 背后的两个核心秘密:

  1. 万物皆概率:AI 写作本质上是在预测下一个字出现的概率。
  2. 梯度下降:AI 变聪明不是因为有人教它规则,而是它通过不断试错、不断降低“错误分数”自己练出来的。

希望这个总结能帮你打开 AI 世界的大门!如果你想亲自尝试,推荐去观看原视频并跟着敲一遍代码。


返回系列总览

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

目录 最新
← 左侧翻上一屏 · 右侧翻下一屏 · 中间唤出菜单