卷积神经网络Convolutional-Neural-Networks(CNN)理论概述

目录

1.卷积的基本概念

2.卷积网络的结构

3.卷积网络的训练


1.卷积的基本概念

       卷积的意义(图像处理而言);对图像使用不同的卷积模板,对图像做不同的处理。比如平滑模板可以使图像模糊,并且可以减少噪声、锐化模板可以使图像的轮廓变得清晰。

数字图像处理中我们用卷积模板和原始图像的像素卷积。过程如下:
Step 1、先将模板旋转180度(又称折叠)。
Step 2、然后让模板依次和原始图像重叠,并且计算重叠部分的数值乘积之和。
以2D为例
 

先对模板K做折叠,然后依次覆盖图像I,并且计算重叠部分的数值乘积之和:

依次进行到最后,会多出一圈,得到最后的卷积结果。

2.卷积网络的结构

      卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的下采样层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。

      原始图像的大小决定了输入向量的尺寸,隐层由C-层(特征提取层)和S-层(下采样层)组成,每层均包含多个平面。C1层神经元提取图像的局部特征,因此每个神经元都与前一层的局部感受野(也就是局部输入窗口)相连。C1层中各平面(由神经元构成)提取图像中不同的局部特征,如边缘特征,上下左右方向特征等,C1层中的输入是有由上一层局部窗口的数值和连接的权值的加权和(也就是卷积,后面会具体解释为什么是卷积),然后通过一个激活函数(如sigmoid 函数,反正切函数)得到C1层的输出,接下来S2层是下采样层,简单来书,由4个点下采样为1个点,也就是4个数的加权平均。换句话说,就是我们把2*2的像素缩小成为一个像素,某种意义上来说可以认识是图像处理中的模糊。然后按照这个C—S的结构继续构成隐层,当然这些隐层的连接都是局部相连的。同时有人会问了,例如S2和C3层具体要怎么连接呢,为什么会从6张变成16张特征图呢。C3层的特征图是由S2层图像的感受野和对应权值的卷积后,通过随机的组合而形成的,也就意味着S2层和C3层并不像C1层和S2层那样是一一对应的。但当我们感受野的大小和图像一样时,我们经过特征提取后就变成一个像素了,这里我们开始使用全连接(这样才能完整的把特征保留)。

       卷积网络第一个特点是连接权值远远小于BP网络的权值。卷积神经网络另外一个特性是权值共享。这样一来就更进一步减少了对网络权值的训练(毕竟权值是共享的,也就意味着有一些全是是相同的)。权值共享是指同一平面层的神经元权值相同。如何理解呢!看下图2,假设红色的点和黑色的点是C1层第一个特征图的2个不同神经元,感受窗口的大小是5*5的(意味着有25个连接),这2个神经元连接的权值是共享的(相同的)。这样一来,C1层中的每个神经元的输入值,都有由原始图像和这个相同的连接权值的加权和构成的,想想看,这个过程是不是和卷积的过程很像呢!没错,就是由这个得名的。同时这样一来,我们需要训练的权值就更少了,因为有很多都是相同的。

       C1层是一个卷积层(也就是上面说的特征提取层),由6个特征图Feature Map构成。特征图中每个神经元与输入中5*5的邻域相连。特征图的大小为28*28。C1层有156个可训练参数(每个滤波器5*5=25个unit参数和一个bias[偏置]参数,一共6个滤波器,共(5*5+1)*6=156个参数),共156*(28*28)=122,304个连接。

       S2层是一个下采样层,有6个14*14的特征图。特征图中的每个单元与C1中相对应特征图的2*2邻域相连接。S2层每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid函数计算。每个单元的2*2感受野并不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4(行和列各1/2)。S2层有12个可训练参数和5880个连接。

3.卷积网络的训练

      在一个卷积层,上一层的特征maps被一个可学习的卷积核进行卷积,然后通过一个激活函数,就可以得到输出特征map。每一个输出map可能是组合卷积多个输入maps的值:

       这里Mj表示选择的输入maps的集合,那么到底选择哪些输入maps呢?有选择一对的或者三个的。但下面我们会讨论如何去自动选择需要组合的特征maps。每一个输出map会给一个额外的偏置b,但是对于一个特定的输出map,卷积每个输入maps的卷积核是不一样的。也就是说,如果输出特征map j和输出特征map k都是从输入map i中卷积求和得到,那么对应的卷积核是不一样的。

卷积神经网络Convolutional Neural NetworksCNN)是一种强大的深度学习算法,主要用于图像识别和处理。CNN的结构图主要包括卷积层、激活函数、池化层和全连接层。 卷积层是CNN的核心组成部分,由多个卷积核组成。每个卷积核在图像上进行滑动操作,通过计算卷积操作得到新的特征图。卷积操作可以提取出图像的局部特征,并保留了空间结构信息。 在卷积层之后,激活函数(如ReLU)被应用于特征图中的每个元素,以引入非线性。激活函数可以增加网络的表达能力,并促使网络学习更复杂的特征。 池化层用于减少特征图的维度,它通过将特定区域内的特征值进行聚合,并选择最显著的特征进行保留。常用的池化操作包括最大池化和平均池化。池化层可以减少特征图的大小,从而降低参数数量,减小计算量。 最后,全连接层将池化层输出的特征图转换为向量形式,并连接到输出层。全连接层的作用是对特征进行分类或回归预测。它们通常由全连接神经元组成,每个神经元与上一层的所有神经元相连。 在CNN的结构图中,卷积层和池化层可以多次堆叠,以增加网络的深度。这种多层次的结构可以使网络学习到更高级别的抽象特征。此外,CNN还可以通过添加批量归一化、dropout等技术来提高网络的性能和泛化能力。 总之,CNN的结构图展示了卷积神经网络的层次组织和数据流动方式,有助于理解其工作原理和网络结构的设计。通过逐层堆叠不同的层,CNN可以有效地提取图像中的特征,并在分类、目标检测等任务中取得优秀的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值