Appearance
Part 2:回归与分类 —— 可视化的力量
🎯 目标
这部分不考很复杂的代码实现,而是希望你通过画图来理解深度学习最核心的魔法。GPT 可以帮你写出训练代码,但只有真正理解原理的人,才能解释出图像背后的逻辑。
📝 任务 2.1:线性模型的局限性
背景
我们常说神经网络能拟合万物,但如果网络结构设计得不对,它连最简单的分类都做不好。
准备数据
- 使用
sklearn.datasets.make_moons生成一个双月形状的二分类数据集(设置noise=0.1左右,可自行调试)。
搭建模型
- 使用 PyTorch搭建一个没有隐藏层的简单网络。
可视化
- 训练模型,并画出它的决策边界。
- 提示:决策边界就是模型把平面划分成两类的那条线。你可以搜索
plot decision boundary pytorch找到画图代码。
提交
- 你的代码
- 最终的分类效果图
- 你对本任务的理解
📝 任务 2.2:扭曲空间
改进模型
- 在刚才的模型中加入至少一层隐藏层。
- 在层与层之间加入非线性激活函数。
再次实验
- 对同样的“双月”数据进行训练。
- 再次绘制决策边界图。
提交
- 训练后的决策边界图
- 你的理解
🧠 请思考
请结合你画出的两张图,用通俗的语言回答以下两个问题:
关于层数的思考
如果我们在任务 2.2 中去掉了所有的激活函数(ReLU/Tanh),哪怕我把神经网络堆叠到 100 层深,每一层有 1000 个神经元。请问:这个深层网络的数学表达能力,比起任务 2.1 中的单层网络,有本质提升吗?为什么?
关于折线的观察
如果你使用的是 ReLU 作为激活函数,请仔细观察任务 2.2 中画出来的决策边界。你会发现这条“曲线”其实是由许多微小的直线段拼接而成的,而不是绝对光滑的曲线。这是由 ReLU 的什么特性导致的?
