返回首页

Roadmap
更新于 2026年10月29日 全文 1136 字未阅读

神经网络:简介#

预计整个模块学习时长: 75 分钟

学习目标:

  • 解释我们为什么要构建神经网络,以及它们解决了哪些使用场景的问题。

  • 定义并说明深度神经网络架构中几个关键组件各自的作用:

    • 节点(Nodes)
    • 隐藏层(Hidden layers)
    • 激活函数(Activation functions)
  • 顺着推理过程一步步走一遍,建立「神经网络是怎么做出预测」的直觉。

  • 借助反向传播算法,建立「神经网络是怎么被训练出来的」的高层直觉。

  • 解释神经网络如何完成两种多类别分类:一对多(one-vs.-all)与一对一(one-vs.-one)。

先修要求:

本模块假设你已经熟悉以下模块中介绍的概念:

一个线性模型分不开的分类问题#

先回顾一个场景。在类别型数据模块的特征交叉练习里,我们见过这样一个分类问题:

图 1. 一张直角坐标平面,横轴标着 x₁、纵轴标着 x₂,四个象限里各撒着一团散点。右上和左下两团是蓝色实心圆点,左上和右下两团是橙色实心圆点。
图 1. 非线性分类问题

从图中可以看到,这个问题是非线性的。所谓“非线性”,指的是你没法用 $b + w_1x_1 + w_2x_2$ 这种形式的模型准确预测标签,换句话说,它的「决策面」不是一条直线。

不过话说回来,如果我们对特征 $x_1$ 和 $x_2$ 做一次特征交叉,两个特征之间的非线性关系就能用一个线性模型来表示了:

$$b + w_1x_1 + w_2x_2 + w_3x_3$$

这里 $x_3$ 就是 $x_1$ 与 $x_2$ 的特征交叉。结果是:

图 2. 与图 1 同一张坐标平面,但整幅图被涂上了渐变底色:右上与左下是蓝色,左上与右下是橙色,两种底色之间由一条平滑弯曲的过渡带分开。散点都画成了白色描边的空心圈。
图 2. 加上特征交叉 $x_1x_2$ 之后,线性模型学出了一条双曲形状的边界,把蓝点与橙点分开。

对比一下图 1 和图 2 就会发现:坐标平面还是那张坐标平面,模型也依然是那个线性模型,变的是它的输入——多出来的 $x_3$ 那一项,正好把弯曲的边界给撑了出来。

更难一点的非线性问题#

现在换一个数据集看看:

图 3. 一张直角坐标平面,横轴标着 x₁、纵轴标着 x₂。原点附近聚着一团蓝色实心圆点,蓝色团的外围环绕着一圈橙色实心圆点,像一个橙色的甜甜圈套住中间的蓝色葡萄。
图 3. 一个更难的非线性分类问题。

还记得吗,在特征交叉练习里,为了给这份数据找到一个能用的线性模型,我们要试上一轮又一轮、摸索上好一阵子,才能挑出合适的特征交叉。

把找交叉这件苦活交给模型自己#

那么,如果不让你自己去趟这些弯路呢?

神经网络(Neural networks)正是一族为「在数据里找非线性模式」而设计的模型架构。在训练神经网络的过程中,模型会自动学会在输入数据上该做哪些最优的特征交叉,从而最小化损失。

接下来的几节,我们就近距离看看神经网络到底是怎么工作的。

MLWM: 关于神经网络的核心思想,为什么需要自动化特征提取、为什么需要非线性变化以及为什么需要深度神经网络,可以参见内容「深度学习线性回归入门:多项式回归与神经网络建模基础」 的介绍。在思想上的理解,对于我们为什么需要从机器学习转向深度学习是很有帮助的。


关键术语:

  • 激活函数(Activation function)
  • 隐藏层(Hidden layer)
  • 线性模型(Linear model)
  • 模型(Model)
  • 神经网络(Neural network)
  • 节点(Nodes)
  • 非线性(Nonlinear)
阅读 --