购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 卷积神经网络的基本概念和基本结构

2.3.1 卷积神经网络的基本概念

卷积神经网络(Convolutional Neural Network,CNN)是一种模拟生物视觉系统的人工神经网络。与传统的全连接神经网络相比,CNN在处理具有网格结构的数据时表现出色,特别擅长处理图像数据。在深度学习领域的发展中,CNN在图像分类、目标检测、图像融合等任务上取得了显著的成就。CNN的基本概念源于对生物学中视觉系统工作原理的启发,其基于卷积运算的结构能够有效地捕捉输入数据的局部特征,通过多层次的卷积和池化操作逐步提取并学习数据的抽象表示。其优势在于有效地利用局部连接、参数共享等特性,使得网络能够学到数据的层次化特征表示。随着深度学习的不断发展,CNN的不断优化和演变将继续推动计算机视觉和其他领域的发展。

卷积神经网络的基本组成部分是卷积层和池化层。卷积层的作用是通过一组可学习的滤波器(或卷积核)对输入数据进行卷积操作,从而提取数据的局部特征。池化层的作用是对卷积层的输出进行下采样,从而减少参数的数量,增加网络的鲁棒性,以及获得更高层次的特征。卷积层和池化层通常交替出现,形成一个卷积神经网络的基本单元。除了卷积层和池化层,卷积神经网络中还可能包含其他类型的层,如激活层、全连接层、批量归一化层、残差连接层等。这些层的作用是为了增加网络的非线性能力,提高网络的表达能力,以及解决一些常见的优化问题,如梯度消失、过拟合等。卷积神经网络的结构可以根据不同的任务和数据进行灵活的设计和调整,以达到最佳的性能。下面将对卷积神经网络的基本结构进行简要介绍。

2.3.2 卷积神经网络的基本结构

2.3.2.1 卷积层

卷积运算是图像处理领域一种常见的特征提取方法,主要通过人工设计的卷积函数来实现,这些卷积函数也被称为卷积核(Convolution Kernel)或卷积算子(Convolution Operator)。例如,用来模拟偏导的差分运算算子——罗伯特算子、索贝尔算子和用来平滑图像降低噪声的高斯算子。卷积运算的过程:卷积核以设置好的步长在输入图像上滑动,每次滑动后卷积核中的权重系数和输入图像上对应窗口区域的像素值先相乘再求和,所得的值即作为当前滑动窗口卷积运算结果,直至卷积核在输入图像上滑动结束,图2.7展示了输入数据大小为3×3,卷积核大小为2×2,卷积核滑动步长为1,填充为0时的卷积运算过程。

图2.7 卷积运算过程

卷积运算的这种运算方式,使得每个卷积层的神经元之间可以采用稀疏连接的方式,具体来说,当输入为一个具有多维通道数的特征图时,每维通道特征图上的所有神经元共享一个卷积核。在网络的正向传播过程中,卷积核在特征图上滑动进行卷积操作,然后得到该通道对应的卷积输出。卷积核的权值共享使神经网络模型的训练参数减少很多,使得网络模型的复杂度降低。此外,相比全连接提取特征的方式,卷积核这种窗口滑动提取特征的方式可以保留特征的空间位置信息,对特征信息提取更为全面,能使神经网络模型的性能更佳。

卷积层是卷积神经网络中的基本层之一,用于处理输入数据的特征提取。该层通过卷积操作提取图像特征。在计算过程中,卷积核 w 在输入数据 x 上按照一定的步长 S 进行滑动,每次计算出重叠部分的点积和,将其存储在输出特征图的相应位置。

卷积的计算公式为

式中, x 表示输入矩阵; w c 表示 c 通道对应的卷积核参数; 表示对卷积核的相应未知遍历,求卷积核参数与输入矩阵对应位置元素的乘积并相加; 表示对多通道卷积核获得的多通道输出结果图求和得到最终的卷积输出结果图。

卷积层的这种特征的计算方式,使得不同的卷积层之间的神经元不是全部连接的,即让卷积层的参数(卷积核)在不同的空间位置共用。这种方式相较于全连接层显著减少了参数的数量,使模型的参数利用效率更高。并且卷积运算拥有平移不变性的特点让卷积神经网络对于图像中特定信息空间位置的改变有一定的鲁棒性,有利于图像处理任务的实现。

