一、BP 神经网络(多层前馈网络与误差反传算法)

1.1 多层感知机(MLP)

  • 解决的核心问题:突破单层感知机的线性分类局限,解决 XOR 等线性不可分问题。Minsky 在 1969 年提出 XOR 问题,证明单层感知机无法处理此类任务。
  • 网络结构:在输入层和输出层之间加入一层或多层隐单元,构成多层前馈神经网络。三层感知机(输入层 + 单隐层 + 输出层)即可解决 XOR 问题。
  • XOR 问题的具体解决方案

    • 三层感知机通过以下权值和阈值即可实现异或逻辑:

      • 隐层节点 1:y1^[1] = f (1・x1 + 1・x2 - 0.5)
      • 隐层节点 2:y2^[1] = f (-1・x1 - 1・x2 + 1.5)
      • 输出层节点:y = f (1・y1^[1] + 1・y2^[1] - 1.2)其中激活函数为阶跃函数:f (x) = 1,当 x≥0 时;f (x) = 0,当 x<0 时
    • 核心定理的精确表述

      1. 定理 1:若隐层节点可任意设置,用三层阈值节点的网络,可以实现任意的二值逻辑函数。
      2. 定理 2(通用逼近定理):若隐层节点可任意设置,用三层 S 型非线性特性节点的网络,可以一致逼近紧集上的连续函数或按\(L^2\)范数逼近紧集上的平方可积函数。

1.2 BP 算法基本原理

BP(误差反向传播)算法是有导师学习算法,是梯度下降法在多层前馈网络中的应用,由正向传播反向传播两个阶段组成:

  1. 正向传播:输入信号从输入层经隐层传向输出层,若输出层得到期望输出则学习结束;否则转入反向传播。
  2. 反向传播:将样本输出与网络输出的误差按原连接通路反向计算,通过梯度下降法逐层调整各节点的权值和阈值,使误差减小。

1.3 BP 算法详细推导(基于 Sigmoid 激活函数)

  • 符号定义:网络共 L 层(输入层为第 0 层,输出层为第 L 层);a[l]为第 l 层激活输出,z[l]为第 l 层线性输出;wij[l]​表示第 l 层第 i 个节点与第 l-1 层第 j 个节点的连接权值;损失函数采用均方误差J=21​(y−y^​)2。
  • 输出层权值更新误差项:δi[L]​=ai​(1−ai​)ei​(ei​=yi​−ai​为输出误差)权值更新:Δwij[L]​=α⋅δi[L]​⋅aj[L−1]​(α为学习率)
  • 隐含层权值更新误差项:δi[l]​=[∑j=1m​wji[l+1]​δj[l+1]​]⋅ai[l]​(1−ai[l]​)权值更新:Δwij[l]​=α⋅δi[l]​⋅aj[l−1]​
  • 算法流程:初始化权值→正向传播计算输出→计算损失函数→反向传播逐层计算误差并更新权值→重复直到损失小于阈值。

1.4 BP 算法评述

  • 优点:学习过程完全自主;可逼近任意非线性函数;具有较强的泛化能力。
  • 缺点:算法非全局收敛,易陷入局部极小值;收敛速度慢;学习率α的选择缺乏理论指导;网络结构(层数、节点数)设计依赖经验。

二、深度学习平台与 PyTorch 基础

2.1 主流深度学习平台对比
库名 发布者 支持语言 易用性 大规模训练能力 定位区间
PyTorch Facebook Python/C++ 4 星 4 星 理想选择区
JAX Google Python 2 星 5 星 实用但门槛高
TensorFlow Google Python/C++/Java 3 星 3 星 入门友好区
Keras Google Python 3 星 1 星 入门友好区
PaddlePaddle 百度 Python 3 星 3 星 特定场景区
MindSpore 华为 Python 2 星 3 星 特定场景区
DeepSpeed Microsoft Python 2 星 5 星 实用但门槛高
  • 行业现状:目前约 80% 的学术研究采用 PyTorch,包括 Google 等机构
  • 大模型训练框架:GPT 系列使用 PyTorch+OpenAI 自研系统,Gemini 使用 JAX+TPU,通义千问使用 PyTorch+Megatron-LM/DeepSpeed
2.2 PyTorch 核心概念与基本使用
  • 核心数据结构:张量(Tensor),是多维数组的泛化,支持 GPU 加速计算
  • 核心组件
    1. Dataset 和 DataLoader:用于高效加载和预处理数据
    2. nn.Module:用于构建神经网络模型
    3. 自动微分机制:自动计算梯度,无需手动推导反向传播

三、卷积神经网络(CNN)基础

3.1 全连接网络的局限性与 CNN 的优势
  • 参数爆炸问题:输入为 1000×1000 图像、隐层有 1M 个节点时,输入到隐层的参数数量达 1×10^12 量级
  • CNN 的核心思想
    1. 局部连接:每个神经元只与上一层的局部区域连接,模拟人类视觉系统的感受野
    2. 权值共享:同一特征图的所有神经元共享同一组卷积核参数,大幅减少参数数量
  • 神经生理学依据:1981 年 Hubel 和 Wiesel 的诺贝尔生理学奖成就表明,人类视觉系统首先对原始图像进行不同方向的滤波(卷积)
