卷积神经网络

举报
Y_K_C 发表于 2021/10/10 20:57:46 2021/10/10
【摘要】 卷积神经网络概述

一、卷积神经网络基本概述

前面学习了神经网络的基本的工作流程,接下来了解一下神经网络中一个经典的网络结构——卷积神经网络。卷积神经网络主要用于计算机视觉方向,能够解决图像分类,图像检测等问题,当然也可应用于自然语言处理。在计算机视觉领域中,我们往往是对图片的像素点进行操作,而图片的像素点数量较多,因此如果使用基本的全连接神经网络会造成参数数量巨大的问题,使得神经网络的工作效率较低,而卷积神经网络的出现解决了这一问题;卷积神经网络的核心思想是参数共享,而且并非是对单一的像素点进行特征提取,而是对一块区域的像素点进行特征提取,使得参数的数量肢解下降了一个量级。

二、卷积神经网络的基本工作流程

1.卷积层及其参数介绍

由多个卷积核构成的卷积层是卷积神经网络的主要结构。
卷积核是卷积层对图片进行特征时的工具,类似于矩阵,一般有三个维度,分别是宽、高和深度,在卷积核的每个位置有一个权重参数 w i j w_{ij} ,每一个卷积核都会有一个偏置项 b i b_i 。在第一层卷积层中,卷积核的宽和高受到图片的宽和高影响,深度则与图片的通道数相同,卷积核从图片的左上角开始,依次向右或向下移动固定的单位长度(称为步长),卷积核移动一次,包含在卷积核中的像素点与对应位置的权重参数相乘再累加得到累加值,累加值与该卷积核的偏置项相加得到特征值,即卷积核每移动一次会得到一个特征值,该特征值放在输出矩阵的对应位置,得到完整的输出矩阵后经过激活函数即得到特征图,特征图的数量与卷积核的个数相同。输出的特征图将作为下一卷积层的输入,下一层卷积层的卷积核宽高受特征图的形状影响,深度与特征图的数量相同(类似于第一层卷积核深度与图片通道数的关系),所有卷积层完成后,卷积工作完成。
根据神经网络的工作流程,各个卷积层中卷积核的权重参数和偏置项是在反向传播时进行更新。
综上所述,卷积层所涉及的参数有卷积核的宽w、高h、深度c和步长s以及卷积核内部的权重参数 w i j w_{ij} 和偏置项 b i b_i
卷积计算流程:

2.池化层及其参数介绍

池化层是对得到的特征图进行类似于过滤的操作,对特征图进行类似于卷积的操作,不过卷积核中没有权重参数,也没有偏置项,只是在特征图上框选出一块区域,对区域内的特征值按照一定标准进行筛选,作为新的特征图的一个特征值(即一个区域只选取一个特征作为代表该区域的特征),达到参数减少的目的,该卷积核的宽和高收特征图的形状影响,深度一般为一维,数量与特征图的数量相同,步长由需要的特征数量决定。
综上池化层所涉及的参数有池化层卷积核的宽、高、个数以及步长,池化的方法一般有两种——最大池化和平均池化。最大池化:将区域内最大特征值作为新的特征值,平均池化:将区域内所有特征值的均值作为新的特征值。两种池化的方法各有千秋,两者的区别稍后介绍。
池化:
image.png

3.全连接层

卷积层和池化层只是对图片进行特征的提取,而对特征进行学习和标签的映射是在全连接层进行的,在全连接层中将得到的特征图进行转化,变成一个列向量,在将列向量映射到标签,通过反向传播,梯度下降优化参数等步骤得到一个合适的模型。

4.卷积神经网络的精髓

卷积神经网络的精髓在于参数共享,在卷积层中,同一个卷积核在卷积的过程中权重参数和偏置项不会发生改变,图片上的像素点使用的相同的相同的权重参数和偏置项,使得参数数量大大减少。并且在卷积过程中对图片上的像素点的重视程度相同,卷积过程有一个重要参数padding(填充),即在图片的周围加上适当圈数的0,使得处在图片边缘的像素点被提取特征的次数增加,0填充又使得填充的数字不影响特征的大小。池化层的存在对特征进行筛选,使得参数的数量进一步减少。

