本文是周志华《机器学习》(西瓜书)第5章 神经网络(Neural Networks)的学习笔记,涵盖本章所有核心知识点,配有通俗类比与公式推导。

1神经元模型

M-P 神经元

神经网络的基本单元模拟了生物神经元:接收多个输入信号,加权求和,经激活函数后输出。

📐 公式

y=f(i=1nwixiθ) y = f\left(\sum_{i=1}^n w_i x_i - \theta\right)

其中 f()f(\cdot)激活函数θ\theta 为偏置阈值。

常用激活函数

函数 表达式 特点
Sigmoid σ(x)=11+ex\sigma(x)=\frac{1}{1+e^{-x} } 输出 (0,1),梯度饱和问题
Tanh tanh(x)\tanh(x) 输出 (-1,1),零中心,仍有饱和
ReLU max(0,x)\max(0,x) 缓解梯度消失,计算简单,但”死神经元”问题
LeakyReLU max(αx,x)\max(\alpha x, x) 解决死神经元,α\alpha 通常很小

🍉 通俗类比

一个神经元就像公司里的决策者:听取各个下属(输入)的汇报,每个人说话分量不同(权重 wiw_i),最后自己有一个判断门槛(阈值 θ\theta)。超过门槛就拍板”通过”(激活),没超过就”搁置”(不激活)。

2感知机与多层网络

感知机(Perceptron)

最简单的神经网络:两层结构,输入层 + 输出层。激活函数为阶跃函数。只能解决线性可分问题(如 AND、OR,解决不了 XOR)。

📐 公式

y=sign(wxθ) y = \text{sign}(\boldsymbol{w}^\top \boldsymbol{x} - \theta)

⚠️ 注意事项

感知机局限性:Minsky & Papert 1969 年证明单层感知机连 XOR 都解不了,直接导致了第一次”AI 寒冬”。但多加一层就解决了——这正是多层网络的意义!

多层前馈网络

将多个神经元分层连接:输入层、隐层(可多个)、输出层。每层神经元与下一层全连接,没有同层或跨层连接。

输入层 隐层 输出层

📌 核心定义

万能近似定理:只要隐层神经元足够多,具有单个隐层的前馈网络就能以任意精度逼近任意连续函数。这给了多层网络理论上的底气。

3BP 算法(误差逆传播)

BP(BackPropagation)是训练多层网络的核心算法,它解决了”隐层没有监督信号”的难题:将输出层的误差沿网络反向传播,逐层更新权重。

输入 隐层计算 输出 计算误差 误差反向传播 **算法:标准 BP(随机梯度下降)** 1. 前向传播:计算每层输出,直到得到最终预测 2. 计算输出层误差梯度 3. 反向传播:利用链式法则逐层回传梯度 4. 更新权重:w ← w - η · ∂E/∂w 5. 对所有样本重复,直到收敛

核心公式(链式法则):
δ_j = f’(net_j) · Σ_k (w_{kj} · δ_k) — 隐层误差
Δw_{ij} = η · δ_j · x_i — 权重更新

🍉 通俗类比

BP 算法像乐团排练。先让乐团(网络)演奏一遍(前向传播),指挥听出错在哪(计算误差),然后从最后排的乐手(输出层)往前,依次告诉每个人”你这个音高了半拍”(反向传播梯度),大家各自调整(更新权重)。

标准 BP vs 累积 BP

标准 BP 累积 BP
更新频率 每个样本更新一次 读完整个训练集(一轮)更新一次
速度 更快退出 更准确的梯度方向
参数调整 需要更多轮次 达到同样精度时轮次更少

4全局最小与局部极小

神经网络的损失函数非凸,梯度下降容易卡在局部极小值。

跳出局部极小的策略

策略 思路 典型方法
多组初始参数 多跑几次,取最佳结果 Random Restart
模拟退火 以一定概率接受更差的解,概率随”温度”下降 SA
随机梯度下降 梯度本身带噪声,有助跳出(SGD 的隐藏优势!) SGD
动量 积累历史梯度,像惯性冲过局部极小 Momentum, Adam
局部极小 局部极小 全局最小 非凸损失函数曲面示意

5其他常见神经网络

网络 核心思想 特点
RBF 网络 隐层用径向基函数(如高斯)激活 单隐层,局部逼近,训练快
ART 网络 自适应谐振理论,竞争学习 可增量学习,不遗忘旧知识
SOM 网络 自组织映射,竞争型网络 无监督降维/可视化,保持拓扑结构
级联相关网络 自适应地增加隐层神经元 结构自学习,训练时固定已有权重
Elman 网络 最简单的递归神经网络(RNN) 隐层输出反馈给输入,有记忆能力
Boltzmann 机 基于能量的随机网络 受限版本 RBM 是 DBN 的基础

🍉 通俗类比

这六种网络是上世纪八九十年代的”神经动物园”。SOM 像一个自动地图绘制员——把高维数据拍到二维平面上,且相似的东西放在相近位置。Elman 网络则是有记忆的秘书——会把上次处理的上下文带到下一次。

6深度学习

典型深度学习模型 = 多层网络 + “逐层预训练” + “微调”。核心挑战:

  • 计算能力:大规模 GPU 并行
  • 训练数据:大数据时代解决了数据饥渴
  • 训练技巧:ReLU + BatchNorm + Dropout + 预训练

💡 技巧提示

西瓜书中深度学习部分强调了**逐层预训练(layer-wise pre-training)**这一关键思想:先用无监督学习逐层训练(如用 RBM 堆叠成 DBN),再把整个网络当作普通多层网络用 BP 微调。这个技巧打破了深层网络难以训练的困局。

7本章总结

神经网络核心框架 输入 → 隐层 → 输出 前向传播算误差 BP 反向传播梯度 激活函数:Sigmoid → Tanh → ReLU(现代首选) 优化困难:非凸 → 局部极小 → 模拟退火 / SGD噪声 / Momentum 深度学习 = 多层网络 + 逐层预训练 + 微调 + GPU

📝 考试高频考点

  • 感知机局限:不能解决 XOR 等线性不可分问题
  • BP 算法的链式法则推导(隐层误差的反向传播公式)
  • 标准 BP vs 累积 BP的权衡
  • 为什么神经网络的损失函数是非凸的,以及三种跳出局部极小的方法
  • Sigmoid 梯度消失问题及其解决方案(ReLU)
  • 万能近似定理的含义

📌 核心定义

一句话总结:神经网络 = 多层神经元链式堆叠 + 反向传播训练。本章内容是一切深度学习的基础——CNN、RNN、Transformer 本质上都是在此框架上添加了特定结构。