第七讲 深度学习(CNN)· 考试重点梳理
(编程题不考,核心考察填空、简答、计算三类题型,70%以上分值来自作业原题及变形)
一、整体考察优先级
- 第一优先级:作业所有计算题(卷积、池化、损失函数、残差、完整前向传播)
- 第二优先级:作业简答题(误差反向传播原理、Inception结构)
- 第三优先级:CNN各模块基础概念(填空高频考点)
二、填空题核心考点
全部为基础概念题,直接考察定义和作用,无需计算,以下为必背点:
CNN核心模块作用
- 卷积层:提取输入数据的局部特征(边缘、纹理等),通过权值共享减少参数
- 池化层:降低特征维度、减少计算量、增强特征平移/缩放鲁棒性
- 激活函数:引入非线性变换,使神经网络能拟合任意复杂函数
- 全连接层:将卷积提取的特征映射到样本标记空间,实现分类/回归
- Softmax层:将全连接层输出转化为概率分布(所有类别概率和为1)
卷积操作关键参数
- 步长(stride):卷积核每次移动的像素数,步长越大,输出尺寸越小
- 填充(Padding):在输入数据边缘补0,作用是保持卷积输出尺寸与输入一致、避免边缘信息丢失
- 卷积核大小:常用3×3(参数少、堆叠后感受野大),越大感受野越大但计算量越高
常用激活函数特点
- ReLU:
f(x)=max(0,x),优点是计算快、缓解梯度消失;缺点是存在神经元死亡问题 - Sigmoid:
f(x)=1/(1+e^-x),输出范围(0,1),易出现梯度消失,常用于二分类输出层 - Tanh:
f(x)=(e^x-e^-x)/(e^x+e^-x),输出范围(-1,1),梯度消失问题仍存在
- ReLU:
池化类型及区别
- 最大池化:取局部区域最大值,保留最显著的特征(最常用)
- 平均池化:取局部区域平均值,保留整体的背景信息
损失函数适用场景
- 二分类交叉熵损失:二分类任务
- 多分类交叉熵损失:多分类任务(作业第4题考点)
- 均方误差(MSE)损失:回归任务
- 平滑L1损失:回归任务,对异常值更鲁棒
经典网络核心
- Inception:通过多尺寸卷积核并行提取多尺度特征
- 残差网络(ResNet):通过跳跃连接解决深度网络的梯度消失和退化问题
三、简答题核心考点
全部为作业原题或直接变形,必须背诵标准答案:
1. 作业第1题:误差反向传播(BP)算法的基本原理
标准答案框架:
BP算法基于梯度下降法和链式求导法则,分为两个阶段:
- 前向传播阶段:输入数据从输入层经隐藏层逐层计算,最终得到输出层的预测结果,同时计算预测值与真实值之间的损失
- 反向传播阶段:将损失从输出层逐层向前传递,根据链式法则计算每个参数(连接权、阈值)对损失的梯度
- 参数更新阶段:根据梯度下降法,沿损失减小的方向更新所有参数
- 重复上述过程,直到损失收敛或达到最大迭代次数
2. 作业第5题:Inception的结构设计及不同感受野的实现
标准答案框架:
- 核心设计思想:解决单一尺寸卷积核感受野有限的问题,通过多分支并行卷积+池化提取不同尺度的特征,最后将所有分支的特征拼接融合,实现多尺度特征的综合利用
- 不同感受野的实现方式:
- 使用1×1、3×3、5×5等不同大小的卷积核,每个卷积核对应不同的感受野(卷积核越大,感受野越大)
- 对3×3和5×5卷积前添加1×1卷积,先降维减少计算量,再进行大尺寸卷积
- 并行添加一个最大池化分支,提取不同的特征模式
- 优势:在不显著增加计算量的前提下,大幅提升了网络的特征提取能力
3. 其他高频变形简答题
为什么神经网络必须使用非线性激活函数?
答:如果不使用非线性激活函数,无论网络多深,输出都是输入的线性组合,无法拟合非线性关系,和单层感知机的能力等价。非线性激活函数赋予神经网络强大的拟合能力。ReLU激活函数相比Sigmoid有哪些优点?
答:① 计算简单,只需判断输入是否大于0,无需指数运算;② 缓解了梯度消失问题(当输入大于0时,梯度恒为1);③ 使部分神经元输出为0,引入了稀疏性,减少了过拟合。残差网络的跳跃连接解决了什么问题?
答:解决了深度神经网络的两个核心问题:① 梯度消失/爆炸:跳跃连接将梯度直接从后层传递到前层,避免了梯度在多层传递中逐渐消失;② 网络退化问题:当网络深度增加时,性能不升反降的问题,跳跃连接让网络可以学习恒等映射,保证深层网络的性能不低于浅层网络。卷积层的权值共享有什么好处?
答:① 大幅减少网络参数数量,降低计算复杂度和过拟合风险;② 使卷积核具有平移不变性,同一个特征(如边缘)无论出现在输入的哪个位置,都能被同一个卷积核检测到。
四、计算题核心考点(100%来自作业原题)
所有计算题均为步骤分,必须写出关键计算过程,以下为每道作业题的考点、解题步骤和易错点:
1. 作业第2题:多通道卷积计算
考点:多通道卷积的计算规则(逐通道卷积后求和)、输出尺寸计算
解题步骤:
- 计算输出尺寸:输入尺寸H×W,卷积核大小k×k,步长s,填充p,输出尺寸为
(H - k + 2p) / s + 1
本题:输入4×4,卷积核2×2,步长1,填充0 → 输出尺寸为(4-2+0)/1 +1 = 3×3 - 逐通道计算卷积结果:对每个输入通道,用对应的卷积核进行卷积,得到3个3×3的中间结果
- 多通道结果求和:将3个通道对应位置的中间结果相加,得到最终的3×3输出
易错点:多通道卷积是求和,不是输出3个通道;卷积时是对应位置相乘后相加,不要搞反顺序
2. 作业第3题:最大池化计算
考点:无重叠池化、有重叠池化的计算规则
解题步骤:
- 无重叠最大池化(步长=核大小)
- 2×2无重叠:输入6×6,步长2 → 输出3×3,将输入划分为9个不重叠的2×2块,每个块取最大值
- 3×3无重叠:输入6×6,步长3 → 输出2×2,将输入划分为4个不重叠的3×3块,每个块取最大值
- 有重叠最大池化(步长=1)
- 输入6×6,核2×2,步长1 → 输出5×5,每个位置(i,j)取输入中(i,j)、(i,j+1)、(i+1,j)、(i+1,j+1)四个位置的最大值
易错点:有重叠池化的输出尺寸计算不要错;不要漏看输入矩阵的任何元素
- 输入6×6,核2×2,步长1 → 输出5×5,每个位置(i,j)取输入中(i,j)、(i,j+1)、(i+1,j)、(i+1,j+1)四个位置的最大值
3. 作业第4题:多分类交叉熵损失和平滑L1损失计算
考点:损失函数公式的应用
必背公式:
- 多分类交叉熵损失(单个样本):$L_i = -Σ(y_ik * log(p_ik))
,其中y_ik$是真实标签的one-hot编码(只有真实类别为1,其余为0) - 总交叉熵损失:$L = (L_1 + L_2) / N$(N为样本数,本题N=2)
- 平滑L1损失:$L1 = (1/N) * ΣΣ|y_ik - p_ik|$(所有元素的绝对值平均)
解题步骤:
- 对第一个样本:真实标签是第三类(y13=1),所以L1 = -log(0.7)
- 对第二个样本:真实标签是第一类(y21=1),所以L2 = -log(0.6)
- 总交叉熵损失:
L = (L1 + L2) / 2 - 平滑L1损失:计算所有
|y_ik - p_ik|的和,再除以总元素数(2个样本×3类=6)
易错点:交叉熵只计算真实类别对应的预测概率的对数,不要把所有类别都加起来;log是自然对数,不是以10为底
4. 作业第6题:残差模块的卷积输出
考点:带Padding的卷积计算、残差连接规则
解题步骤:
- 确定Padding大小:输入4×4,卷积核2×2,要保持输出尺寸与输入一致(残差连接要求尺寸相同),所以Padding=1(验证:
(4-2+2×1)/1 +1 =4) - 对输入进行Padding:在4×4输入的上下左右各补1行/列0,得到6×6的填充后输入
- 计算卷积输出:用2×2卷积核对6×6输入进行步长1的卷积,得到4×4的卷积结果
- 残差连接:将原始4×4输入与卷积输出对应位置相加,得到最终的残差输出
易错点:Padding的大小要计算正确,否则输出尺寸和输入不一致,无法进行残差相加;残差是元素级相加,不是矩阵乘法
5. 作业第7题:完整CNN前向传播计算
考点:卷积、ReLU、最大池化、平均池化、全连接、Softmax的综合应用
解题步骤(按网络顺序):
- Conv1+ReLU1
- 输入:5×5,卷积核3×3,Padding=1,步长1 → 输出5×5
- 卷积计算:逐位置计算3×3区域与卷积核的点积
- ReLU激活:将卷积输出中所有负数变为0,正数保持不变
- MaxPooling1
- 输入:5×5,池化核2×2,步长1 → 输出4×4
- 计算:每个2×2区域取最大值
- Conv2+ReLU2
- 输入:4×4,卷积核3×3,Padding=1,步长1 → 输出4×4
- 卷积计算+ReLU激活(同步骤1)
- AvgPooling2
- 输入:4×4,池化核4×4,步长1 → 输出1×1
- 计算:所有16个元素的平均值
- FC+Softmax
- 全连接层:将1×1的输出与权重矩阵相乘,得到输出向量
- Softmax:对输出向量的每个元素取指数,再除以所有元素指数的和,得到概率分布
易错点:每一层的输出尺寸要计算正确;ReLU不要漏做;平均池化是求所有元素的平均,不是最大值
五、最终复习建议
- 第一步:独立完成所有作业计算题,每道题至少算2遍,确保步骤和结果正确
- 第二步:背诵所有简答题的标准答案框架,能用自己的话复述
- 第三步:过一遍填空题的核心概念,确保每个定义都能准确说出
- 考试时计算题务必写出关键步骤,即使结果算错,步骤分也能拿到大部分
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com