深度学习模型---卷积神经网络

卷积神经网络

  • CNN的组成
    • 卷积层
    • 池化层
    • zero padding
    • 全连接层
  • 卷积神经网络的例子
    • LENET神经网络
      • ALEXNET神经网络
      • 较流行的网络

卷积神经网络(Convolutional Neural Network)是一种前馈神经网络。常用于图像领域。

CNN的组成

CNN由卷积层、池化层、全连接层组成。

卷积层

卷积层的作用是进行特征提取。通过卷积核在输入数据上进行卷积计算(即卷积核对应输入数据的矩阵和卷积核矩阵的内积运算,对应位置的数字相乘再相加求和),从而减少数据的维度,达到特征提取和降低维度的作用。如下:
深度学习模型---卷积神经网络_第1张图片

对于卷积核的设置,通常在靠近输入层的卷积层设置较少的卷积核,越往后面,卷积核的数目设定就越多,这是由特征的提取特性决定的,在训练前期,常常需要确定一些共同且常见的特征,如边缘和曲线。而随着训练的深入,需要确定曲线的形状

池化层

池化层的作用减少参数。通过降采样的方式,在不影响图像质量的情况下,压缩图片,减少参数,如下:
深度学习模型---卷积神经网络_第2张图片

池化层采用的池化方法一般有最大池化和平均池化两种

zero padding

如果希望经过卷积和池化操作后的图像大小不变,则需要进行补零操作。即在原图像的基础上添加0,如下:深度学习模型---卷积神经网络_第3张图片

全连接层

全连接层在整个卷积神经网络中起到“分类器”的作用。而卷积层、池化层等操作是将原始数据映射到隐层特征空间。全连接层是将前面经过多次卷积后高度抽象化的特征进行整合,然后可以进行归一化,对各种分类情况输出一个概率,然后根据输出的概率判断该样本属于哪一类。

卷积神经网络有两个典型的结构,分别是LENET、ALEXNET。

卷积神经网络的例子

LENET神经网络

其结构如下:
深度学习模型---卷积神经网络_第4张图片
LENET神经网络包括卷积层、降采样层、全连接层和输出层

卷积层就是把输入层进行卷积操作,过程可以看成是用一个卷积板去在输入层上面进行覆盖,并把相应位置的数字相乘,然后把所有数字相加即可得到卷积后的结果,如图所示:
深度学习模型---卷积神经网络_第5张图片
假设输入层是MN的图像,其卷积核是mn,以步长为stride=(P,Q)进行卷积操作,则得到的卷积结果为:长=floor[(M-m)/P]+1,宽=floor[(N-n)/Q]+1

降采样层:目的就是用来降低特征的维度并保留有效信息,一定程度上避免过拟合。
采样的方法有最大值采样,平均值采样,求和区域采样和随机区域采样等

全连接层:每个神经元与前一层所有的神经元全部连接,相当于“分类器”的作用

ALEXNET神经网络

神经网络结构如下:
深度学习模型---卷积神经网络_第6张图片
相较LENET网络结构的几个改进:
1,采用RELU函数代替sigmoid或者是Tanh函数(当值很大时,会出现梯度消失的现象)

RELU(x)=max(0,x),当x<0时,导数=0,x>0时,导数=1,从而避免了梯度消失的现象。且导数为0的神经元经过RELU函数之后,会关闭,因此可以减少参数更新的个数,能在一定程度上促进神经网络的收敛

2.采样层用maxpooling代替平均采样的方法

对于每一个临近像素组成的池子,选取一个最大值最为输出,而不是取平均值作为输出。最大池化下的梯度会直接传导到最大值,每次参数的更新会减少,从而促进网络收敛

3.随机丢弃一些神经元

为避免系统参数更新过快,导致过拟合的现象,在每次利用训练样本更新参数的时候会随机丢弃一些神经元,被丢弃的神经元不参与训练过程,也不更新权重系数。丢弃神经元会减小网络收敛的速度,从而避免过拟合现象发生

4.数据扩增

通过将原图进行水平翻转并且将256256的图像随机选取224224的片段作为输入图像,最后通过引入噪声来构成新的图像

5.利用GPU加速训练过程

较流行的网络

1.VGGNet
加深了神经网络的深度,是一个计算和存储上面的开销都较大的神经网络
与ALEXNET改进的地方:
1.增加了神经网络的深度
2.用多个卷积核叠加代替更大的卷积核,增加感受野(可以减少待求参数的个数)

感受野表示的是卷积神经网络每一层输出的特征图上的像素点在输入图片上映射的区域大小,即特征图上的每一个点对应输入图上的区域,如下所示(黄色部分的像素点对应最左边对的整个红色方框的区域):
深度学习模型---卷积神经网络_第7张图片
计算感受野的公式为:
RFi=(RFi-1-1)×stridei-1+KSIZEi,其中RFi-1是第i-1层的感受野,stridei-1是第i-1层的步长,KSIZEi是第i层的卷积核大小

2.GoogleNet
提出了inception结构,该结构是通过用11、33、5*5的卷积核用固定的组合方式开代替大的卷积核。

3.RESNET
将浅层的输出直接添加到深层的输出中。由于两个层的维度可能不一致,因此需要对浅层的输出做一个线性变换,设X是浅层的输出,而X1是深层的输入,因此做线性变换X1=WTX+B,WT和B作为待求变量被学习

你可能感兴趣的:(网络空间安全,大数据,机器学习,神经网络,深度学习)