2.3.2.2 池化层

池化层常会在连续卷积层的间隔中出现,用于减小卷积层输出特征的尺寸,作用是既可以在网络模型下一层的计算中减少参数量及降低模型复杂度,又可以对特征图进行聚合,从而将一些不必要的信息去除。池化层的核心思想是利用图像的局部区域的相似性,仅使用一个特征值对这个局部区域的所有值进行代替。池化层不包含可训练参数,因此其计算速度很快。池化层的主要作用是提取特征并减小特征图大小,通过减小特征图的大小,可以降低卷积神经网络的计算成本,防止过拟合,并且可以将特征图中的位置信息模糊化,提高模型的平移不变性。池化层通常在卷积层之后使用,可以根据需求进行多次堆叠。

常见的池化操作有平均池化操作和最大池化操作。平均池化操作是对滑动窗口所覆盖的特征区域取平均值,最大池化操作是对滑动窗口所覆盖的特征区域取最大值。因此,最大池化操作在一定程度上能够保留更多的边缘信息和纹理特征,而平均池化操作则更加适用于一些图像平滑的应用场景。以最大池化操作为例,图2.8所示为该操作的计算过程,当池化窗口的大小是2×2时,该区域的输出为2×2滑动窗口中对应特征区域的像素最大值。

图2.8 平均池化操作和最大池化操作示意图

在视觉任务中,池化层可以有效地减小特征图的大小,提取图像的抽象特征,同时有助于增强模型对平移和旋转变化的鲁棒性。但是,在一些需要保留空间信息的任务中,如目标检测和语义分割等,使用过多的池化层可能会导致信息丢失,因此对池化层的应用应该权衡其利弊。

2.3.2.3 激活层

在设计卷积神经网络模型时,人们希望这些模型可以拥有非线性的特征提取能力,而卷积层是一个线性的函数,如果仅通过卷积层的堆叠来构建模型,那么最终得到的还是一个线性模型。因此在大多数卷积神经网络模型中,每一层卷积层的输出往往会送入一个非线性函数来使模型拥有非线性的特征表达能力。在对于卷积神经网络的研究中,这个非线性函数一般被称为激活函数。

激活层是由激活函数构成的,常用的激活函数有Sigmoid激活函数、Tanh激活函数和ReLu激活函数等,其函数表达式分别如式(2.19)、式(2.20)和式(2.21)所示。

式中, x 为激活函数的输入值。可以注意到Sigmoid激活函数和Tanh激活函数都用到了自然常数的指数方程:Sigmoid激活函数会将输出映射在0到1之间,可以被解释为概率值。同时此函数的导数相对容易计算,可以用于反向传播算法更新参数,但是在梯度消失问题上表现不佳,会导致训练过程变慢,并且输出不是以0为中心的,会导致训练过程中的权重更新不平衡;Tanh激活函数输出在-1到1之间,具有以0为中心的特点,有助于神经网络的稳定性,在梯度更新时比Sigmoid激活函数表现更好,但是Tanh激活函数也存在梯度消失问题,会导致训练过程变慢。ReLu激活函数计算速度快,有利于使用GPU进行并行计算,在梯度更新时不会出现饱和现象,可以加速训练过程,输出以0为中心,有助于神经网络的稳定性,因此ReLu激活函数是最常使用的卷积神经网络的激活函数。

Sigmoid激活函数可以用于二分类,但是当神经网络层数有很多时,使用该激活函数易产生梯度消失或梯度爆炸。Tanh激活函数会使网络的收敛速度更快,然而也存在梯度消失或梯度爆炸的隐患。ReLu激活函数计算非常简单而且可以加快网络的收敛,近年来在深度学习中被广泛使用。图2.9所示为激活函数图像。

图2.9 激活函数图像

2.3.3 卷积神经网络之图像融合识别典型模型

2.3.3.1 图像融合典型模型

图像融合旨在将两幅或多幅图像合并,期望获得一幅具有重要信息和更好视觉效果的融合图像。随着卷积神经网络的兴起,图像融合算法也逐渐由传统的基于手工提取特征的算法发展到如今基于深度学习的算法。下面简要介绍图像融合任务的四个典型模型:MLCNN模型 [9] 、DenseFuse模型 [10] 、FusionGAN模型 [11] 和U2Fusion模型 [12]

