Skip to content

Part 2:回归与分类 —— 可视化的力量

🎯 目标

这部分不考很复杂的代码实现,而是希望你通过画图来理解深度学习最核心的魔法。GPT 可以帮你写出训练代码,但只有真正理解原理的人,才能解释出图像背后的逻辑。

📝 任务 2.1:线性模型的局限性

背景

我们常说神经网络能拟合万物,但如果网络结构设计得不对,它连最简单的分类都做不好。

准备数据

  • 使用 sklearn.datasets.make_moons 生成一个双月形状的二分类数据集(设置 noise=0.1 左右,可自行调试)。

搭建模型

  • 使用 PyTorch搭建一个没有隐藏层的简单网络。

可视化

  • 训练模型,并画出它的决策边界。
  • 提示:决策边界就是模型把平面划分成两类的那条线。你可以搜索 plot decision boundary pytorch 找到画图代码。

提交

  • 你的代码
  • 最终的分类效果图
  • 你对本任务的理解

📝 任务 2.2:扭曲空间

改进模型

  • 在刚才的模型中加入至少一层隐藏层。
  • 在层与层之间加入非线性激活函数

再次实验

  • 对同样的“双月”数据进行训练。
  • 再次绘制决策边界图。

提交

  • 训练后的决策边界图
  • 你的理解

🧠 请思考

请结合你画出的两张图,用通俗的语言回答以下两个问题:

  1. 关于层数的思考

    如果我们在任务 2.2 中去掉了所有的激活函数(ReLU/Tanh),哪怕我把神经网络堆叠到 100 层深,每一层有 1000 个神经元。请问:这个深层网络的数学表达能力,比起任务 2.1 中的单层网络,有本质提升吗?为什么?

  2. 关于折线的观察

    如果你使用的是 ReLU 作为激活函数,请仔细观察任务 2.2 中画出来的决策边界。你会发现这条“曲线”其实是由许多微小的直线段拼接而成的,而不是绝对光滑的曲线。这是由 ReLU 的什么特性导致的?

Released under the MIT License.