神经网络:把直线揉成任何形状
Logistic 回归画不出弯,决策树只会横平竖直——神经网络补上了这块拼图。一个隐藏层就足以围出圆圈:换激活函数、调隐藏神经元数量,然后看着决策区域被反向传播一点点「揉」出来。这一页也是理解深度学习的地基:所有大模型,拆开都是这里的积木。
决策区域 · 粉色为正类
背景颜色深浅 = 网络输出的概率;边界不再是直线——这就是隐藏层 + 非线性激活带来的表达能力。
损失曲线
控制台
原理:前向传播与反向传播
多层感知机(MLP)把输入先线性变换、再过非线性激活,一层层往前算(前向传播):
a¹ = φ(W¹x + b¹) , p = σ(w²·a¹ + b²) , L = −y lnp − (1−y)ln(1−p)
训练用反向传播:把损失对输出的误差 (p − y) 乘各层导数逐层往回传,得到每个权重的梯度,再沿负梯度更新。链式法则是唯一的魔法:
δ² = p − y , δ¹ = (w² δ²) ⊙ φ′(z¹) , W ← W − η · δ ⊙ 输入
为什么需要「非线性」激活
把两层线性变换叠起来:y = W₂(W₁x + b₁) + b₂ = (W₂W₁)x + (W₂b₁ + b₂)——还是一层线性,无论叠多少层都一样。没有非线性激活,100 层网络等价于 1 层。Tanh、ReLU、Sigmoid 的任务是「掰弯」网络,让它能拟合任意连续函数——理论上一个足够宽的隐藏层就能逼近任何连续函数(万能近似定理),实践中再叠深度只是为了效率。
激活函数三兄弟
- Sigmoid:输出 (0,1),两端饱和——深层网络里逐层相乘后梯度指数级缩水(梯度消失),这就是它被逐出隐藏层的原因。
- Tanh:零中心版 Sigmoid,收敛比 Sigmoid 快些,但两端照样饱和。
- ReLU:max(0, z)。正区梯度恒为 1,彻底解决梯度消失;计算便宜。副作用是「死 ReLU」——神经元输出恒 0 就再也学不动,于是有了 Leaky ReLU、GELU 等改良。
三个值得动手验证的现象
- 激活函数决定「会不会拐弯」。把激活换成 Linear(恒等)试试——环形数据怎么训都围不起来,这就是「线性叠线性还是线性」的活教材;Tanh / ReLU 才能弯。
- 神经元够用就好。隐藏层 2 个神经元勉强划出弯边界,6 个舒舒服服,10 个开始有点「抽搐」——容量大了对噪声更敏感,过拟合的神经版。
- 异或是最快的检验。切到异或数据:单层线性模型永远只有 50% 准确率(它线性不可分),而这个两层网络能在几百轮内接近全对——1969 年 Minsky & Papert 指出感知机搞不定异或,AI 迎来「寒冬」;补上这个缺口的正是隐藏层 + 反向传播。
训练不动的排查清单
损失不降时按顺序查:① 学习率——太大震荡、太小龟速(本页 0.02–1 都能试);② 初始化——全零初始化会让对称神经元永远相同(本页用随机初始化);③ 激活——连续两层 Linear 等于白搭;④ 数据顺序——乱序喂入比按类排队收敛快(SGD 的隐性好处)。
动手实验:环形数据 + Tanh + 6 神经元训到收敛,记住形状;再换 ReLU 重训——边界会从「圆滑」变成「带棱角」,这是两种激活「掰弯方式」不同的直接证据。
知识点拆解:把神经网络学扎实
一层就够了,深是效率
万能近似定理说「一个够宽的隐藏层就能拟合任意连续函数」;深层网络不是「能表达更多」,而是「用更少的参数表达同样的函数」——深度换的是指数级的效率。
对应演示:2→6→1 结构围出圆圈反向传播 = 链式法则 + 动态规划
它不是新优化算法(优化仍是梯度下降),而是「高效算梯度」的技巧:先前向存下各层激活,再反向复用中间结果,一次遍历算完全部梯度,代价约等于两次前向。
对应演示:单步训练看损失变化梯度消失与爆炸
反向传播是连乘:每层导数<1 则指数变小(消失),>1 则指数变大(爆炸)。Sigmoid 逐层连乘是重灾区;ReLU、残差连接、BatchNorm、梯度裁剪都是对症药。
对应演示:Sigmoid+低学习率收敛显著变慢大网络的「隐式正则化」
参数比样本多却常不过拟合,是深度学习最反直觉的现象之一。SGD 的噪声、早停、Dropout、权重衰减都在帮忙——「容量大」和「过拟合」不是必然绑定的。
关键词:Dropout / 早停 / 权重衰减- MLP — 多层感知机,本页主角
- 前向传播 — 逐层算激活直到输出
- 反向传播 — 链式法则回传误差求梯度
- ReLU — max(0,z),现代网络默认激活
- 梯度消失 — 连乘让梯度指数级缩水
- 万能近似定理 — 单隐藏层足够宽即可逼近连续函数
期末高频问答
- 为什么权重不能全初始化为 0?同一层的所有神经元会收到相同梯度、永远保持相同——网络退化成单神经元。随机初始化打破对称性,让每个神经元学习不同的特征。
- 隐藏层越深越好吗?不是。太深难训练(消失/爆炸)、易过拟合、还伤解释性。深度是「用效率换表达」的工具,够用就好——本页 6 个神经元胜过 10 个。
- 「神经网络是黑箱」这话对吗?半对。它的中间表示确实难读,但梯度、激活分布、注意力图等工具让内部可以被检视;比起「黑箱」,更准确的说法是「可解释性成本更高的模型」。