写在前面:关于深度学习#

深度学习是什么#

深度学习是机器学习的一个分支,而机器学习又是人工智能(AI)的一部分。可以这样理解它们的关系:

  • 人工智能:让机器展现出需要人类智能才能完成的能力(如识别图像、理解语言)

  • 机器学习:让机器从数据中自动学习规律,而不是通过显式编程

  • 深度学习:使用多层神经网络进行机器学习的方法

        graph TD
    AI[人工智能<br/>Artificial Intelligence] --> ML[机器学习<br/>Machine Learning]
    ML --> DL[深度学习<br/>Deep Learning]
    ML --> SL[监督学习]
    ML --> UL[无监督学习]
    DL --> CV[计算机视觉]
    DL --> NLP[自然语言处理]
    

深度学习之所以"深",是因为它的网络结构有很多层。每一层都会从数据中提取不同层次的特征:浅层识别边缘和纹理,深层识别物体部件和语义概念。这种层次化的特征提取,让深度学习在图像、语音、文本等领域取得了突破性进展。

黑盒与炼丹#

为什么叫炼丹#

老一代深度学习研究者常自嘲说自己在"炼丹"。这个说法虽然调侃,但确实抓住了深度学习的某些特点:

  • 配方复杂:学习率、批大小、网络结构、正则化参数…每个选择都可能影响结果

  • 过程不可控:同样的代码跑两次,结果可能略有不同(随机初始化、数据打乱)

  • 结果难预测:理论上合理的改动,实践中可能完全无效甚至适得其反

  • 经验重于理论:很多时候靠的是"试试就知道",而不是严密的数学推导

但炼丹也有科学方法#

虽然我们自嘲炼丹,但这并不意味着深度学习完全是玄学。好的"炼丹师"会:

  • 做对照实验:改变一个变量,保持其他不变,观察影响

  • 记录实验日志:详细记录每次实验的配置和结果,建立可复现性

  • 理解原理:知道为什么要用某个技巧(如BatchNorm是为了解决内部协变量偏移)

  • 系统性调参:不是随机尝试,而是按重要性排序(学习率 > 网络结构 > 优化器 > …)

黑盒不等于不可理解#

深度学习模型常被批评为"黑盒"——输入进去,输出出来,中间发生了什么不知道。但实际上,我们有越来越多的工具来理解模型:

  • 特征可视化:看卷积层在关注图像的哪些部分

  • 注意力热图:看Transformer在处理文本时关注了哪些词(详见 Transformer:注意力的极致)

  • 消融实验:去掉某个模块,看性能下降多少,从而判断其重要性

  • 对抗样本分析:通过构造特殊输入,理解模型的决策边界

这些方法让我们能够"打开"黑盒,虽然不能完全理解每一个细节,但至少知道模型在做决策时考虑了哪些因素。

你需要的心态#

理论与实践并重#

深度学习是一个理论与实践紧密结合的领域。只懂理论不会写代码,你无法验证想法;只写代码不懂理论,你只能在已知范围内打转。

建议的学习方式是:

  • 先理解原理:知道某个技术为什么有效(如:Dropout是集成学习的近似)

  • 再动手实现:用自己的代码复现一遍,加深理解

  • 最后做实验:在自己的数据集上验证,观察实际效果

培养直觉#

在深度学习领域,有时候直觉比公式更重要。当你看到一个新的架构时,能够凭直觉判断"这个设计会有效吗"比能够推导反向传播公式更有价值。

培养直觉的方法:

  • 多看架构:了解经典网络的设计思路和演进历程

  • 多做实验:亲手调参,感受不同选择的影响

  • 多思考"为什么":不是记住"这样做有效",而是理解"为什么有效"

记住,深度学习领域很多"真理"都是暂时的。五年前的最佳实践,今天可能已经被淘汰。只有培养出好的直觉,才能在这个快速变化的领域保持竞争力。

保持怀疑精神#

深度学习领域充斥着各种说法:

  • “这个架构在ImageNet上达到了SOTA”

  • “我们的方法比基线提高了5%”

  • “这个技巧对所有任务都有效”

作为学习者,你需要保持怀疑:

  • 质疑结果:5%的提升是统计显著的吗?测试集有没有泄露?

  • 质疑结论:在一个数据集上的有效,能推广到其他数据集吗?

  • 质疑论文:作者有没有隐藏负面结果?对比的基线是不是太弱?

  • 质疑权威:即使是大佬说的,也要有独立判断

怀疑精神不是为了抬杠,而是为了建立真正可靠的知识。当你能够分辨哪些是可靠的结论、哪些是过度宣传时,你就成为了合格的深度学习从业者。

耐心与迭代#

最后,学习深度学习需要耐心。不要指望看一遍材料就能完全理解,也不要因为第一次实验失败就气馁。

  • 反复阅读:第一遍可能只看懂30%,第二遍60%,第三遍90%

  • 多次实验:调参很少一次成功,记录每次结果,逐步逼近最优

  • 接受失败:很多想法最终证明是无效的,但这本身就是学习过程

记住,即使是顶级研究者,大部分想法也是失败的。区别在于,他们能够从失败中提取信息,快速迭代到下一个想法。

如何使用这份材料#

这份材料的设计遵循了上述学习理念:

  1. 从直觉出发:每个概念都先建立直觉理解,再深入数学细节

  2. 理论与实践结合:每个理论点都有对应的代码实现和实验

  3. 强调对比和怀疑:鼓励你质疑、实验、形成自己的判断

  4. 渐进式深入:从基础概念逐步过渡到前沿技术

