人工神经网络完全学习手册
面向机器学习入门、深度学习工程、科研训练与面试准备的系统化学习资料。 参考网络安全资料的写法:总览 README + 分章长文 + 项目实战目录,强调“先修知识 → 核心理论 → 训练技巧 → 项目落地”。 目标不是只会调包,而是能够从零理解一个神经网络是如何定义、训练、评估、部署与迭代的。
目录结构
人工神经网络/├── README.md # 本文件:课程总览与学习路线├── chapters/ # 理论知识(8 章)│ ├── 01_神经网络学习总览与路线.md│ ├── 02_前置知识_线性代数_微积分_概率统计.md│ ├── 03_感知机_线性模型_多层感知机.md│ ├── 04_反向传播_损失函数_优化算法.md│ ├── 05_训练技巧_正则化_泛化与评估.md│ ├── 06_卷积神经网络与视觉建模.md│ ├── 07_序列模型_RNN_LSTM_GRU_注意力入门.md│ └── 08_模型解释_部署压缩_工程实战.md├── projects/ # 实战项目(4 个)│ ├── README.md # 项目总览│ ├── 01_xor_from_scratch/ # 从零实现 XOR 神经网络│ ├── 02_mnist_mlp/ # MNIST 多层感知机分类│ ├── 03_cifar10_cnn/ # CIFAR-10 卷积网络训练│ └── 04_sequence_text_classification/ # 序列分类与注意力实验└── assets/ # 图表、实验结果、训练日志、截图学习路线图
阶段 0:数学与编程先修Python · Numpy · 线性代数 · 微积分 · 概率统计 · 优化思想
阶段 1:神经网络基础感知机 · 线性模型 · 激活函数 · MLP · 损失函数
阶段 2:训练与泛化反向传播 · 梯度下降 · 初始化 · 正则化 · 过拟合 · 评估
阶段 3:典型结构CNN · RNN · LSTM · GRU · Attention · Transformer 入门
阶段 4:工程化与落地可解释性 · 模型压缩 · 导出部署 · 训练监控 · 实验管理
阶段 5:项目实战XOR → MNIST → CIFAR-10 → 序列分类推荐学习顺序
| 顺序 | 章节 | 目标 |
|---|---|---|
| 1 | 01 神经网络学习总览与路线 | 搭建全景认知,明确学习目标 |
| 2 | 02 前置知识 | 补齐数学与编程先修 |
| 3 | 03 感知机与多层感知机 | 理解神经元、激活函数与 MLP |
| 4 | 04 反向传播与优化算法 | 搞懂梯度如何传递与更新 |
| 5 | 05 训练技巧与泛化 | 解决训练不稳定、过拟合与评估 |
| 6 | 06 卷积神经网络 | 从全连接过渡到视觉任务 |
| 7 | 07 序列模型与注意力 | 进入文本、语音、时间序列建模 |
| 8 | 08 模型解释与部署 | 面向工程、实验与落地 |
| 9 | 项目总览 | 进入实战项目 |
先修知识
1. 编程基础
- Python 语法、函数、类、列表推导式
- Numpy 数组、广播、向量化思维
- Matplotlib / Seaborn 基础绘图
- Pandas 数据读取、清洗与统计
2. 数学基础
- 向量、矩阵、张量、范数、特征值
- 导数、偏导数、链式法则
- 概率、期望、方差、交叉熵
- 极大似然、凸优化、拉格朗日乘子
3. 机器学习基础
- 监督学习 / 无监督学习 / 强化学习的区别
- 训练集、验证集、测试集划分
- 欠拟合、过拟合、偏差、方差
- 分类、回归、聚类、降维
4. 工程基础
- Git 基础操作
- 虚拟环境管理:venv / conda
- GPU / CPU 训练的基本概念
- 训练日志、随机种子、实验复现
推荐实验环境
| 场景 | 推荐工具 |
|---|---|
| 数值计算 | Python、Numpy、Scipy |
| 数据分析 | Pandas、Matplotlib、Seaborn |
| 经典深度学习 | PyTorch、Torchvision |
| 轻量实验 | Jupyter Notebook |
| 可视化 | TensorBoard、Weights & Biases |
| 模型导出 | ONNX、TorchScript |
核心能力矩阵
| 能力域 | 入门 | 进阶 | 熟练 |
|---|---|---|---|
| 理论理解 | 能说出神经元与激活函数 | 理解前向传播与反向传播 | 能推导梯度并解释训练现象 |
| 编程实现 | 能用框架搭建模型 | 能从零实现 MLP | 能写训练循环与调参脚本 |
| 数据处理 | 会做标准化 | 会处理类别不平衡 | 会构造数据增强与特征工程 |
| 训练调参 | 会改学习率 | 会调正则化与优化器 | 能定位损失震荡、梯度爆炸 |
| 评估部署 | 会看准确率 | 会看 F1、AUC、混淆矩阵 | 能做压缩、导出与推理加速 |
学习方法建议
- 先看理论章节,再做项目,不要反过来只会抄代码。
- 每个公式都要推一遍,尤其是前向传播、交叉熵和反向传播。
- 每个模型都至少做一次“从零实现”,即使最终用框架训练。
- 每次实验都记录:数据、参数、曲线、错误、结论。
- 每个项目至少完成一次“基线版本”和一次“改进版本”。
项目实战路线
| 项目 | 核心收获 | 建议顺序 |
|---|---|---|
| XOR 从零实现 | 理解非线性与隐藏层 | 第 1 个项目 |
| MNIST MLP | 理解完整训练流程 | 第 2 个项目 |
| CIFAR-10 CNN | 理解卷积与图像任务 | 第 3 个项目 |
| 序列分类与注意力 | 理解时序建模与注意力 | 第 4 个项目 |
参考资料
- Ian Goodfellow, Yoshua Bengio, Aaron Courville. 《Deep Learning》
- Christopher Bishop. 《Pattern Recognition and Machine Learning》
- Aurélien Géron. 《Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow》
- 邱锡鹏:《神经网络与深度学习》
- 李沐《动手学深度学习》
使用说明
- 先完整阅读
chapters/01与chapters/02,再进入chapters/03。 - 每章末尾的练习题建议先做纸笔推导,再写代码验证。
- 进入
projects/后,优先完成 XOR 和 MNIST 项目。 - 所有实验建议保留随机种子和环境版本,方便复现。
- 如果你想把这套内容继续扩展到更细的课程,我可以再把每一章继续细分到更长的专题文件。
章节扩写建议
当前版本已经把主线搭起来了,但如果你希望每个 md 都接近长文教材的体量,建议采用下面的扩写方式。
1. 每章固定补四类内容
每一章都可以拆成以下四层:
- 概念层:先给出定义、动机和直觉。
- 数学层:补公式推导、维度分析、边界条件。
- 工程层:补代码实现、框架调用、调参建议。
- 实战层:补常见错误、案例、实验和复盘。
2. 每章至少加入这些模块
- 学习目标
- 能力矩阵
- 重点概念
- 公式推导
- 图示与流程图
- Python / PyTorch 示例
- 常见误区
- 课后练习
- 延伸阅读
3. 每章的内容密度标准
如果目标是 1000 行左右,通常不能只靠一页摘要式说明,而要加入:
- 3 到 5 个核心公式推导;
- 3 到 5 个代码示例;
- 5 到 10 个常见问题;
- 10 个以上的练习题;
- 1 到 2 个完整项目案例。
建议的长文拆分方式
为了让课程既完整又不至于混乱,推荐你把每章继续拆成更细的专题文件,而不是把所有东西都堆在同一页里。
章节一:总览与路线
主要负责讲清楚学习路径、术语关系、课程主线和最终目标。
章节二:前置知识
补足数学工具箱和 Python 向量化思维,最好加入更多推导与数值案例。
章节三:感知机与 MLP
讲清楚线性模型、非线性、激活函数、表达能力和 XOR 这个经典例子。
章节四:反向传播与优化
重点扩展为计算图、链式法则、梯度稳定性、SGD 系列优化器和训练循环。
章节五:训练技巧
补正则化、初始化、归一化、早停、调度器和评估指标。
章节六:CNN
重点写卷积算子、特征图、感受野、经典模型和视觉任务实验。
章节七:序列模型
重点写时间步展开、长依赖、门控机制、注意力和文本任务。
章节八:工程与部署
写解释性、压缩、导出、监控、实验管理和项目复盘。
推荐补充内容清单
如果后续继续扩写,我建议优先补下面这些部分。
数学补充
- 矩阵求导规则
- softmax 的导数推导
- 交叉熵与最大似然的等价关系
- Xavier / He 初始化推导
- BatchNorm 与 LayerNorm 的差异
训练补充
- 学习率 warmup
- 梯度裁剪
- 标签平滑
- 类别不平衡处理
- 早停与模型选择
工程补充
- 数据管道
- checkpoint 保存与恢复
- 日志系统
- 可视化
- 推理封装
项目补充
- XOR 从零实现
- MNIST MLP
- CIFAR-10 CNN
- 文本分类或时序预测
- 一个简化的模型部署案例
文档风格建议
你这套资料如果要长期维护,建议保持一种统一风格:
- 每章先讲动机,再讲公式。
- 每个概念后面跟一个小例子。
- 每个公式后面补“为什么这样写”。
- 每个项目后面加“如果训练不成功怎么办”。
- 每个文件最后都保留练习题和延伸阅读。
这样写出来的资料才会更像一本系统教材,而不是一页页零散笔记。
后续可继续扩展的方向
如果你要把这套内容继续推到接近 1000 行每篇,我下一步会优先做这三件事:
- 把 chapters/02 和 chapters/04 扩成详细推导版。
- 给 projects/02_mnist_mlp 和 projects/03_cifar10_cnn 补完整代码说明、实验记录和调参日志模板。
- 继续把 chapters/06 和 chapters/07 拓成更细的视觉与序列专题。
当前状态说明
这套目录现在已经不是“空壳”,而是一个可以持续扩写的完整课程骨架。接下来如果你愿意,我可以继续按同样风格把每一章往长文教材方向填,直到每篇都接近你要的体量。
如果這篇文章對你有幫助,歡迎分享給更多人!
部分資訊可能已經過時





