(1)MLCNN模型。

MLCNN模型于2018年由ZHAO W等人提出,他们首次提出了一种基于CNN的端到端自然增强的多聚焦图像融合方法,设计了一种基于多层次特征提取的联合卷积神经网络,其利用浅层网络提取低频内容,利用深层网络提取高频细节,有效地融合和增强了高频细节。在卷积提取特征时,低级特征提取可以捕获低频内容,但是以丢失高频细节为代价的;高级特征提取则专注于高频细节,但当涉及低频内容时会受到限制。MLCNN模型使用多层次特征提取来适当地合并不同级别的输出,以便可以提取和融合视觉上最鲜明的特征。

MLCNN模型的体系结构如图2.10所示,可以将其进一步分为三个模块:特征提取模块、特征融合模块,以及增强、重建模块。

图2.10 MLCNN模型的体系结构

在特征提取模块中,MLCNN模型将提取的特征分为了 D 个层次级别,不同级别由低到高包含了不同频率的特征细节。具体而言,MLCNN模型共使用8个层次级别的特征提取(图中 D 取8),并对所有权重层使用64个大小为3×3的卷积核。此外,还采用了零填充法来保持输出特征图的空间大小匹配。训练采用小批梯度下降法优化回归目标,批大小为128。卷积层中的所有卷积核都采用Xavier方法进行初始化。

在特征融合模块中对特征的每个级别执行特征融合操作,以融合相应级别的特征。特征融合的公式为

式中, 表示第 d 级( d =1,2,…, D )特征的融合特征图; 分别表示第 d 级特征的卷积滤波器和偏置; 表示输入图像对的第 d 级特征被连接成一个双通道特征映射。

在增强、重建模块中,将所有重建和增强的图像连接成一个多通道特征图,然后将该多通道特征图输入一个卷积层,得到最终的输出为

式中, W final b final 分别表示最终输出的卷积滤波器和偏置; D 表示特征层次级别的数量。

MLCNN模型通过多级深度监督重建,有 D +1个目标需要进行优化:监督重建过程中包括增强的 D 个输出,以及1个最终的输出,重建输出采用L2范数进行优化。

式中, X n 为输入图像对; Y n 为真值; 为从融合特征中重建和增强的图像。

对于最终的输出,有以下公式:

式中, W b 分别表示对应的卷积滤波器和偏置。

模型的总损失为

式中, α t 为正则化系数,控制了这两项之间的权衡,随时间衰减 D 个输出的重建损失权重项,使最终重建结果的权重更大。

(2)DenseFuse模型。

DenseFuse模型于2019年由LI H等人提出。在介绍DenseFuse模型之前,将简要介绍DeepFuse模型 [13] ,因为DenseFuse模型可以看成是基于DeepFuse模型的改进。

DeepFuse模型图像融合网络架构如图2.11所示。该模型有三个组成部分:特征提取层、融合层和重建层。在特征提取层中,将欠曝光和过曝光的图像( Y 1 Y 2 )输入单独的通道(通道1由C11和C21组成,通道2由C12和C22组成)。第一层(C11和C12)包含5×5的卷积核,以提取低级特征,如边缘和角。第二层(C21和C22)包含7×7的卷积核。C11和C12(C21和C22)共享相同的权值。在融合层中,来自两幅图像的相似特征类型被融合在一起。随后将融合后的特征输入重建层C3、C4和C5中,分别经过卷积核为7×7、5×5、5×5的卷积层后生成融合的图像。

LI H等人认为DeepFuse模型中的网络结构过于简单,且没有用到所有层的信息,只用到了最后一层的输出,丢失了一部分信息,进一步提出了DenseFuse模型。具体而言,相较于DeepFuse模型,DenseFuse模型是将DeepFuse模型的卷积核替换成3×3的卷积核,并将前面部分的卷积网络替换成Dense Block进行改进。

图2.11 DeepFuse模型图像融合网络架构

DenseFuse模型整体架构如图2.12所示,同样采用编码器-解码器结构,同时引入了Dense Block用于特征提取。

