Python神经网络入门:零基础保姆级路线图(全系列免费 · 持续更新中)
- 📖 专栏简介
- 📍 文章列表
- 🚀 第二阶段:卷积神经网络(CNN)—— 为什么要抛弃全连接?
- 📝 文章列表
- 📌 如何获取最新更新?
📖 专栏简介
本专栏使用纯NumPy从零实现神经网络,不依赖 PyTorch/TensorFlow 等任何深度学习框架,旨在帮助大家透彻理解前向传播、反向传播、梯度下降等核心算法的底层数学原理。
所有代码均已开源,可自由复制运行。收藏本文,随时获取最新更新!
📍 文章列表
第1篇:分类器 —— 神经网络最朴素的起点
第2篇:从 XOR 死穴到生物神经元 —— 为什么单一直线搞不定,要堆一堆神经元?
第3篇:矩阵乘法真是神经网络的"偷懒神器"
第4篇:神经网络误差反向传播完全图解
第5篇:误差算出来了,权重到底怎么改?
第6篇:从零开始,敲出你的第一个神经网络
第7篇:跑通 MNIST 手写数字识别,验证训练成果与测试准确率
第8篇:全连接网络的“死穴“—— 为什么图像任务必须换思路,CNN?
🚀 第二阶段:卷积神经网络(CNN)—— 为什么要抛弃全连接?
全连接网络(MLP)在 MNIST 上虽然跑通了,但面对真正的图像任务,它有两个致命的"先天缺陷"。这个阶段我们不急着写代码,先用两篇文章把 CNN 的"出场理由"和"核心思想"彻底聊透,然后再用纯 NumPy 从零手撕经典的 LeNet-5(后续会专门说明如何使用pytorch框架实现)。
📝 文章列表
| 状态 | 文章标题 & 核心内容 |
|---|---|
| 📝 即将发布 | 第9篇:卷积核到底在"卷"什么?—— CNN 的核心思想与作用 • 局部感受野:为什么只看"一小块"反而更聪明? • 权值共享:一个探测器扫遍全图,参数瞬间暴跌 • 平移不变性:为什么 CNN 对位置偏移"免疫"? •用直观例子说明 CNN 如何解决第 8 篇的痛点(修正:原稿误写为"第9篇") |
| 📝 即将发布 | 第10篇:手撕卷积层(Conv2D)前向传播 —— 用 NumPy 实现滑窗与互相关运算 • 终于开始写代码,彻底搞懂卷积核在图像上"滑动"的底层实现 • 代码实现: for循环模拟滑动窗口• 对比 PyTorch 的 F.conv2d验证正确性 |
| 📝 即将发布 | 第11篇:卷积层的反向传播有多"绕"?—— 旋转 180° 的卷积核 • CNN 最难理解的难点,图解梯度如何在卷积层回传 • 为什么误差要"旋转 180°"? • 用 NumPy 实现卷积层的反向传播 |
| 📝 即将发布 | 第12篇:池化层(Pooling)—— 为什么要"压缩"图像? • MaxPooling 和 AveragePooling 的作用与区别 • 池化的前向传播:简单粗暴的"取最大值/平均值" • 池化的反向传播:最大值"独享"梯度,平均值"均分"梯度 • 用 NumPy 完整实现 MaxPooling 的前向与反向 |
| 📝 即将发布 | 第13篇:组装经典 LeNet-5 —— 用纯 NumPy 跑通第一个 CNN 模型 • LeNet-5 结构详解:Conv1 → Pool1 → Conv2 → Pool2 → FC1 → FC2 → 输出 • 将卷积层、池化层、全连接层组装起来 • 在 MNIST 上验证 CNN 的威力(对比 MLP 的准确率提升) |
| 📝 即将发布 | 第14篇:CNN 调参实战 —— Padding、Stride 与特征图尺寸变化 • 告别死记硬背公式,直观理解每一层的输出尺寸如何变化 • Padding:补零的"前世今生" • Stride:步长越大,特征图越小 • 手把手教你设计每一层的参数 |
📌 如何获取最新更新?
- 点击右上角「关注」,不错过每一篇新教程
- 收藏本文,专栏更新后我会在此同步追加新链接
- 如有疑问,欢迎在对应文章评论区留言
如果本专栏对你有帮助,欢迎点赞、收藏、分享!🙏