手撸神经网络感受深度学习,理解神经元、隐藏层、前向传播和反向传播的完整过程。
- 输入层、隐藏层、输出层
- 神经元和连接权重
- 偏置项的作用
h = activation(W₁x + b₁) # 隐藏层
y = W₂h + b₂ # 输出层
- 计算输出层梯度
- 梯度反向传播到隐藏层
- 链式法则的应用
- 参数更新
- 隐藏层数量 vs 每层神经元数量
- 宽度和深度的权衡
- 过拟合和正则化
jupyter notebook tutorial.ipynb04-neural-network/
├── tutorial.ipynb # 主教程
├── README.md # 本文件
└── images/ # 神经网络结构图
├── ML04_1.png
├── ML04_2.png
├── ML04_3.png
└── ML04_4.png
- 修改网络结构(层数、神经元数),观察效果
- 实现 Dropout 正则化
- 尝试不同的初始化方法
- 可视化训练过程中的损失变化
- 实现一个能识别手写数字的简单网络
神经网络的本质是:通过多层非线性变换,将输入数据映射到输出空间。每一层提取不同层次的特征,深层网络能够学习更抽象、更复杂的模式。
完成本章后,你已经:
- ✅ 理解了机器学习的核心原理
- ✅ 掌握了梯度下降和反向传播
- ✅ 能够手写简单的神经网络
接下来可以:
- 学习 02-llm-from-scratch,从零实现 Llama3
- 或直接进入 03-practice,训练自己的模型
Previous ← 03-activation | Next → 02-llm-from-scratch