万字解析!一文带你了解卷积神经网络(CNN)各层的基本知识以及作用


万字解析!一文带你了解卷积神经网络(CNN)各层的基本知识以及作用

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

大家好呀,今天我们来讲讲深度学习中最经典的神经网络–卷积神经网络(CNN)各层的基本知识以及作用,废话不多说,我们直接开始吧
卷积神经网络
卷积神经网络由输入层、卷积层、激活函数、池化层以及全连接层构成。
INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)
简单来说:卷积用来提取特征,池化压缩特征,全连接层用来加权重
卷积层
卷积层的作用是用来提取特征,卷积层主要涉及的参数包括:滑动窗口步长,卷积核尺寸,填充边缘,卷积核个数。卷积核的工作原理如下图所示:
如下图所示:输入图像是32323,3是它的深度也就是R、G、B三通道,通过卷积核,在图中卷积核是553的filter,其中filter的深度必须和输入图像的深度相同,也就是对应的3,filter可以有很多个。通过一个filter与输入图像的卷积的话,会得到一个28281的特征图。
具体的特征图尺寸计算公式如下:
如上上图中所示:输入的是32323大小的图像,用10个553的fliter进行卷积操作,并指定步长为1,边缘填充为2:
(32-5+22)/1+1=32
输出的规模为32
3210,经过卷积操作后也可以保持特征图的长度和宽度不变
关于卷积的过程图解析如下:
输入图像和filter的对应位置元素相乘再求和,最后再加上b0(偏置),得到特征图。
如图所示:filterw0的第一层深度和输入图像的蓝色方框中对应元素相乘再求和得到0,其他两个深度得到2,0,则有0+2+0+1=3即图中右边特征图的第一个元素3,卷积过后输入图像的蓝色方框再滑动,stride(步长)=2。完成卷积,得到一个3
31的特征图;
边缘填充:在这里还要注意一点,即zeropad项,即为图像加上一个边界,边界元素均为0,这就叫做边缘填充,是为了更好的提取边界的每个部分的特征,让边界点也可以多次的提取特征,这就是padding的作用。
通常,我们会通过多次的卷积,来提取特征。
【为初学者整理】另外我根据自己的入门经历和阅读经验,整理了一份神经网络优质论文合集,包含了卷积系列、RNN系列、GAN系列、注意力机制、GAN系列、YOLO系列、图神经系列、transformer系列等等,以及从零搭建神经网络书籍
如果需要神经网络全套论文和代码
可添加任意一位助理无偿获取
卷积参数共享:
通过卷积操作,我们实现了输入图像的局部连接,从而大大减少了网络模型中的参数量。但这还不够,利用图像的另一特性,参数量可以进一步降低。
如图所示:10个shape(5,5)的卷积核,每个卷积核在原图中对应一个参数矩阵,大小为5
5。
如果不共享权值的话,将得到5∗5∗3∗32∗32∗10+10个参数
如果共享参数的话将有5∗5∗3∗10+10个参数
总结如下:
卷积层涉及参数
滑动窗口步长:能移动越多得到的特征图越大,提取的特征越细腻,常见步长为1
卷积核尺寸:选择区域的大小—最后得到结果个数的大小,一般3×3
边缘填充:由于步长选择,有些元素重复加权贡献的,越往里的点贡献多,越往外的点贡献少,是边界点贡献多些,在外面加上一圈0,可以弥补一些边界特征缺失,zeropadding以0为值进行边缘填充
卷积核个数:最后要得到多少个特征图,注意的是每个卷积核都是不一样的
卷积参数共享:用同样一组卷积和对图像中每一个区域进行特征提取
池化层
池化层是当前卷积神经网络中常用组件之一,它最早见于LeNet论文中,称之为Subsampleor’downsample‘即降采样。
池化层是模仿人的视觉系统对数据进行降维,用更高层次的特征表示图像。
池化层的常见操作包含以下几种:最大值池化,均值池化,随机池化,中值池化,组合池化等。
池化层压缩过程:在通过卷积层后对特征图进行筛选,滑动窗口(例如:maxpooling将该区域最大值提取出来),maxpooling过程如下:
激活函数
激活函数的作用在于提供网络的非线性建模能力。
如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机。
如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
常见的激活函数有:
Sigmoid激活函数
也称为S型生长曲线,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。公式如下:
Tanh激活函数
Tanh激活函数又叫作双曲正切激活函数,在数学中,双曲正切\“Tanh\“是由基本双曲函数双曲正弦和双曲余弦推导而来。公式如下:
优点:比Sigmoid函数收敛速度更快,输出以0为中心。
缺点:由于饱和性产生的梯度消失
在实践中,Tanh函数的使用优先性高于Sigmoid函数。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值。
为了解决梯度消失问题,我们来讨论另一个非线性激活函数-Relu函数,该函数明显优于前面两个函数,是现在使用最广泛的函数。
Relu激活函数
公式如下:
当输入x0时,输出为x。该激活函数使网络更快速地收敛。它不会饱和,即它可以对抗梯度消失问题,至少在正区域(x>0时)可以这样,因此神经元至少在一半区域中不会把所有零进行反向传播。由于使用了简单的阈值化(thresholding),ReLU计算效率很高。
全连接层
全连接层之前的操作:卷积层、池化层、激活函数等的作用是用来提取特征(将原始数据映射到隐藏层特征空间),而全连接层的作用就是分类(将学到的特征表示映射到样本标记空间当中)
在CNN结构中,经多个卷积层和池化层后,连接着1个或1个以上的全连接层.与MLP类似,全连接层中的每个神经元与其前一层的所有神经元进行全连接,全连接层可以整合卷积层或者池化层中具有类别区分性的局部信息,为了提升CNN网络性能,全连接层每个神经元的激活函数(按你的任务目的选择,分类or回归)。
假设你是一只小蚂蚁,你的任务是找小面包。你的视野还比较窄,只能看到很小一片区域。当你找到一片小面包之后,你不知道你找到的是不是全部的小面包,所以你们全部的蚂蚁开了个会,把所有的小面包都拿出来分享了。全连接层就是这个蚂蚁大会~
如果提前告诉你全世界就只有一块小面包,你找到之后也就掌握了全部的信息,这种情况下也就没必要引入FC层了
以上就是本期文章的所有内容了,希望对大家理解卷积神经网络有帮助,我们下期文章再见
放在最后:
另外想结合AI发文发刊,但不知道怎么做创新的同学,我们team磨练出了一套系统且专业的传统学科交叉AI科研入门方案,可带学生发paper,已迭代六次(持续迭代中),我们会根据你的研究方向来规划学习路径,并且根据你的实验数据分为了时序、图结构、影像三大实验室,详细学习规划可添加另一位科研助理微信咨询:dtjy951或扫描下方二维码
感兴趣可扫码添加科研助理咨询~

最后求点赞!关注!转发!再看!


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录