3.2 CNN 的基本组件详解
  • 卷积层

    • 数学定义:z^l = Σ(从 u=0 到 p)Σ(从 v=0 到 q)a^[l-1](x+u, y+v)・w^l,k
    • 关键参数
      • 卷积核大小:常用 3×3、5×5
      • 填充(Padding):在特征图边界填充 0,保持输出尺寸不变
      • 步长(Stride):卷积核滑动的步长,控制输出尺寸衰减
      • 通道数:输出特征图的数量,每个通道对应一个卷积核
    • 多通道卷积:对 RGB 等多通道输入,每个通道使用独立卷积核,最终结果相加
  • 池化层

    • 作用:降低特征图维度,减少计算量,增强特征的平移不变性
    • 平均池化:取窗口内所有元素的平均值
    • 最大池化:取窗口内所有元素的最大值,目前更常用
3.3 CNN 的误差反向传播
  • 池化层误差反传

    1. 平均池化:误差均匀分配到上一层对应窗口的所有神经元,系数为 1/(p×q)(p×q 为窗口大小)
    2. 最大池化:误差仅传递到上一层窗口中最大值对应的神经元,其余位置为 0
  • 卷积层误差反传

    1. 误差项计算:将后一层的误差与翻转 180 度后的卷积核进行卷积操作
    2. 权值梯度计算:将误差与输入特征图进行卷积操作

      三、卷积神经网络(CNN)基础

      3.1 全连接网络的局限性与 CNN 的优势
    3. 参数爆炸问题:输入为 1000×1000 图像、隐层有 1M 个节点时,输入到隐层的参数数量达 1×10^12 量级
    4. CNN 的核心思想
      1. 局部连接:每个神经元只与上一层的局部区域连接,模拟人类视觉系统的感受野
      2. 权值共享:同一特征图的所有神经元共享同一组卷积核参数,大幅减少参数数量
    5. 神经生理学依据:1981 年 Hubel 和 Wiesel 的诺贝尔生理学奖成就表明,人类视觉系统首先对原始图像进行不同方向的滤波(卷积)
    6. 3.2 CNN 的基本组件详解
    7. 卷积层

      • 数学定义:z^l = Σ(从 u=0 到 p)Σ(从 v=0 到 q)a^[l-1](x+u, y+v)・w^l,k
      • 关键参数
        • 卷积核大小:常用 3×3、5×5
        • 填充(Padding):在特征图边界填充 0,保持输出尺寸不变
        • 步长(Stride):卷积核滑动的步长,控制输出尺寸衰减
        • 通道数:输出特征图的数量,每个通道对应一个卷积核
      • 多通道卷积:对 RGB 等多通道输入,每个通道使用独立卷积核,最终结果相加
    8. 池化层

      • 作用:降低特征图维度,减少计算量,增强特征的平移不变性
      • 平均池化:取窗口内所有元素的平均值
      • 最大池化:取窗口内所有元素的最大值,目前更常用
    9. 3.3 CNN 的误差反向传播
    10. 池化层误差反传

      1. 平均池化:误差均匀分配到上一层对应窗口的所有神经元,系数为 1/(p×q)(p×q 为窗口大小)
      2. 最大池化:误差仅传递到上一层窗口中最大值对应的神经元,其余位置为 0
    11. 卷积层误差反传

      1. 误差项计算:将后一层的误差与翻转 180 度后的卷积核进行卷积操作
      2. 权值梯度计算:将误差与输入特征图进行卷积操作

四、经典卷积神经网络模型详解

4.1 LeNet-5(1998)
  • 提出者:Yann LeCun 等人,主要用于手写数字识别

  • 特点:卷积时不进行填充;使用平均池化;激活函数为 Sigmoid 或 tanh;输出层使用欧式径向基函数(RBF)

4.2 AlexNet(2012)
  • 意义:在 ImageNet 竞赛中取得突破性成绩,标志着深度学习在计算机视觉领域的复兴

  • 核心改进

    1. ReLU 激活函数:替代 Sigmoid,解决梯度消失问题,收敛速度提高 6 倍
    2. Dropout:在全连接层使用,以概率 p 随机关闭神经元,防止过拟合
    3. 数据增强:随机裁剪、水平翻转、光照变换,扩充训练集
    4. 局部响应归一化(LRN):增强模型的泛化能力(现已较少使用)
    5. 重叠池化:池化核大小 3×3,步长 2,比非重叠池化效果更好
    6. 双 GPU 并行训练:将网络分为两部分,分别在两个 GPU 上运行,仅在特定层通信
  • 性能:在 ImageNet LSVRC-2010 竞赛中,top-1 错误率 37.5%,top-5 错误率 17.0%,远超之前的传统方法

4.3 VGG-16(2014)
  • 设计理念:通过堆叠多个 3×3 卷积层替代大尺寸卷积核(如 5×5、7×7),在增加网络深度的同时减少参数数量
  • 结构特点
    • 所有卷积层均使用 3×3 卷积核,步长 1,填充 1
    • 所有池化层均使用 2×2 核,步长 2
    • 共 16 层可学习层:13 个卷积层 + 3 个全连接层
    • 参数总量约 1.38 亿,其中全连接层占比超过 90%
4.4 残差网络(ResNet,2015)
  • 解决的问题:深层神经网络的梯度消失问题,使得训练上百层甚至上千层的网络成为可能

  • 梯度消失问题的数学解释对于 4 层神经网络,损失函数对第一个偏置的梯度为:∂C/∂b1 = σ'(z1)・w2・σ'(z2)・w3・σ'(z3)・w4・σ'(z4)・∂C/∂a4由于 σ'(x) ≤ 0.25 且 | wj| < 1,梯度会随着网络层数的增加指数级衰减

  • 残差块的核心思想让网络学习残差 F (x) = H (x) - x 而非直接学习映射 H (x),当 F (x) = 0 时,网络等价于恒等映射,保证了深层网络的性能不会退化

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