5.两种池化方式的优势

根据相关理论,特征提取的误差来源于两个方面,一是区域的大小收到限制,使得估计值方差较大;二是卷积层参数误差导致估计均值的偏移;一般来讲,最大池化(max-pooling)能减少第二方面造成的误差,更多地保留纹理的信息;平均池化(mean-pooling)能减少第一方面造成的误差,更多地保留背景的信息。至于其中细节可以参考以下论文:《Learning Mid-Level Features For Recognition》
介于两者之间有另一种池化方法——随机池化(Stochastic-pooling),随机池化是对特征值按照数值大小赋予概率,按照概率进行进行亚采样,即概率越高,选择其为新的特征的可能性越大。

6.池化层的反向传播

池化层的反向传播与池化的方式有关。
假设池化层的卷积核是2x2的卷积核
池化反向传播的规则:将池化后一个像素点的梯度传递给4个像素,但要保证传递的梯度保持不变。
平均池化则将池化后特征值的梯度均分成4份,填入原来特征图2x2的区域,即:
image.png
最大池化则是将原本所选择的位置记录下来,在反向传播时,将特征值的梯度填入原特征图2x2的对应位置,其他位置补零,即:
image.png

三、两种经典的卷积神经网络结构

1.AlexNet网络结构

结构图:
image.png
AlexNet网络结构有五层卷积层,三层全连接层。
第一层输入为224x224x3的图像,共使用96个卷积核进行特征提取(图中显示的是一片GPU计算,在AlexNet中共用到了两片GPU,即一片GPU计算48个卷积核),卷积核为11x11x3,步长为4,padding为0,得到55x55x96的特征图(由正常的224x224x3的输入去算特征图得到的应该是54.25x54.25x6,这里的输入最后一个是变为了227x227x3),经ReLu后再经过最大池化(使用96个3x3,步长为2的池化单元),输出27x27x96的特征图,经归一化后进入下一层卷积层;

第二层卷积层输入为27x27x96的特征图,使用256个5x5x96的卷积核,步长为1,padding为2,得到27x27x256的特征图,经ReLu再经最大池化(使用256个3x3,步长为2的池化单元)得到13x13x256的特征图,经归一化输入下一层卷积。

第三层卷积输入为13x13x256的特征图,使用384个3x3x256,步长为1,padding为1的卷积核,得到13x13x384的特征图,经ReLu和归一化输入下一层(不池化)。

第四层卷积层输入为13x13x384的特征图,使用384个3x3x384步长为1,padding为1的卷积核,得到13x13x384的特征图,经ReLu和归一化后输入下一层卷积层(同样不池化)。

第五层池化层输入为13x13x384的特征图,使用256个3x3x384,步长为1,padding为1的卷积核,得到13x13x256的特征图,经Relu再经最大池化(使用256个3x3,步长为2的池化单元)得到6x6x256的特征图,再经归一化输入全连接层。

image.png

全连接层
第一层全连接使用4096个6x6x256的卷积核,与输入的特征图进行求内积得到4096x1x1的列向量,经ReLu和Dropout后输入下一层全连接。
第二层全连接将上一层的列向量经ReLu和Dropout得到新的列向量,输入下一层。
第三次全连接即输出层,上一层的列向量经softmax映射到1000个分类,得到各个类别的概率

2.VGG网络结构

AlexNet在第一层就采用了11x11的卷积核进行特征提取,是为了降低计算的开销,但是卷积核太大会导致特征提取损失较大,一般来讲提高特征提取的精度由两种方法,一是减小卷积核的大小,二是减小卷积核的步长,VGG则使用了第一种方法对特征提取的精度的提高,
VGG结构:
image.png
VGG网络卷积层数比AlexNet深,但卷积核大小均为3x3,池化后下一层得到的特征图深度会在上一层的特征图深度的基础上增加一倍,以保证特征的数量,也因此计算的开销大,至于其思想与和计算流程则与AlexNet相同。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。