卷积神经网络(Convolutional Neural Networks)介绍

本文详细介绍了卷积神经网络(CNN)的基本概念,包括卷积操作、Padding的作用、步长的影响,以及单层CNN、池化层的工作方式。通过实例展示了CNN如何从图像中提取特征,并解释了网络参数的训练过程。最后讨论了CNN的层次结构和参数分布特点。
摘要由CSDN通过智能技术生成

注:本文的图片来自于吴恩达的网络教学视频截图
https://mooc.study.163.com/course/2001281002?tid=2001392029&trace_c_p_k2=ee770e85306848b59f15b594e870218b#/info

1. 卷积操作

在这里插入图片描述

总结
1)上图示例中,输入是一张6x6的图像,与一个3x3的核(过滤器)进行卷积运算,输出是一个4x4的"特征图"。该示例演示了如何从图像中提取"垂直边缘"这一特征。这些"核"又被称为过滤器,过滤器的size一般为奇数,比如3x3、5x5、7x7等,不同的过滤器可以从输入图像中提取出不同的特征。
2)卷积运算的具体流程为:
步骤1:将过滤器的左上角对齐输入图像的左上角,然后将对应的元素进行乘法运算,再累加,最终结果被记录在输出矩阵的第一个位置。比如当过滤器在第一个位置时,卷积运算如下:10x1 + 10x0 + 10x-1 + 10x1 + 10x0 + 10x-1 + 10x1 + 10x0 + 10x-1 = 0。
步骤2:将过滤器向右移动一个固定步长(比如1个像素),再进行步骤1操作:10x1 + 10x0 + 0x-1 + 10x1 + 10x0 + 0x-1 + 10x1 + 10x0 + 0x-1 = 30。以此类推,注意,移动过滤器时保证过滤器要全部在输入图片以内,不得超过输入图像的边界。
3)设输入图像为nxn,过滤器为fxf,则输出为(n-f+1)x(n-f+1)
4)最重要的一个问题:如果将过滤器中的每个数值看作一个参数,那么这些参数将如何被确定?确定这些参数正是“训练”的目的,通过“深度学习”将确定这些参数。关于如何训练网络将在后续博文详细说明。

2. Padding操作

通过上述卷积操作可以发现2个问题:第一,当对一幅输入图像完成卷积运算以后,其输出尺寸会缩小,比如从6x6变成4x4;第二,输入图像的边缘像素参与计算次数会小于中心元素参与计算的次数,这将导致输入图像边缘位置的信息丢失。为了解决这个问题,通常的做法是在输入图像周围填充数值为0的像素,假设填充的"圈数"为p,则输出的特征图像尺寸为:(n+2p-f+1)x(n+2p-f+1)。那么,如果要使得输出尺寸同输入尺寸一致,p应该为:(f-1)/2。例如:6x6的输入图像要想同3x3的过滤器卷积以后输出尺寸不变,那么填充的p值应当为1。填充示意图如下图所示。

在这里插入图片描述

3. 步长

步长即每次移动过滤器的长度,比如每次是移动一个像素对应步长为1,每次移动两个像素对应步长为2。

结论
输入图片:n x n
过滤器:f x f
Paddy:p
步长(stride)😒
输出:(((n + 2p - f) / s) + 1) x (((n + 2p - f) / s) + 1)。
注:当商为小数时,向下取整

4. 单层卷积神经网络

在这里插入图片描述

总结
1)当输入图像为RGB三通道时(即深度为3),所采用的过滤器深度也必须为3
2)输出的深度取决于过滤器的个数,与图像的深度无关。比如上图输出“特征图”的size为4x4x2,是因为过滤器为2个。
3)对卷积以后的特征图,还需要加上一个"偏置",再应用一个"非线性激活函数",最后才输出"特征图"

5. 池化层

5.1 最大池化(最常用)

在这里插入图片描述
在这里插入图片描述

5.2 平均池化

在这里插入图片描述

总结
1)池化层的输出 = (((n + 2p - f) / s) + 1) x (((n + 2p - f) / s) + 1) 注:上图1中的n = 4 f = 2 p = 0 s = 2
2)当输入图片深度大于1时(比如为3),过滤器的深度仍然为1(这点与卷积层不一样),过滤器要和每个通道的图片分别进行运算;并且输出的“特征图”深度也为3(与输入图片一致)
3)经过池化之后,图片尺寸缩小,提高运算效率和鲁棒性,其中以“最大池化”作为池化层应用最为常见。

6. 卷积神经网络示例

在这里插入图片描述
在这里插入图片描述

总结
1)从第一张图片上可以看出,随着网络层数的增加,N(w) x N(h)减小,Nc增加。(注:Nc指卷积层的通道数。个人觉得第二张图片上卷积层1(CONV1)的输出应当为28286,否则与第一张图片上写的没有对应,这只是一个小bug,顺便提一下)
2)通常CNN整体流程:一个或者多个卷积层后面跟一个池化层;然后又是一个或者多个卷积层后面跟一个池化层;接着是几个全连接层;最后是一个Softmax输出
3)从第二张图片上可以看出,参数主要集中在全连接层;卷积层的参数其实不多;池化层的参数是直接设定的,非训练所得
4)随着层数的增加,尺寸逐渐减小

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值