神经网络与深度学习课程笔记(1)
1. 多层前馈网络与BP算法
1.1. XOR问题:线性不可分的挑战
-
问题描述:异或(XOR)函数的四个点
{(0,0)→0,(0,1)→1,(1,0)→1,(1,1)→0}无法用一条直线分开两类。 -
单层感知机局限:单层感知机本质是线性分类器,只能解决线性可分问题。XOR 的决策边界必须是非线性曲线,因此单层感知机无法收敛。
-
推动发展:XOR 问题直接暴露出浅层网络的局限性,促使人们引入隐藏层,发展出多层感知机(MLP)。
1.2. 多层感知机 (MLP) 结构
-
网络组成:输入层 → 一个或多个隐藏层 → 输出层。
-
连接方式:层与层之间全连接,神经元内部通常包含非线性激活函数(如 Sigmoid、ReLU 等)。
-
加入隐藏层的意义:隐藏层通过非线性变换,将原始空间映射到新的特征空间,使线性不可分问题变得可分,能够逼近复杂的非线性函数。
1.3. 通用逼近定理
-
定理指出:仅需一个包含足够多神经元的单隐藏层前馈网络,就能以任意精度逼近任意定义在紧致子集上的连续函数。
-
虽然“三层网络”在理论上足够,但实践中深层网络往往能更高效地提取层次化特征,参数利用更有效。
1.4. BP算法(误差反向传播算法)
BP 算法是训练多层前馈网络的核心,它由正向传播和反向传播两个过程交替进行。
1.4.1. 正向传播
-
输入信号从输入层开始,逐层计算加权和并通过激活函数,最终得到预测输出。
-
计算每层的净输入:
-
激活输出:
,
为激活函数。
-
最终输出与标签比对得到损失(误差),如均方误差:
1.4.2. 反向传播与梯度计算
-
基本思想:利用链式法则将误差的梯度从输出层逐层向前传递,计算各层参数的梯度。
-
定义误差项
为损失对第 ll 层净输入 z(l)z(l) 的偏导:
-
输出层的误差项(以平方误差 + Sigmoid 输出为例):
-
隐藏层反向递推:
,其中
表示逐元素相乘。
1.4.3. 权值更新核心公式
-
有了误差项后,计算损失对权重和偏置的梯度:
-
权重梯度:
-
偏置梯度:
-
-
核心增量式更新(梯度下降):
对应原始笔记中的简化形式:
其中:-
:学习率,控制更新步长。
-
:当前层神经元的误差项(后向传来的“责任”)。
-
:前一层神经元的激活输出(正向传播时的输入信号)。
-
-
更准确符号:对连接权重
(从神经元
到
),更新量为
(注意符号习惯,取决于误差定义,部分教材采用
的形式,但本质相同,只需统一符号约定)。
1.5. 优点
-
非线性拟合能力强:理论上可逼近任意复杂函数。
-
自主学习特征:无需手工设计特征,网络通过训练自动学习输入到输出的映射。
-
适应性强:可处理分类、回归等多种任务。
1.6. 缺点与挑战
-
收敛速度慢:尤其使用 Sigmoid 等饱和激活函数时,梯度消失现象严重,浅层参数更新缓慢。
-
局部最优问题:损失函数高度非凸,梯度下降容易陷入局部极小值,得不到全局最优解。
-
网络设计困难:隐藏层数、每层神经元数、学习率等超参数缺乏系统性指导,依赖经验试错。
-
梯度不稳定:梯度消失或梯度爆炸让深层 BP 网络难以训练(后期被 ReLU、BatchNorm、残差连接等解决)。
1.7. 常用数据集
-
MNIST:手写数字灰度图 28×28,10 类,深度学习入门必备。
-
Fashion-MNIST:服饰鞋包灰度图 28×28,10 类,复杂度略高于 MNIST,常用于算法基准测试。
2. 卷积神经网络 (CNN) 基础
2.1. 全连接网络处理图像时的问题
-
参数爆炸:若输入224×224×3的图像,全连接第一层有1000个神经元,参数量就达224×224×3×1000≈1.5224×224×3×1000≈1.5亿,极易导致过拟合且计算量极大。
-
丢失空间结构:全连接将图像展平为一维向量,忽略了像素间的二维邻域关系。
-
训练缓慢:巨大参数量使前向反向计算开销极大,收敛困难。
2.2. CNN 核心思想
-
局部连接:每个神经元只连接上一层的一个局部区域(感受野),模拟生物视觉皮层细胞。
-
权值共享:同一特征图的所有神经元使用相同的卷积核(滤波器)参数,极大地减少参数量,同时使提取的特征具有平移等变性。
-
层级特征提取:浅层提取边缘、纹理等低级特征,深层逐步组合成更高级的语义特征(形状、物体部件等)。
2.3. 核心概念详解
2.3.1. 卷积
-
通过一个可学习的卷积核(滤波器)在输入特征图上滑动,计算元素乘积累加和,生成输出特征图的一个像素。
-
每个卷积核提取一种局部特征模式,多个卷积核得到多通道特征图。
-
输出尺寸计算(无 padding、stride=1):
设输入尺寸,卷积核大小
,输出
尺寸。
2.3.2. Padding(边界填充)
-
在输入四周补零(或其它值),使得输出尺寸可控。
-
Same Padding:使输出尺寸与输入尺寸相同(常通过
实现,结合stride=1)。
-
作用:保留边缘信息,避免尺寸迅速缩小。
2.3.3. Stride(步长)
-
卷积核移动的步幅。步长越大,输出尺寸越小,计算量越低。
-
输出尺寸通用公式:
2.3.4. 多通道卷积
-
输入为多通道(如 RGB 图像的 3 通道)时,卷积核的通道数与输入通道数一致。
-
每个卷积核所有通道的计算结果按位置相加,得到一个单通道输出特征图;使用 KK 个这样的卷积核,输出便有 KK 个通道。
2.3.5. Pooling(池化)
-
降采样操作,压缩特征图尺寸,减少参数量,防止过拟合,提高感受野不变性。
-
最大池化:取窗口内最大值,保留最显著特征,反向传播时梯度只传给最大值位置。
-
平均池化:取窗口内平均值,使特征更平滑,反向传播时梯度平均分配到窗口内各位置。
-
常见配置:2×2 窗口,stride=2,输出尺寸减半。
2.4. 典型 CNN 结构
输入图像 → [卷积层 → 激活函数 → 池化层] × N → 全连接层 → 输出(分类)
-
多次卷积+池化逐步提取高层语义,最后展平向量经全连接层完成分类。
-
现代网络常在卷积后加入 Batch Normalization,并使用全局平均池化替代部分全连接层。
2.5. CNN 的反向传播
2.5.1. 卷积层误差回传
-
计算卷积核梯度:误差图
与第
层的激活输出
进行卷积(有效卷积),得到损失对卷积核的梯度。
-
向前层回传误差:将误差图
与旋转180度的卷积核进行全卷积(或转置卷积),得到传递给前层的误差
,用于继续传播。
-
本质上仍是链式法则,只是用卷积操作高效实现。
2.5.2. 池化层误差回传
-
最大池化:在前向传播时记录每个池化窗口内最大值的位置(通过 argmax 实现);反向传播时,将上游梯度直接填入对应的最大值位置,其余位置置零。
-
平均池化:将上游梯度平均分配,每个位置获得
/池化窗口元素数。
-
池化层没有可学习参数,仅负责传递梯度。
2.6. 经典 CNN 架构演化
2.6.1. LeNet-5 (1998)
-
结构:输入32×32 → 卷积(6@5×5) → 平均池化(2×2) → 卷积(16@5×5) → 平均池化(2×2) → 卷积(120@5×5) → 全连接(84) → 输出(10)
-
特点:浅层网络,参数极少,采用 Sigmoid/tanh 激活;开创了卷积+池化+全连接的基本范式,主要用于手写数字识别。
2.6.2. AlexNet (2012)
-
重大改进:
-
使用 ReLU 激活函数,有效缓解梯度消失,加速训练。
-
Dropout 随机失活全连接层神经元,显著抑制过拟合。
-
数据增强(随机裁剪、水平翻转等)扩充训练样本。
-
双 GPU 并行训练,突破显存限制。
-
-
让深度学习在 ImageNet 竞赛中取得压倒性优势,开启卷积神经网络时代。
2.6.3. VGG (2014)
-
核心哲学:全部使用小卷积核(3×3),通过堆叠更多层来增加网络深度。
-
两个 3×3 卷积堆叠的感受野等价于一个 5×5 卷积,但参数量更少且非线性更强。
-
典型 VGG16:13个卷积层 + 3个全连接层,结构规整,但全连接层参数仍然较大。
-
证明深度对性能至关重要。
2.6.4. ResNet (2015)
-
残差连接:输出
-
通过跳跃连接(shortcut),将输入直接加到堆叠层的输出上,网络学习的是残差映射
。
-
解决退化问题:即使深层网络不学习新东西,残差连接也可保证性能不退化(恒等映射);同时梯度可通过 shortcut 直接流入浅层,极大缓解梯度消失,使训练上百层甚至千层网络成为可能。
-
常用瓶颈结构(1×1→3×3→1×1)减少计算量。
2.7. 网络演化规律
随着网络层数加深,经典 CNN 在设计上呈现出高度一致的规律:
-
深度 ↑:从 LeNet(5层)到 ResNet(152层),深度大幅增加。
-
特征图尺寸 ↓:多次池化或步长为2的卷积使空间分辨率逐渐降低。
-
通道数 ↑:早期通道数少,后期通道数增多(如 64→128→256→512),用更多的抽象特征图补偿空间信息的减少,丰富语义表达能力。
3. 对比总结:MLP vs CNN
| 对比维度 | 多层感知机 (MLP) | 卷积神经网络 (CNN) |
| 适用数据 | 结构化数据、特征向量、表格数据 | 网格结构数据:图像、视频、语音频谱等 |
| 连接方式 | 全连接(每个神经元与上层所有神经元相连) | 局部连接(神经元仅连接局部感受野) |
| 参数共享 | 无,每个连接有独立权重 | 卷积核在整个空间位置共享,大幅减少参数 |
| 特征提取 | 需要人工特征或原始特征 | 自动学习层次化空间特征 |
| 平移等变性 | 无(依赖训练样本分布) | 卷积操作天然具有平移等变性 |
| 参数量示例 | 输入 28×28,1000神经元 ≈ 78万参数 | 5×5卷积核6个 + 少量全连接,参数远小于MLP |
| 训练效率 | 大数据图像上易过拟合且慢 | 参数效率高,训练更快,泛化更好 |
-
MLP 的定位:擅长处理非空间结构的数据,也常用作 CNN 的最终分类头(展平后接几个全连接层)。
-
CNN 的优势:通过局部连接 + 权值共享 + 池化,以极少的参数学到平移不变的层次化特征,是处理图像、视频等领域的基础模块。参数量的巨大缩减直接降低了过拟合风险和对数据量的需求,推动了深度学习的实用化。
更多推荐




所有评论(0)