因为扫盲,所以先了解流程和各类名词,我是先在B站看了www.bilibili.com/video/BV1VV… 及系列视频,大概明白CNN是什么,但是这个时候要是问我有关CNN的问题,依然回答不上来,所以让AI出问答题,假如面试官提问,我该如何回答
第一部分:宏观理解(The Big Picture)
Q1: 请简单介绍一下你对CNN(卷积神经网络)的理解?
面试场景: 这是一个开场白,考察你是否能用通俗的语言概括复杂的技术。
参考回答: CNN,全称卷积神经网络,是目前处理图像数据(如计算机视觉任务)最主流的深度学习模型。 CNN看物体时,不是一下子处理所有像素,而是先捕捉局部特征(比如边缘、线条),然后层层向上汇总,组合成形状,最后识别出物体。
从结构上讲,它主要由卷积层(提取特征)、池化层(压缩数据/降维)和全连接层(分类/输出)组成。它的核心优势在于参数共享和局部连接,这使得它比传统神经网络更适合处理高维的图像数据。
第二部分:核心组件与细节(The Nuts and Bolts) Q2: 什么是卷积(Convolution)?卷积核(Kernel/Filter)起什么作用?
参考回答:
卷积本质上是一个特征提取的过程。 卷积是 CNN 的核心操作,它使用一个卷积核(也称为滤波器)在输入图像上进行滑动扫描,并进行逐元素相乘再求和的运算(点积)。 不同的卷积核负责提取不同的特征。比如,有的核专门提取垂直边缘,有的提取水平边缘。浅层的核提取简单纹理,深层的核提取复杂的物体轮廓。
Q: 请详细描述一下 ReLU 激活函数在 CNN 中的具体应用方式及其作用?
ReLU 是 CNN 里的特征筛选器,在卷积层后面、池化层前面工作。它的逻辑特别简单:对卷积层输出的特征图,逐像素判断 —— 正数就保留(说明这个位置检测到了有用特征,比如边缘、纹理),负数直接改成 0(相当于过滤掉无用干扰)。
它最关键的作用是给网络加‘非线性’:卷积本身是线性运算,没有 ReLU 的话,再深的网络也只能做简单的线性判断,认不出复杂物体;有了它,模型才能学出猫的尖耳朵、狗的尾巴这种复杂特征,同时还能减少计算量、缓解训练时的‘梯度消失’问题,让模型学得又快又准。”
(假设 CNN 没有 ReLU,只有卷积层(全是线性运算): 不管叠 10 层还是 100 层,本质都是 “加权求和 + 加权求和 +…+ 加权求和”,最后还是一个线性运算。 就像你把 “苹果 + 橘子” 叠 100 次,还是 “苹果 + 橘子”,永远变不成 “水果沙拉”——CNN 只能做 “简单的线性判断”(比如 “亮的地方是物体,暗的地方是背景”),根本认不出猫和狗的区别,因为猫和狗的特征是 “复杂的、非线性的”(比如 “尖耳朵在圆眼睛上面” 这种空间关系,不是线性叠加能表达的)。)
Q3: 什么是池化(Pooling)?为什么要用它?
面试场景: 考察你对网络效率和特征不变性的理解。
参考回答: 池化层通常跟在卷积层后面,主要作用是下采样(Downsampling)。最常用的是最大池化(Max Pooling)。 它的作用有三点:
减少计算量:通过减小特征图(Feature Map)的尺寸,减少后续层的参数数量,防止过拟合。
特征不变性:它能提取最显著的特征。即使图像中的物体稍微平移或旋转一点,最大池化的结果可能还是一样的,这提高了模型的鲁棒性。
扩大感受野:随着图像变小,后续卷积层能看到的原始图像区域(感受野)就相对变大了。
Q4: 什么是 Padding(填充)和 Stride(步长)?
参考回答:
Padding:是在图像边缘填充一圈像素(通常是0)。目的是为了保持特征图的尺寸,防止图像在经过多层卷积后变得太小,同时也利用了边缘的信息。 Stride:是卷积核滑动的步距。步长为1就是一格格滑,步长为2就是跳着滑。步长越大,输出的特征图越小。
Q6: 为什么处理图像要用CNN,而不是普通的全连接神经网络(DNN/MLP)?
参考回答: 主要有两个原因:
参数量爆炸:普通神经网络是全连接的。假设一张图是 像素,输入层就有100万个节点,如果下一层也是100万个节点,参数量就是1万亿,这根本无法训练。而CNN通过局部连接和权值共享(同一个卷积核扫遍全图),极大地减少了参数量。
空间结构信息:普通神经网络把图像拉平成一条向量,破坏了像素之间的空间邻域关系(比如眼睛通常在鼻子上面)。而CNN保留了图像的二维结构,能更好地利用空间信息。
先学这么多,其实小鱼书还有CNN的内容,但是我扫盲的时候小鱼书还没学到这,后续学习到有关内容再更新路线