图2.12 DenseFuse模型整体架构

编码器用C1和Dense Block来提取深度特征。C1包含3×3的卷积核来提取粗糙特征,Dense Block(密集块)包含三个卷积层(每层的输出级联作为下一层的输入),其中包含3×3的卷积核。对于编码器中的每个卷积层,特征图的输入信道为16个。解码器部分包含4个卷积层(均采用3×3卷积核)。其中融合层的输出作为解码器的输入。

训练阶段的目的是训练具有更好特征提取和重构能力的自动编码器网络(编码器,解码器)。损失采用SSIM损失:

式中,SSIM()表示结构相似度,代表两幅图像的结构相似度; O I 分别代表输出图像和输入图像。

在训练阶段,只考虑编码器和解码器(融合层被丢弃),尝试训练编码器和解码器以重建输入图像。固定编码器和解码器权重后,采用自适应融合策略融合编码器获得的深层特征。

(3)FusionGAN模型。

FusionGAN模型于2019年由MA J等人提出,面向任务是红外图像和可见光图像的融合。由于红外图像和可见光图像融合没有真值,用生成对抗网络(Generative Adversarial Networks,GAN)则可以避免监督学习需要真值约束带来的问题。MA J等人将融合视为保留红外图像热辐射信息和保留可见光图像纹理信息之间的博弈,生成器主要生成兼具红外图像亮度和可见光图像梯度的融合图像,判别器用于将更多可见光图像细节融入融合图像中。

如图2.13所示,首先将红外图像和可见光图像进行拼接,再送入生成器,输出得到融合图像,这一步主要目的是让融合图像兼具红外的温度信息和可见光图像的梯度信息。判别器以融合图像与可见光图像作为输入,这一步的目的是区分融合图像与可见光图像。

图2.13 FusionGAN原理图

在生成器与判别器对抗过程中,融合图像中保留的可见光图像梯度信息逐渐增多。训练过程中生成器与判别器都进行参数更新,测试过程只给生成器送入数据,得到的融合图像就是最终的结果。

如图2.14所示,生成器总共包含5个卷积层,第一、二层使用5×5的卷积核,第三、四层使用3×3的卷积核,第五层使用1×1的卷积核,每层卷积步长都为1,不使用填充,输入是拼接后的红外图像和可见光图像。

图2.14 FusionGAN生成器结构

如图2.15所示,判别器同样是5个卷积层,前四层都是3×3的卷积核,步长设置为2。为了避免引入噪声,只在输入的第一层给图像加了填充。第二层~第四层加入了批归一化。前四层的激活函数为ReLu,最后一层为线性层用于分类。

图2.15 FusionGAN判别器结构

网络损失包括生成器损失函数和判别器损失函数。其中,生成器损失函数包含两项,一项是生成器和判别器之间的对抗损失,另一项用于约束融合图像获得兼具红外图像温度信息和可见光图像梯度信息。

式中, λ 为权重系数。 V FusionGAN L content 分别表示为

式中, 为融合图像; N 为融合图像的数量; c 为生成器希望判别器相信的值; H W 分别为输入图像的高度和宽度;||||为矩阵弗罗比尼乌斯范数; 为梯度算子。

判别器损失是可见光图像的判别损失和融合图像的判别损失之和:

式中, a b 分别表示融合图像 I f 和可见光图像 I v 的标签。

(4)U2Fusion模型。

U2Fusion模型于2020年由XU H等人提出,正如DenseFuse模型是在DeepFuse模型上做出的改进,U2Fusion模型则在DenseFuse模型的基础之上更进一步,提出采用保护度的方式用于保护源图像的自适应相似性。XU H等人考虑到融合任务中源图像包含信息不一致的问题,提出了通过提取浅层特征(纹理、局部形状等)和深层特征(内容、空间结构等)来估计信息度量。

U2Fusion模型的结构如图2.16所示。其中DenseNet网络(模型结构详见2.3.3.2节)用于融合图像,特征提取模块用于提取上述的浅层特征和深层特征。然后对这些特征进行信息度量,产生两个度量值,最后经过信息保护度处理得到信息保护度的值,这两个值用于损失函数中,从而避免了融合任务中无真值的问题。

图2.16 U2Fusion模型的结构