建议的学习方式是:先通读建立整体认知,再精读理解细节,最后动手实验验证。遇到不懂的地方,可以暂时跳过,很多时候后面的内容会帮助理解前面的概念。

与鱼书配合阅读#

如果你正在读斋藤康毅的《深度学习入门:基于Python的理论与实现》(俗称"鱼书"),那么恭喜你——你手里拿的是深度学习领域口碑最好的入门书之一。本书和鱼书不是替代关系,而是互补关系。

鱼书讲什么#

鱼书共8章,从Python基础出发,不依赖任何外部库,只用NumPy从零开始手写:

章节

内容

鱼书的做法

第1章

Python入门

复习基础,熟悉NumPy

第2章

感知机

用Python实现逻辑门,理解"权重+偏置"

第3章

神经网络

手写sigmoid、softmax、3层网络

第4章

神经网络的学习

梯度下降、损失函数、数值微分

第5章

误差反向传播法

计算图——鱼书最精彩的部分

第6章

与学习相关的技巧

参数更新(SGD/Momentum/Adam)、BatchNorm、正则化

第7章

卷积神经网络

im2col、卷积/池化的手工实现

第8章

深度学习

深层网络、历史(AlexNet/VGG/ResNet)、应用

鱼书的核心理念是:“只有做出来才能真正理解”。它强迫你亲手写每一行代码,让你明白PyTorch里那些.backward()、nn.Conv2d背后到底发生了什么。

鱼书第1~2章与本材料的衔接:鱼书第1章(Python/NumPy)和第2章(感知机)非常基础。本材料默认读者已经会用Python和NumPy,所以如果你 Python 完全不熟,建议先快速过一遍鱼书第1章;如果你已经能熟练写 NumPy 数组操作,这两章可以跳过,直接从第3章开始配着本材料读。

怎么配合读#

场景

建议

你完全零基础

先读鱼书第1~3章,再读本材料的数学基础和神经网络基础

你懂Python但不懂反向传播

鱼书第5章(计算图)+ 本材料数学基础,两手抓

你会跑PyTorch但不懂原理

鱼书第4~6章(梯度下降、更新技巧)+ 本材料对应理论,填坑

你想参加比赛/做项目

鱼书第7章(CNN手写实现)+ 本材料CNN消融研究+迁移学习,实战起飞

你卡在某个概念

鱼书用代码讲,本材料用直觉和类比讲,两边对照

一个简单的阅读策略:

  1. 并行推进:鱼书读一章,本材料读对应章节

  2. 交叉验证:鱼书教会你"怎么造轮子",本材料教会你"怎么开车"+“为什么这样设计车”。当你在本材料看到 nn.Conv2d 时,鱼书第7章让你知道它内部是怎么做im2col和矩阵乘法的。

典型学习路径示例(按周规划)#

如果你完全没有自学规划,这里有一个8周并行推进方案。每周大约投入 6~10 小时:

周次

鱼书章节

本材料章节

核心目标

第1周

第1章(Python复习)
第2章(感知机)

深度学习核心数学基础

补齐 NumPy/Python,建立数学工具箱

第2周

第3章(神经网络)
第4章(神经网络的学习)

深度学习核心数学基础(续)

前向传播、损失函数、梯度下降——数学打底

第3周

第5章(误差反向传播)

深度学习核心数学基础(反向传播)

计算图 + 链式法则——全书最难,单独一周消化

第4周

—

PyTorch 实践:把理论变成代码

前3周数学储备已够,正式上手 PyTorch:张量、自动微分、训练循环

第5周

第6章(学习技巧)

上篇:练习峰

优化器、BatchNorm、正则化 → 用 PyTorch 写出第一个 LeNet

第6周

第7章(CNN手写实现)

拆开看看:CNN 消融研究

对照鱼书 im2col 内部机制 → 拆开 LeNet 验证每个组件贡献

第7周

第8章(深度学习历史)

下篇:真正的未登峰

AlexNet→Inception→ResNet→MobileNet→EfficientNet 全景

第8周

—

模型部署与服务:从训练到生产 或 迁移学习与微调:站在巨人的肩膀上

二选一:端到端部署上线,或迁移学习做新任务——完成第一个项目

灵活调整:如果你已经懂 Python,第1周可以压缩到 2 天;第8周如果想两个都学,可以延长到第9周。

一句话总结#

鱼书是 “从泥土里把神经网络种出来”,本材料是 “站在山上看清森林的地图”。两本对照,既知道根扎多深,也看得见枝伸多远。


现在,你已经对深度学习有了初步的认识,也了解了需要什么样的心态,还知道如何把手里的材料与经典教材配合。接下来,让我们从数学基础开始,一步步揭开深度学习的面纱。

祝学习愉快,炼丹顺利。

贡献者与修订历史

查看详细修订记录
  • 2af6985 2026-06-14 - Heyan Zhu: feat(model-serving): add quantization and pruning chapter, restructure for general-first narrative
  • dc35df2 2026-06-14 - Heyan Zhu: refactor: unify into two-chapter mountain-climbing narrative
  • 7e2f65a 2026-06-12 - Heyan Zhu: docs: add fish book collab guide, nvidia driver/prime/dri3 setup, R470 branch
  • 8eb3275 2026-05-09 - Heyan Zhu: feat(sequence-modeling): add new chapter on sequence modeling from RNN to Mamba
  • f159d56 2026-05-08 - Heyan Zhu: fix: address complaints from the linter
  • b20ef3e 2026-04-28 - Heyan Zhu: docs: update pytorch practice section with detailed explanations and code examples
  • 9446c12 2026-04-26 - Heyan Zhu: docs: update index and add preface with humorous tone