Week3:网络设计及CNN

发布时间:2026/6/29 17:07:34
Week3:网络设计及CNN 本周继续学习了网络设计并初步入门了CNN卷积神经网络对网络结构的作用、原理进行了初步的了解。文章目录一、局部最小值与鞍点1.1 临界点的种类1.2 如何鉴别临界点的类型1.3 哪个更常见二、批次Batch与动量Momentum2.1 Batch 的概念2.2 Small Batch vs Large Batch2.3 Momentum动量三、自动调整学习率Adaptive Learning Rate3.1 为什么需要自适应学习率3.2 RMSProp3.3 Adam3.4 Learning Rate Scheduling四、损失函数的影响4.1 数值表示的局限性4.2 One-Hot Vector4.3 分类问题的损失函数五、批次标准化Batch Normalization一、为什么CNN用于图像处理1.1 全连接网络的问题1.2 CNN的简化思路1.3 为什么可以用更少的参数二、CNN架构三、卷积Convolution3.1 基本概念3.2 关键参数3.3 另一种理解方式四、感受野Receptive Field与参数共享4.1 感受野Receptive Field4.2 参数共享Parameter Sharing五、池化Pooling5.1 为什么需要池化5.2 Max Pooling最大池化六、Flatten压平七、CNN的局限 总结与思考网络结构设计核心要点CNN核心要点一、局部最小值与鞍点在训练神经网络时我们常常会遇到Loss不再下降的情况这通常意味着梯度趋近于零。但梯度为零并不一定意味着到达了局部最小值Local Minima也可能是鞍点Saddle Point。1.1 临界点的种类类型特点影响局部最小值Local Minima所有方向都是上升的暂时无法逃离局部最大值Local Maxima所有方向都是下降的较少见鞍点Saddle Point有些方向上升有些方向下降可以继续寻找更低点1.2 如何鉴别临界点的类型在参数θ处损失函数可以用泰勒展开近似表示L ( θ ) ≈ L ( θ ′ ) ( θ − θ ′ ) T g 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\theta) \approx L(\theta) (\theta - \theta)^T g \frac{1}{2}(\theta - \theta)^T H(\theta - \theta)L(θ)≈L(θ′)(θ−θ′)Tg21​(θ−θ′)TH(θ−θ′)其中g是梯度向量H是海塞矩阵Hessian Matrix。当梯度g 0时上式简化为L ( θ ) ≈ L ( θ ′ ) 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\theta) \approx L(\theta) \frac{1}{2}(\theta - \theta)^T H(\theta - \theta)L(θ)≈L(θ′)21​(θ−θ′)TH(θ−θ′)判断方法H 是正定矩阵所有特征值为正→局部最小值H 是负定矩阵所有特征值为负→局部最大值特征值有正有负→鞍点1.3 哪个更常见在高维空间中鞍点比局部最小值更常见。因为我们拥有大量的参数不同维度提供了更多的出路所以真正被困在局部最小值的概率很低。二、批次Batch与动量Momentum2.1 Batch 的概念将数据集分成一个个小批次Batch每次计算一个小批次的Loss和梯度然后更新参数。遍历完所有Batch称为一个Epoch轮次。每个Epoch开始前会进行Shuffle洗牌打乱数据后重新分配Batch。2.2 Small Batch vs Large Batch对比维度Small BatchLarge Batch训练速度每次更新快但迭代次数多每次更新慢但迭代次数少梯度方向较Noisy有噪声较Stable稳定训练效果更好较差泛化能力更好容易找到Flat Minima较差为什么Small Batch效果更好Full Batch的损失函数是固定的遇到局部最优点就可能卡住Small Batch每个batch的损失函数都不同一个卡住了另一个还能继续优化Small Batch更容易跳出峡谷Sharp Minima到达盆地Flat Minima泛化能力更强2.3 Momentum动量核心思想引入惯性下一次的移动方向不仅考虑当前的梯度还考虑之前所有梯度的累积。m n λ m n − 1 − η g n − 1 m^n \lambda m^{n-1} - \eta g^{n-1}mnλmn−1−ηgn−1其中λ是动量系数η是学习率。优势可以利用惯性冲出局部最小值就像物理世界中球从斜坡滚下不会被小坑卡住一样。三、自动调整学习率Adaptive Learning Rate3.1 为什么需要自适应学习率训练卡住不一定是梯度为零也可能是山谷两侧震荡的情况——梯度很大但无法下降到Loss最低点。不同的参数需要不同的学习率。3.2 RMSPropRMSProp在梯度累积时引入了衰减因子对过去与现在的梯度进行平衡。距离当前越近的梯度重要性越高越远的梯度重要性越低。3.3 AdamAdam RMSProp MomentumAdam是目前深度学习中最流行的优化方法结合了自适应梯度擅长处理稀疏梯度均方根擅长处理非平稳目标适用于大数据集和高维空间。3.4 Learning Rate Scheduling即使使用Adam在训练后期仍可能因梯度累积而出现爆发。解决方案学习率衰减随着训练进行逐步减小学习率Warm Up先让学习率从小变大再逐渐减小Warm Up在训练BERT等大型模型时经常使用——开始时学习率较小让模型熟悉数据之后再调大。四、损失函数的影响主要针对分类任务。4.1 数值表示的局限性如果用1, 2, 3表示三个类别会产生1和2更接近、1和3差距更大的误解。4.2 One-Hot Vector更好的表示方法独热编码One-Hot Vector。4.3 分类问题的损失函数交叉熵Cross-Entropy包含SoftmaxPyTorch等框架会自动在最后一层加入最大化似然Maximizing Likelihood实践建议分类问题优先使用交叉熵而非均方误差MSE因为交叉熵的梯度更有利于优化。五、批次标准化Batch Normalization批次标准化用于改变不同特征的范围Changing Landscape从而改善Error Surface的形状。作用加速训练收敛允许使用更大的学习率具有一定的正则化效果一、为什么CNN用于图像处理1.1 全连接网络的问题假设输入是一张100×100 的彩色图片每个像素有3个通道RGB则输入维度为30,000。如果隐藏层有1,000个神经元参数数量就是30,000 × 1,000 30,000,000——太多了1.2 CNN的简化思路CNN做的事就是简化神经网络的架构——根据对图像的认识某些权重用不上就直接滤掉用更少的参数来做图像处理。1.3 为什么可以用更少的参数图像处理有三个重要特性局部性某些特征如鸟嘴远小于整张图像平移不变性同样的特征如边缘会出现在图像的不同区域缩放不变性像素的缩放不会对图像造成太大影响有一定局限性二、CNN架构CNN的典型架构如下这个流程可以反复多次具体做几层Convolution和Max Pooling需要事先决定。三、卷积Convolution3.1 基本概念Filter滤波器一个h × w × channels的张量Tensor通常宽高一致且不宜过大常用3×3×channels。卷积操作将Filter放在图片的左上角Filter的9个值和图片对应位置的9个值做内积Inner Product。3.2 关键参数参数说明Stride步长Filter每次移动的距离通常设为1或2Padding填充边缘超出部分的填充方式零填充、平均值填充等Feature Map特征图谱卷积后生成的图片矩阵Channel通道Filter的通道数必须与图片的通道数一致 Filter也是有Bias的一个Filter有一个Bias。3.3 另一种理解方式CNN也可以理解为设置不同的Filter将Filter放在不同的Receptive Field做内积看图片中是否存在该Filter所代表的Pattern。四、感受野Receptive Field与参数共享4.1 感受野Receptive Field感受野是指每个神经元所看到的图像区域。经典安排方式Kernel Size3×3深度涵盖所有Channel如RGB的3个通道Stride一般为1或2Padding根据需要填充一个Receptive Field会有一组神经元来守卫。4.2 参数共享Parameter Sharing不同Receptive Field的神经元可以共享相同的参数权重和Bias。Filter 共享参数的一组神经元效果大幅减少参数数量使模型更有效且不容易过拟合。五、池化Pooling5.1 为什么需要池化池化Pooling即下采样Subsample目的是缩小图片尺寸减少参数个数。5.2 Max Pooling最大池化最常见的池化策略将Feature Map进行分组每组中只取最大值其他全部丢弃。⚠️注意Pooling是选择性使用的并非所有CNN都必须包含Pooling层。六、Flatten压平完成所有Convolution和Max Pooling后将得到的矩阵拉直Flatten成一个向量。然后将这个向量输入到全连接前馈网络Fully Connected Feedforward Network中得到最终的图像识别结果。七、CNN的局限CNN虽然强大但也有明显的局限性泛化能力较差对图片的缩放、旋转等变换可能无法准确识别如果只用某种特定尺寸的图片训练CNN可能无法识别缩放后的同一张图片 这也是后来数据增强Data Augmentation和Transformer架构在视觉领域兴起的原因之一。 总结与思考网络结构设计核心要点技巧核心思想局部最小值 vs 鞍点高维空间中鞍点更常见可通过Hessian矩阵鉴别BatchSmall Batch训练效果和泛化能力更好Momentum引入惯性帮助逃离局部最小值自适应学习率RMSProp、Adam等算法动态调整学习率损失函数分类任务优先使用交叉熵Batch Normalization改变特征分布加速收敛CNN核心要点概念核心思想CNN设计动机利用图像特性局部性、平移不变性大幅减少参数感受野神经元只关注图像的局部区域参数共享不同区域的神经元共享相同参数Filter卷积Filter与图像区域做内积提取特征池化下采样缩小图片尺寸减少参数Flatten将矩阵拉直后接入全连接层