训练阶段通过计算信息保护度的值用于定义损失函数,而DenseNet网络则用于优化该损失函数。在训练阶段只需要DenseNet网络用于获得最终的融合结果。

特征提取模块使用预训练的VGG-16网络作为特征提取器,其结构如图2.17所示。输入被统一为单通道,然后复制为三通道并送入网络。网络中每个池化层的前一卷积层输出的特征图作为后续信息度量的输入。前几层获取浅层特征,学习纹理和形状细节,后几层更多地学习深层特征,如空间结构和上下文信息。具体而言,通过五层卷积层依次获得大小为( B ,224,224,64)、( B ,112,112,128)、( B ,56,56,256)、( B ,28,28,512)、( B ,14,14,512)的特征图,其中 B 代表批大小。随着卷积层的深入,特征图大小逐渐减小,通道数逐渐增加。

图2.17 U2Fusion特征提取器结构

信息度量模块定义为提取得到的特征的梯度:

式中, 为第 j 个最大池化层前的卷积层绘制的特征图; k D j 通道的第 k 个通道中的特征图;||||为矩阵弗罗比尼乌斯范数; Δ 为拉普拉斯算子。

信息保护度模块根据信息度量为两幅源图像分配两个自适应权重,定义两幅源图像间信息度量值通过softmax函数映射到0到1之间的两个权重值:

式中, 分别代表通过式(2.34)计算得到的信息度量值。

训练阶段损失使用SIM损失:

式中, L SSIM L MSE 分别代表SSIM损失和MSE损失,由融合图像与两幅源图像计算加权得到,两幅源图像的权重则由上述信息保护度模块给出。

2.3.3.2 图像识别典型模型

目标识别任务的目的是确定目标图像的类别。随着卷积神经网络的兴起,目标检测算法由传统的手工提取特征的方法发展到基于深度学习的目标识别算法。下面简要介绍目标识别任务的四个经典网络模型:AlexNet网络 [14] 、VGGNet网络 [15] 、ResNet网络 [16] 和DenseNet [17] 网络。

(1)AlexNet网络。

AlexNet是在2012年由KRIZHEVSKY A等人提出的 [14] ,通过将卷积神经网络应用于计算机视觉任务,性能明显优于传统的机器学习算法,使得卷积神经网络在计算机神经领域掀起了一波热潮。AlexNet的结构包含一个224×224×3的输入层,5个卷积层,3个最大池化层和3个全连接层 [14] 。其中卷积层和全连接层的参数是可学习的。

具体而言,卷积层C1为96个11×11×3的卷积核、接入ReLu激活函数和池化核为3×3、步长为2的池化层。卷积层C2为256个5×5×96的卷积核、接入ReLu激活函数和池化核为3×3、步长为2的池化层。卷积层C3为384个3×3×256的卷积核、接入ReLu激活函数。卷积层C4为384个3×3×384的卷积核、接入ReLu激活函数。卷积层C5为256个3×3×384的卷积核、接入ReLu激活函数和池化核为3×3、步长为2的池化层。FC1全连接层是通过卷积实现的,具体是4096个6×6×256的卷积核。FC2为4096维的全连接层。FC3为1000维的全连接层。AlexNet结构图如图2.18所示 [14]

图2.18 AlexNet结构图

同时,AlexNet利用了非线性激活函数(ReLu激活函数) [14] ,也称为修正线性单元,作为神经元输出的激活函数。ReLu激活函数的作用是为网络引入非线性拟合的能力,如果没有ReLu激活函数的作用,当前卷积层的输入是上一卷积层的输出或线性变化,则网络始终呈线性,这种情况下网络的拟合能力将十分有限。

ReLu激活函数公式为 f x )=max(0, x )。实验表明,这种非饱和ReLu激活函数能够训练的收敛速度明显高于饱和ReLu激活函数能够训练的收敛速度,如 f x )=(1 + e -x -1 f x )=tanh( x )。ReLu激活函数相较于其他激活函数而言实现起来更加简单。

(2)VGGNet网络。

