从零开始 · 对照真实 C++ 实现

深度学习入门

一本写给「完全没接触过」的你的循循善诱小书。我们从一个神经元讲起, 一路把它搭成能写字的语言模型,再聊聊大模型背后的道理。 每个概念都配图、配可以动手玩的小实验,并对照一份不依赖任何大框架、从零写成的 C++ 实现。

阅读提示:每章按「直觉故事 → 图解/动手实验 → 适度数学 → 逐行代码 → 小结自测」推进, 看不懂公式没关系,先抓住直觉,再回头看细节。

在线版: chenxuan520.github.io/deeplearning · 源码: GitHub

全书目录

26 章,从最朴素的直觉,一直走到大模型的原理、训练工程与实际使用,最后对照真实 C++ 代码从头跑一遍。

第一部分 · 打地基

第 0 章 导论:这本书到底在讲什么 不用任何数学,先用大白话搞懂「模型 / 参数 / 训练 / 数据」到底在干嘛。 第 1 章 数学预备:看懂公式的一点点数学 向量、点积、矩阵、导数、链式法则、概率——后面所有公式的最小地基。可跳读、随用随查。 第 2 章 一个神经元 加权求和 + 偏置 + 激活函数。深度学习里最小的那块积木。配可拖动的实验台。 第 3 章 搭成网络:前向传播 把神经元堆成层、层叠成网络,看数据怎么一层层向前流动算出预测。

第二部分 · 学习是怎么发生的

第 4 章 怎么衡量「错」:损失函数 用一个数字衡量「模型错得多离谱」。MSE 与交叉熵,以及 softmax。 第 5 章 怎么变「好」:梯度下降 像在雾里下山一样,顺着最陡的方向一步步把损失降下去。学习率是步长。 第 6 章 反向传播 链式法则,把「错误」从输出层一路反着传回每一个参数。配前向/反向动画。 第 7 章 激活函数全家福 Sigmoid/ReLU/GELU 等曲线与导数,怎么选激活函数,配互动实验。 第 8 章 优化器:从 SGD 到 Adam 从 SGD 到 AdamW:动量、自适应步长,以及 weight decay 怎么耦合。 第 9 章 让它真的训得动 初始化、学习率调度、梯度裁剪——让训练真的收敛而不是发散。 第 10 章 正则化与泛化 过拟合是什么、怎么治:L2/weight decay、Dropout、early stopping、数据增强。 第 11 章 评估与数据 train/val/test 划分、准确率/F1/混淆矩阵,以及数据预处理要点。 第 12 章 强化学习:试错里学策略 另一种学习范式:没有标准答案,靠奖励试错学策略。MDP、Q-learning/DQN、策略梯度与 PPO,也是后面 RLHF 对齐的底座。

第三部分 · 经典网络结构

第 13 章 CNN 卷积神经网络 为什么图像要用卷积:局部感受野、权重共享、池化、通道,配卷积滑窗动画。 第 14 章 RNN 与 LSTM 注意力之前处理序列的主力:隐藏状态、按时间展开、梯度消失,以及 LSTM 的门控。 第 15 章 词嵌入与 word2vec 让词有「语义坐标」:one-hot 的毛病、分布式表示、CBOW/skip-gram、king−man+woman≈queen。

第四部分 · 序列与 Transformer

第 16 章 为什么需要注意力 处理一句话这种「序列」,普通网络卡在哪?注意力到底要解决什么问题。 第 17 章 注意力机制 用三个词、几个小数字手把手算一遍:Q/K/V、打分、softmax、加权平均、causal mask、多头。配可玩的实验台。 第 18 章 Transformer 的完整结构 残差连接、LayerNorm、前馈网络、位置编码,拼成一块完整的 Transformer 积木,并读懂那张经典全图。

第五部分 · 通往大模型

第 19 章 字符级语言模型 tokenizer、embedding、预测下一个字、温度/top-k/top-p 采样、困惑度。配真实权重回放。 第 20 章 通往大模型:原理与训练 分词/BPE、词嵌入与向量语义、规模定律与涌现、预训练/微调/RLHF/蒸馏,以及幻觉等局限。 第 21 章 大模型的工程与基础设施 GPU/显存为何是瓶颈、数据/张量/流水线并行、AllReduce/NCCL/NVLink、KV cache、MoE 与稀疏注意力。 第 22 章 用好大模型:提示、RAG 与 Agent 提示词/few-shot/思维链、RAG 外挂知识库、工具调用、Agent、MCP/A2A,以及安全底线。

第六部分 · 代码实战

第 23 章 MNIST 实战:把第一、二部分跑起来 逐行精读 src/demo/mnist:数据→建网→训练→评估→保存,把前面的概念在代码里对上号。 第 24 章 mini-LM 实战:把第四、五部分跑起来 逐行精读 src/demo/transformer_char:分词→建模→训练→生成,看注意力/Transformer/采样如何落到代码。 第 25 章 井字棋 Q-learning 实战:把强化学习跑起来 逐行精读 src/demo/rl_tictactoe:环境→Q 表→ε-greedy→TD 更新→多回合训练,把第 12 章落到代码。 附录 术语表 70 个名词一句话讲清,每个都链到对应章节。读到不认识的词,随时翻。

配套代码:本书所有「逐行讲解」都对照仓库 src/deeplearning/ 下的真实实现。想跑起来可参考各章末尾的运行提示。