Skip to content

92.卷积神经网络面试题 ​

来源:语雀原文 | 整理日期:2026-09-22

常见面试题 ​

  1. 卷积神经网络概述
  2. 卷积神经网络的结构
  3. 卷积神网络中的超参数
  4. 感受野 Receptive Field
  5. CNN总结

1 卷积神经网络概述 ​

1.1 什么是卷积? ​

如果去网上搜什么是“卷积”,可能会看到对于两个连续函数f(x)和g(x),其一维连续卷积为:

但其实不懂这个公式的具体含义,丝毫不影响理解卷积神经网络!本文档不会很详细的去解释什么是卷积、卷积的数学含义,好奇的朋友可以参考知乎的这一页:【知乎】如何通俗易懂地解释卷积?,前几个答案都还不错。

我们只需要知道:在机器学习中,卷积通常用于处理具有局部相关性的数据,例如图像、音频和文本等,就足够了。

1.2 图像处理中的卷积 ​

1.2.1 为什么需要卷积? ​

• 我们前面用MNIST去训练一个MLP来识别数字的时候,其实就已经在做一个图像处理了。但这里存在一个问题,即全连接层的结构实在是太复杂了。光是上面例子中28*28像素的黑白手写数字,就让我们有13002个参数要去学习。那如果用苹果手机随便拍一张1200万像素、彩色的照片呢(彩色就无法用0~1的灰度来表示了,而需要把一张图片分为三层,分别代表R、G、B)?如果这种时候还用MLP的结构,那模型会复杂到难以想象!

• 为了解决这个问题,一个很自然的想法就是对输入的图片做压缩,从繁多的像素中分区域提取最重要的特征。

1.2.2 图解CNN中的卷积过程 ​

在图像处理中,卷积通常通过在输入图像上滑动一个小的窗口(Sliding Window),称为卷积核或滤波器,对输入图像的像素进行逐点计算。卷积核包含了一组权重参数,它对应于滑动窗口中的每一个位置,通过对输入图像的局部区域进行加权求和来生成输出特征图。参考下图,下图我们对一个5*5像素的图片,选取了一个3*3大小的卷积核,以1为步长,对原图片进行了卷积操作,提取出了一个特征图。在下面的案例中,我们采用的卷积核的权重参数为:

;最后我们得到了特征图.

#想象如果我们用一个2*2的卷积核,其他保持不变;那么最终得到的特征图就是一个4*4**的矩阵了!

这种局部计算的方式使得卷积能够捕捉到输入图像的局部特征,例如边缘、纹理和形状等。

1.2.3 定义卷积神经网络 ​

卷积操作在深度学习中被广泛应用于卷积神经网络(Convolutional Neural Networks, CNNs),这是一种包括卷积层和池化层的神经网络,专门用于图像识别、图像生成和图像处理等任务。卷积在CNNs中的作用类似于特征提取器,能够从输入图像中提取有用的特征,并通过后续的神经网络层来进行进一步的处理和分类。

2 卷积神经网络的结构 ​

典型的CNN包括两个部分:

(1)卷积基,由卷积层和池化层的堆栈组成。卷积基的主要目的是由图像生成特征。

(2)分类器,通常是由多个全连接层组成的。分类器的主要目标是基于检测到的特征对图像进行分类。全连接层是其中的神经元与前一层中的所有激活神经元完全连接的层。

在一个CNN输入层、卷积层、池化层、全连接层中,卷积层负责提取特征,池化层负责压缩特征,最后的若干全连接层往往构成一个分类器。(这部分后面我们讲迁移学习的时候会再次提到)

2.1 卷积层 Convolutional Layer ​

卷积层(Convolutional Layer)是其中的一个主要组件,主要用于从输入数据中提取特征。卷积层通过应用卷积操作对输入数据进行滤波,从而通过学习到的卷积核(也称为滤波器或过滤器)提取出输入数据的局部特征。

  1. 卷积操作(Convolution):卷积操作是卷积层的核心操作。它通过将卷积核与输入数据进行逐元素相乘,并将相乘的结果进行累加,从而生成卷积特征图(也称为卷积输出或特征映射)。卷积操作可以捕捉输入数据的局部信息,例如边缘、纹理、形状等。

  2. 激活函数(Activation Function):卷积层通常会在卷积操作之后应用激活函数,对生成的卷积特征图进行非线性变换。常用的激活函数包括ReLU(Rectified Linear Unit)、sigmoid、tanh等,用于引入非线性特性,从而增加网络的表达能力。

填充(Padding):填充是卷积操作中的一种技术,可以在输入数据的周围添加额外的像素或特定的值,从而扩展输入数据的尺寸。填充可以防止在卷积过程中输入数据尺寸的缩小,有助于保留边缘信息、减小特征图的尺寸变化,并且可以改善网络对输入图像边缘区域的处理能力。

  1. 步长(Stride):步长是卷积操作中的另一种技术,控制卷积核在输入数据上的滑动步长。较大的步长可以减小特征图的尺寸,从而降低计算复杂度,但可能会导致信息的丢失和分辨率的降低;较小的步长可以保留更多的局部信息,但会增加计算复杂度。

2.2 池化层 Pooling Layer ​

池化层(Pooling Layer)用于在特征图上进行下采样(Downsampling)。池化操作通常在卷积操作之后,可以帮助网络降低特征图的空间尺寸,并减少网络的参数数量,从而降低计算复杂度。

