1.卷积神经网络基本结构结构
卷积神经网络采用类似于动物视觉皮层组织中的神经元的连接模式,是一类包含卷积神经网络且具有深度结构的前馈神经网络。其基本结构如图2-1所示,大致包括:卷积层,激活函数,池化层,全连接层,输出层。
(图1-1 传统神经网络结构)
输入层:输出尺寸为W1*H1*3(3表示RGB图像对应通道),其作用是作为卷积神经网络的原始输入,一般是原始或预处理后的像素矩阵。
卷积层:输出尺寸为W1*H1*K(K表示卷积层中卷积核(滤波器)的个数),用于实现参数共享,局部连接,利用平移不变性从全局特征图提取局部特征。
激活层:输出尺寸为W1*H1*K,用于将卷积层的输出结果进行非线性映射
池化层:输出尺寸为W2*H2*K(W2*H2为池化特征图的尺寸,在全局池化中对应为1*1),池化层可用于进一步筛选特征,可以有效减少后续网络所需要的参数量,在降低数据维度的同时防止过拟合。
全连接层:输出尺寸为(W2*H2*K)*C (W2*H2*K是将多维特征压缩到一维之后的大小,C对应图像类别个数),将多维特征展平为二维特征,通常低维度对应任务的学习目标。
2.专业名词
在连接卷积神经网络结构之前我们应该先了解以下几个概念“
①特征图(feature map ):即中间激活层的输出,每个卷积层的输出都是该层的特征图,他们可以被进一步处理和传递到后续的层中。特征图的大小和数量取决于卷积核的大小和数量,以及卷积的步长和填充方式等参数。又名通道(channel)【强调输入输出时就叫通道,强调图片经过神经网络运算后发现的特征就叫特征图】
在输入层中,如果输入为灰度图像,则为单通道,如果为彩色图片则为RGB图像则为三通道(红绿蓝)
【灰色图像像素值取值在0~255之间,因为灰度图像使用一个字节进行存储,1字节=8Bit, 2^8=255,所以可以表示0~255的值。】
②感受野(receptive field):这一概念来自生物神经科学,是指感觉系统中任一神经元,其所受到的感受器神经元的支配范围。在深度学习中指的是卷积神经网络每一层输出的特征图(feature map)上的像素点映射回输入图像上的区域大小。(在深度学习中,图像的输入常常以像素值的二维数组的方式存在,而网络不能一次处理整张图片,因此只能一次处理整张图的一部分,而每次处理的数据区域即为感受野)
感受野的计算:
感受野的大小取决于网络的结构以及每层的卷积核大小和步幅
在一些简单的网络结构中,可使用下列公式进行计算感受野:
其中Ri表示第i层的感受野,Ki是第i层的卷积核的大小,Fi-1是第i-1层的步幅,R0是输入图象的初始感受野。
每一层的感受野都是由前一层传递而来,它随着网络的深度逐渐增大,这也是卷积神经网络能够有效捕捉输入图像中不同层次特征的原因之一。
③权值共享:卷积神经网络里,提取图像特征等操作时,是由卷积核(本质是一个二维矩阵)实现的。给定一张照片,用一个卷积核去对其进行扫描,此时,卷积核中的数就叫权重,这张图片每个位置都是被同样的卷积核扫描的,所以权重是一样的,也就是共享
④过滤器(卷积核):卷积核也称过滤器,每个卷积核具有长,宽,深(通道)三个维度,在进行编程时,卷积核的长宽是由人为指定的,卷积核尺寸一般为3*3,5*5等奇数,卷积核的深度与当前图像深度相同(例如,输入彩色图像则其通道数即深度为3,此时卷积核的深度也为3)。
如果卷积核的深度与输入图像的通道数不匹配,就无法进行逐元素相乘,因为尺寸不匹配。匹配深度确保了每个通道之间的逐元素相乘是有意义的,从而使网络能够学习在不同通道上的特征表示
【注意区分:卷积核的深度和卷积网络的层数:】
-
卷积核的深度: 卷积核的深度指的是卷积核在每个位置上与输入数据进行卷积时,涉及的通道数。如果输入数据是三维的,比如一个彩色图像,那么卷积核的深度必须与输入数据的通道数相匹配,以确保逐元素相乘的操作是有效的。
-
卷积网络的层数: 卷积神经网络由多个层组成,每个层可以包括卷积层、池化层、全连接层等。层数表示网络的深度,即网络中层的数量。每一层可能包含多个卷积核,每个卷积核的深度是独立的,但是所有卷积核在某一位置的深度都必须与上一层的输出的通道数相匹配。
因此,卷积核的深度是指卷积操作中涉及的通道数,而卷积网络的层数表示整个网络的深度,由多个层堆叠而成。在CNN中,网络的深度通常是通过不同类型的层的叠加来实现的,而不是通过增加单个卷积核的深度。
3.卷积操作
在信号处理领域,卷积是两个变量(其中一个变量经过翻转、位移)在某范围内相乘后求和的结果。
而在深度学习中卷积概念与之相似,可以理解为f(t)是图像像素值,而g(x-t)则是卷积核,它规定如何影响图像(选择或对其当前像素值)从而起到筛选图像特征的作用
卷积操作实现过程如下图,卷积核(过滤器,filter)以一定的步长在输入图像上进行滑动。每一步都与对应元素相乘后求和(下图中先对应相乘再求和的过程:1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1=4)
4.池化操作
池化操作用来降低卷积神经网络的特征图维度,在卷积神经网络中,池化操作通常紧跟在卷积操作之后,用于降低特征图的空间大小。
池化操作的基本思想是将特征图划分为若干个子区域(一般为矩形),并对每个子区域进行统计汇总。池化操作的方式可以有很多种,比如最大池化(Max Pooling)、平均池化(Average Pooling)等。其中,最大池化操作会选取每个子区域内的最大值作为输出,而平均池化操作则会计算每个子区域内的平均值作为输出。
池化操作与卷积操作区别:池化层没有卷积核,仅将感受野中像素进行平均/取最大值的操作,并进行移动和遍历感受野。
5.全连接操作
全连接层定义:全连接层又称密集连接层,它可以将输入特征与每个神经网络之间的权重进行矩阵乘法和偏置加法,从而得到输出结果。
在全连接层中,每个神经元都连接到前一层的所有神经元。如果前一层有 n 个神经元,全连接层就有 n 个权重(连接权重)和 n 个偏置项(bias)。每个连接都有一个权重,这些权重和输入神经元的输出相乘后再求和,再加上对应的偏置项。这个结果经过激活函数后得到该神经元的输出。在训练过程中,神经网络通过反向传播算法来优化每个神经元的权重和偏置,从而使得输出结果能够更好地拟合训练数据。
全连接层的作用:全连接层的作用是将输入特征映射到输出结果,通常在神经网络的最后一层使用,用于分类、回归等任务。全连接层的输出结果可以看作是对输入特征的一种非线性变换,这种变换可以将输入特征空间映射到输出结果空间,从而实现模型的复杂性和非线性拟合能力。
-
特征组合: 全连接层能够学习不同输入之间的复杂组合,从而捕捉输入之间的非线性关系。
-
表示变换: 全连接层通过学习权重和偏置,可以将输入数据映射到更高维度的表示空间,有助于网络学习更复杂的特征。
-
分类决策: 在分类问题中,全连接层的输出通常用于最终的分类决策。输出层的神经元数目对应着分类的类别数,每个神经元对应一个类别的概率。
-
模型的最终输出: 在某些网络结构中,全连接层通常是网络的最后一层,它的输出被用作整个模型的最终输出。
全连接层的计算:
设前一层的输出为x1,x2,...,xn,权重为 w1,w2,...,wn,偏置为 b,激活函数为 f,那么全连接层中一个神经元的输出 y 可以通过以下公式计算:
y=f(w1⋅x1+w2⋅x2+...+wn⋅xn+b)