问题

在transformer火起来之前,图像识别、语义分割、目标检测等相关工作中绝大部分是将CNN作为BackBone的,那为什么CNN能在图像上表现得那样出色呢?

分析

为什么图像识别领域要使用 CNN ,其实潜在意思是在问 CNN 中的卷积层与全连接层相比好在哪里?为什么这么说,因为在卷积神经网络之前,一般的网络都采用的是全连接的方式,前一层的每一个单元都对下一层的每一个单元有影响,而 CNN 中虽然存在全连接层,但是更核心的是前面用于提取特征的卷积层,所以这个问题便转换成了卷积层和全连接层的比较问题。

卷积层和全连接层的区别

  • 局部连接和权值共享:全连接层是一种稠密连接方式,而卷积层却只使用卷积核对局部进行处理,这种处理方式其实也刚好对应了图像的特点。在视觉识别中,关键性的图像特征、边缘、角点等只占据了整张图像的一小部分,相隔很远的像素之间存在联系和影响的可能性是很低的,而局部像素具有很强的相关性。这种机制既可以减少模型的参数数量,又可以提高卷积神经网络对图像等多维数据的感知能力。
  • 多层卷积操作:在卷积神经网络中,可以通过多个卷积层的堆叠与不同尺寸的池化操作来不断提取图像的高层次特征。通过多层卷积操作,神经网络可以从简单的特征(如边缘)向复杂的抽象特征(如物体的形状、纹理等)进行逐层学习。(全连接层由于参数量太大,无法做到)

所以 CNN 应用的条件一般是要求卷积对象有局部相关性,这正是图像所具备的,因此图像领域都是使用 CNN 就解释地通了。