VGGNet是由牛津大学于2014年提出的卷积神经网络 [15] 。其结构与AlexNet的结构非常相似,但是VGGNet深度要比AlexNet深度深。其中使用最多的是VGGNet16网络结构,其结构如图2.19所示。其主要的创新点是首先证明了适当增加网络深度能够提高网络的性能;其次是通过堆叠小尺寸的卷积核来代替大尺寸的卷积核,在保持相同感受野的情况下,网络深度加深,网络的非线性增加,提升了网络性能。具体而言,VGGNet16的网络结构为2个3×3通道数为64的卷积层Conv1和Conv2,最大池化层MaxPooling1,2个3×3通道数为128的卷积层Conv3和Conv4,最大池化层MaxPooling2,3个3×3通道数为256的卷积层Conv5、Conv6和Conv7,最大池化层MaxPooling3,3个3×3通道数为512的卷积层Conv8、Conv9和Conv10,最大池化层MaxPooling4,3个3×3通道数为512的卷积层Conv11、Conv12和Conv13,最大池化层MaxPooling5,2个维度为4096的全连接层和1个维度为1000的全连接层。

图2.19 VGGNet16网络结构

(3)ResNet网络。

通过VGGNet网络,我们知道了通过加深网络深度能够提高网络的性能,但是这种提高并不是无限制的。当网络过深时容易造成梯度消失或梯度爆炸的现象,导致网络性能急剧下降。为了缓解这种现象,HE K等人于2015年提出残差神经网络ResNet [16] 。其中最重要的创新是提出了残差连接单元,在很大程度上缓解了梯度消失或梯度爆炸现象。残差连接单元如图2.20所示。其中 g x )是上一层输出特征,假设学习到的特征为 h x )= f g x )) +g x ),其中 f g x ))表示输出特征和原始数据的残差。

图2.20 残差连接单元

如果不加入残差结构,那么将输出关于 x 求导后得到的式(2.35)。因为梯度往往服从正态分布,随着网络深度的增加,梯度将会渐渐趋近于零,导致出现梯度消失的现象。

如果加入残差结构,那么求导公式如式(2.36)所示。因为等式第二项的存在,当多层网络叠加时,将缓解出现梯度消失的现象。

以ResNet18网络结构为例,如图2.21所示。具体而言Conv1卷积块包含一个带有64个7×7卷积核的卷积层;Conv2卷积块包含两个残差连接块,每个残差连接块包含2个带有64个3×3卷积核的卷积层,通道数为64;Conv3卷积块包含两个残差连接块,每个残差连接块包含2个带有128个3×3卷积核的卷积层,通道数为128;Conv4卷积块包含两个残差连接块,每个残差连接块包含2个带有256个3×3卷积核的卷积层,通道数为256;Conv5卷积块包含两个残差连接块,每个残差连接块包含2个带有512个3×3卷积核的卷积层,通道数为512;最后接入一个全连接层,维度为1000。

图2.21 ResNet18网络结构

(4)DenseNet网络。

通过ResNet网络的启发,我们了解了通过短路连接的方式,可以在一定程度上避免网络因为深度加大而产生的退化现象。为了最大化这种前后层信息的流通,HUANG G等人在2016年设计了一种密集连接的卷积网络DenseNet [17] 。通过建立前面所有层和后层特征的密集连接,实现了更加密集的信息流通,进一步缓解了出现梯度消失的现象。同时损失梯度通过密集连接能够较快到达前层网络,在参数与计算量更小的情况下,实现了比ResNet网络更优的性能。

其中DenseNet网络是由基本模块Dense Block组成的,Dense Block结构图如图2.22所示。在该结构中,前面所有卷积层输出的特征图通过通道维度拼接的方式输入该层卷积层,从而实现密集连接的操作。DenseNet网络的主要优点:一是能够实现更强的信息流通,分类层的误差信号能够较早传播到前面的卷积层,从而对前面的卷积层实现直接监督;二是能够减少参数量,通过密集连接的方式,卷积核的通道数可以减小;三是保存了低维度的特征,通过密集连接的方式,模型能够利用低维度的特征,从而得到更加平滑的决策边界,提高识别的准确率。

图2.22 Dense Block结构图 gJM1jgMBf/LDndlWn6dPoZOysx3G08QIlVk5CH/B7UiJwrVx2VjXmteZ/9P+KGex

点击中间区域
呼出菜单
上一章
目录
下一章
×