2.2.1 图解池化层: ​

参考下图,对于一个20*20的特征图,我们选择了一个10*10的池化窗口,且池化步长为10,最后我们下采样得到了一个2*2的矩阵。

2.2.2 池化类型: ​

池池化层可以使用不同类型的池化操作,如最大池化(Max Pooling)、平均池化(Average Pooling)、全局平均池化(Global Average Pooling)等。一般来说我们都采用最大池化,即池化窗口中最大的一个元素,就是最后我们保留下来的元素。

2.2.3 池化层的主要功能: ​

  1. 下采样(Downsampling):池化层通过将特征图上的一组相邻像素值合并为一个代表性的值,从而降低特征图的尺寸。这样可以减小模型的计算复杂度,并且有助于提取局部特征。

  2. 特征选择(Feature Selection):池化层通过在一组像素值中选择一个最代表性的值,如最大值(Max Pooling)或平均值(Average Pooling),来减少特征图的维度。这样可以帮助网络选择最重要的特征,并降低噪音对特征提取的干扰。

平移不变性(Translation Invariance):池化层在特征图上进行局部合并操作,使得网络对输入图像的小平移变化具有一定的不变性。这有助于网络学习到更加鲁棒的特征表示,从而提高模型的泛化能力。

3 卷积神网络中的超参数 ​

1 卷积核尺寸 Kernel Size ​

卷积核是卷积操作中的滤波器,用于从输入数据中提取特征。卷积核尺寸定义了卷积窗口的大小,通常为一个正方形或矩形的尺寸。

• 较小的卷积核可以捕获细节信息;

• 而较大的卷积核可以捕获更大尺度的特征。

2 滑动窗口步长 Stride ​

步长是卷积操作中卷积窗口在输入数据上滑动的距离。较大的步长可以减小特征图尺寸,加快计算速度,但可能会导致信息丢失。

3 边缘填充 Padding ​

**填充(**Padding)是卷积神经网络中的一种操作,通过在输入特征图周围添加额外的像素值,从而扩展输入数据的尺寸,使得输出特征图的尺寸与输入的原特征图相同或者相似。

填充可以避免边缘像素信息在卷积操作中丢失。在没有填充的情况下,卷积核只能在输入特征图的内部进行卷积操作,导致边缘像素的信息无法得到充分的利用。通过填充操作,卷积核可以在特征图的边缘进行卷积操作,从而保护边缘信息。

4 卷积核的个数 Number of Kernels ​

网络中每个卷积层可以有多个卷积核,用于提取不同的特征(这和我们后文会提到的Transformer的多头注意力机制,每头注意力会去提取不同的特征,有异曲同工之妙!)。卷积核数量定义了卷积层中的滤波器数量,决定了卷积层的输出特征图的通道数。

4 感受野 Receptive Field ​

4.1 什么是感受野? ​

• **感受野(Receptive Field)**是指在卷积神经网络中,某一层的输出特征图上的每个像素点在输入图像上所对应的区域大小。感受野的大小决定了该层的感知范围,即网络在该层能够接收到的输入信息的范围。

• CNN里每一层的感受野由其前一层的卷积核尺寸、步长、填充等超参数决定。通过不断堆叠多个卷积层,感受野会逐渐扩大,从而能够捕捉到更大尺度的特征。

4.2 感受野为什么重要? ​

感受野的大小对卷积神经网络的性能和特征提取能力具有重要影响。

• 较小的感受野可以捕捉到细节信息,适合处理图像中的小物体或细微纹理;

• 而较大的感受野可以捕捉到更大尺度的特征,适合处理图像中的大物体或全局结构。

• 因此,在设计卷积神经网络时,需要合理选择不同层的超参数,以获得适合任务的感受野大小。

4.3 相比于普通MLP,卷积神经网络如何减少参数的个数? ​

CNN网络中三个关键的操作,其一是局部感受野,其二是权值共享,其三是池化层,有效的减少了网络的参数个数,缓解了模型的过拟合问题。

5 CNN总结 ​

模型多层感知器 MLP卷积神经网络 CNN
模型结构
类型与架构前馈神经网络,不循环 有监督学习,依赖标注数据 每一层之间都以全连接的形式相连前馈神经网络,不循环 通常是有监督学习,依赖标注数据 架构包括输入层、卷积层、池化层、全连接层。卷积层提取特征,池化层压缩特征。
优缺点优点:具有较强的非线性建模能力;可以进行端到端的学习;可以并行计算 缺点:容易陷入局部最优;容易过拟合; 全连接的结构太过复杂优点:卷积层通过使用局部感知性的卷积操作,可以有效地捕捉输入数据中的局部特征;在卷积层中,卷积核的参数在整个输入上是共享的,大大减少了需要学习的参数数量;高度可并行化;池化层进行下采样,减小特征图的尺寸,降低模型复杂性 卷积神经网络非常适合用于图像识别,其高性能和易训练的特点是最近几年CNN流行的两个主要原因
可调节超参数Batch Size,学习率,迭代次数,激活函数,网络结构(层数、神经元数量等),正则化等。Batch Size;学习率,迭代次数,激活函数,网络结构,正则化,卷积核大小;卷积核数量;窗口滑动步长;边缘填充;池化层的类型、池化窗口大小和池化步长