卷积神经网络

卷积神经网络

    卷积神经网络( Convolutional Neural Networks, 简称 CNN 可以说是深度神经网络模型中的“明星 ”网络架构, 在计算机视觉方面贡献颇丰。一个标准的卷积神经网络架构主要由卷积层、 池化层和全连接层等核心层次构成, 卷积层、池化层和全连接层不仅是搭建 卷积神经网络的基础,也是我们需要重点掌握和理解的内 容。如图所示左边为全连接神经网络,右边为卷积神经网络。
在这里插入图片描述
    卷积神经网络的组成:输入层、卷积层、激活函数、池化层、全连接层。下面分别讲解各个组成。

卷积层

    卷积层( Convolution Layer) 的主要作用是对输入的数据进行特征提取 ,而完成该功能的是卷积层中的卷积核( Filter)。 我们可以将卷积核看作一个指定窗口大小的扫描器 ,扫描器通过一次又一次地扫描输入的数据,来提取数据中的特征。 如果我们输入的是图像数据 ,那么在通过卷积核的处理后,就司以识别出图像中的重要特征了。
    那么,在卷积层中是如何定义这个卷积核的呢?卷积层又是怎样工作的呢?下面通过 一个实例进行说明 。 假设有一张32×32×3的输入图像,其中32×32指图像的高度×宽度, 3 指图像具有 R、 G、 B 三个色彩通道, 即红色( Red )、 绿色( Green)和蓝色( Blue ),我们定义一个窗口大小为 5×5的卷积核,其中5×5指卷积核的高度×宽度, 3指卷积核的深度,对应之前输入图像的R、 G、 B 三个色彩通道,这样做的目的是当卷积核窗口在输 入图像上滑动时,能够一次在其三个色彩通道上同 时进行卷积操作。在定义卷积核的深度时,只要保证与输入图像的色彩通道一致就可以了,如果输入图像是3个色彩通道的,那么卷积核的深度就是3;如果输入图像是单色彩通道的,那么卷积核的深度就是1,以此类推。 如下图一和图二展示了单通道图像的卷积
                                       在这里插入图片描述
                                                              图一
在这里插入图片描述
                                                            图二
    从图二中看出,输入的是一张原始图像,中间的是卷积核,图中显示的是卷积核的一 次工作过程,通过卷积核的计算输出了一个结果,其计算方式就是将对应位置的数据相乘然后相加,如下所示:
在这里插入图片描述
    下面,根据我们定义的卷积核步长对卷积核窗口进行滑动。卷积核的步长其实就是卷积核窗口每次滑动经过的图像上的像素点数量,如图三所示是一个步长为 2 的卷积核经过一次滑动后窗口位置发生的变化。
在这里插入图片描述
                                                                图三
    如果我们仔细观察,则还会发现在图三中输入图像的最外层多了一圈全为0的像素, 这其实是一种用于提升卷积效果的边界像素填充方式。
    通过对卷积过程的计算,我们可以总结出一个通用公式,在本书中我们统一把它叫作卷积通用公式,用于计算输入图像经过一轮卷积操作后的输出图像的宽度和高度的参数, 公式如下:
在这里插入图片描述
    其中 ,通用公式中的W和H分别表示图像的宽度(Weight)和高度( Height)的值; 下标 input 表示输入图像的相关参数:下标 output 表示输出的图像的相关参数;下标filter 表示卷积核的相关参数:S表示卷积核的步长 ;p (是 Padding 的缩写〉表示在图像边缘 增加的边界像素层数,如果图像边界像素填充方式选择的是Same模式,那么P的值就等 于图像增加的边界层数,如果选择的是 Valid 模式,那么 P=0。
    下面看一个具体的实例 。 输入一个 7×7× 1的图像数据,卷积核窗口为 3×3× 1,输入图 像的最外层使用了1层边界像素填充,卷积核的步长stride 为1,这样就可以得到W_input = 7,H_input=7,W_filter = 3,H_filter = 3,P=1,S=1,根据公式可以得到W_output = H_ouput= (7-3+2*1)/1+1=7。
    我们己经了解了单通道的卷积操作过程,但是在实际应用中一般很少处理色彩通道只 有一个的输入图像,所以接下来看看如何对三个色彩通道的输入图像进行卷积操作,三个色彩通道的输入图像的卷积过程如图 四所示。
在这里插入图片描述
                                                                 图四
    在卷积过程中我们还加入了一个值为 1的偏置,其实整个计算过程和之前的单通道的卷积过程大同小异,我们可以将三通道的卷积过程看作三个独立的单通道卷积过程,最后将三个独立的单通道卷积过程的结果进行相加,就得到了最后的输出结果 。

池化层

    卷积神经网络中的池化层可以被看作卷积神经网络中的一种提取输入数据的核心特 征的方式,不仅实现了对原始数据的压缩,还大量减少了参与模型计算的参数,从某种意义上提升了计算效率 。 其中, 最常被用 到的池化层方法是平均池化层和最大池化层,池化 层处理的输入数据在一般情况下是经过卷积操作之后生成的特征图 。 如图五所示是一个 最大池化层的操作过程。
                    在这里插入图片描述
                                                            图五
    池化层也需要定义一个类似卷积层中卷积核的滑动窗口,但是这个滑动窗口仅用来提取特征图中的重要特征,本身并没有参数。这里使用的滑动窗口的高度× 宽度是 2×2,滑动窗口的深度和特征图的深度保持一致。如图五所示是对单层特征图进行的操作,并且滑动窗口的步长为 2。
    下面来看看这个滑动窗口的计算细节 。 首先通过滑动窗口框逃出特征图中的数据,然后将其中的最大值作为最后的输出结果。图五中左边的方框就是输入的特征图像,即原特征图,如果滑动窗口是步长为2的2×2窗口 ,则刚好可以将输入图像划分成4部分,取每部分中数字的最大值作为该部分的输出结果,便可以得到图六中右边的输出图像 ,即目标特征图 。第1个滑动窗口框边的4个数字分别是 1、1、 5、 6,所以最后选出的最大的数字是6;第2个滑动窗口框选的4个数字分别是 2、 4、 7、 8,所以最后选出的最大的数字是8,以此类推,最后得到的结果就是6、8、 3、40。
    在了解最大池化层的工作方法后,我们再来看另一种常用的池化层方法,如图六所 示是一个平均池化层的操作过程。

在这里插入图片描述
                                                    图六
    平均池化层的窗口、步长和最大池化层没有区别,但平均池化层最后对窗口框边的数据使用的计算方法与最大池化层不同。平均池化层在得到窗口中的数字后,将它们全部相加再求平均值,将该值作为最后的输出结果 。如果滑动窗口依旧是步长为2的 2×2 窗口, 则同样刚好将输入图像划分成 4 部分,将每部分的数据相加然后求平均值, 并将该值作为该部分的输出结果,最后得到图六中右边的输出图像,即目标特征图 。第1个滑动窗口框选的4个数字分别是1、 1、 5、6,那么最后求得平均值为 3.25 并将其作为输出结果 ;第 2 个滑动窗口框选的 4 个数字分别是2、 4、 7、 8,那么最后求得平均值为5.25并将其 作为输出结果,以此类推, 最后得到的结果就是3.25 、 5.25、 2、 2。
    通过池化层的计算,我们也能总结出一个通用公式,在本书中我们统一把它叫作池化通用公式 , 用于计算输入的特征图经过一轮池化操作后输出的特征图的宽度和高度:
在这里插入图片描述
    其中, W和H分别表示特征图的宽度和高度值,下标input 表示输入的特征图的相关参数,下标output表示输出的特征图的相关参数,下标filter表示滑动窗口的相关参数, S表示滑动窗口的步长,并且输入的特征图的深度和滑动窗口的深度保持一致。

全连接层

    全连接层的主要作用是将输入图像在经过卷积和池化操作后提取的特征进行压缩 , 并且根据压缩的特征完成模型的分类功能。 如图七所示是一个全连接层的简化流程。
在这里插入图片描述
                                                            图七
    其实全连接层的计算比卷积层和池化层更简单,如图七所示的输入就是我们通过卷积层和池化层提取的输入图像的核心特征,与全连接层中定义的权重参数相乘,最后被压缩成仅有的10个输出参数, 这10个输出参数其实已经是一个分类的结果,再经过激活函数的进一步处理,就能让我们的分类预测结果更明显 。 将10个参数输入到Softmax激活函数中,激活函数的输出结果就是模型预测的输入图像对应各个类别的可能性值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值