目录

1 概述

2  一般结构

(1)输入层

(2)卷积层

(3)激励层

sigmoid

tanh

ReLu

(4)池化层

(5)全连接层

(6)输出层

(7)中间层

3  CNN应用

4  常见神经网络


主要对网上的一些神经网络信息进行总结整理。

1 概述

在卷积神经网络(Convolutional Neural Network,CNN)中,卷积层的神经元只与前一层的部分神经元节点相连,它的神经元间的连接是非全连接的,且同一层中某些神经元之间的连接的权重w和偏置b是共享的,大量地减少了需要训练参数的数量。

主要特点:减少权值,局部连接,权值共享

CNN 通过感受野和权值共享减少了神经网络需要训练的参数个数

2  一般结构

输入层--> Conv层 --> Pooling层 --> (重复Conv、Pooling层) … --> FC(Full-connected)层 --> 输出结层

cnn 卷积神经网络 cnn 卷积神经网络介绍_池化

输入层:用于数据的输入

卷积层:使用卷积核进行特征提取和特征映射

激励层:由于卷积也是一种线性运算,因此需要增加非线性映射

池化层:压缩数据和参数的量,减小过拟合。

全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失

输出层:用于输出结果

(1)输入层

CNN的输入层的输入格式保留了图片本身的结构。

对于黑白的28×28的图片,CNN的输入是一个28×28的的二维神经元

对于RGB格式的28×28图片,CNN的输入则是一个3×28×28的三维神经元(RGB中

每一个颜色通道都有一个28×28的矩阵)

(2)卷积层

感受野(local receptive fileds)

即感受上一层的部分特征。在卷积神经网络中,隐藏层中的神经元的感受视野比较小,只能看到上一次的部分特征,上一层的其他特征可以通过平移感受视野来得到同一层的其他神经元。

卷积核

感受视野中的权重矩阵

共享权值(shared weights)

步长(stride)

感受视野对输入的扫描间隔

边界扩充(pad)

当步长比较大时(stride>1),为了扫描到边缘的一些特征,感受视野可能会“出界”,这时需要对边界扩充(pad)

特征映射图(feature map)

通过一个带有卷积核感受视野扫描生成的下一层神经元矩阵称为一个特征映射图(feature map)

 

输入图片:W*W

Filter大小:F*F

步长:S

pad:P

输出图片大小:N*N N = (W – F + 2P)/S + 1

cnn 卷积神经网络 cnn 卷积神经网络介绍_神经网络_02

cnn 卷积神经网络 cnn 卷积神经网络介绍_卷积神经网络_03

感受视野:

cnn 卷积神经网络 cnn 卷积神经网络介绍_池化_04

; 卷积核:

cnn 卷积神经网络 cnn 卷积神经网络介绍_池化_04

,深度为3;下一层的神经元的值为:

cnn 卷积神经网络 cnn 卷积神经网络介绍_神经网络_06

卷积核的深度和感受视野的深度相同,都由输入数据来决定,长宽可由自己来设定,数目也可以由自己来设定,一个卷积核依然对应一个 feature map 。

(3)激励层

激励层主要对卷积层的输出进行一个非线性映射,因为卷积层的计算还是一种线性计算。使用的激励函数一般为ReLu函数。

卷积层和激励层通常合并在一起称为“卷积层”。

 

常用激励函数:

sigmoid

cnn 卷积神经网络 cnn 卷积神经网络介绍_卷积神经网络_07

cnn 卷积神经网络 cnn 卷积神经网络介绍_池化_08


特点:可以解释,比如将0-1之间的取值解释成一个神经元的激活率(firing rate)

缺陷:1 有饱和区域,是软饱和,在大的正数和负数作为输入的时候,梯度就会变成零,使得神经元基本不能更新。2 只有正数输出(不是zero-centered),这就导致所谓的zigzag现象。3 计算量大。

tanh

cnn 卷积神经网络 cnn 卷积神经网络介绍_卷积神经网络_09

cnn 卷积神经网络 cnn 卷积神经网络介绍_神经网络_10


 

ReLu

cnn 卷积神经网络 cnn 卷积神经网络介绍_池化_11


cnn 卷积神经网络 cnn 卷积神经网络介绍_卷积神经网络_12


 

(4)池化层

当输入经过卷积层时,若感受视野比较小,布长stride比较小,得到的feature map(特征映射图)还是比较大,可以通过池化层来对每一个feature map进行降维操作,输出的深度还是不变的,依然为feature map的个数。

池化层也有一个“池化视野(filter)”来对feature map矩阵进行扫描,对“池化视野”中的矩阵值进行计算,一般有两种计算方式:

Max pooling:取“池化视野”矩阵中的最大值

Average pooling:取“池化视野”矩阵中的平均值

cnn 卷积神经网络 cnn 卷积神经网络介绍_cnn 卷积神经网络_13

(5)全连接层

主要对特征进行重新拟合,减少特征信息的丢失

分布式特征representation映射到样本标记空间:把特征representation整合到一起,输出为一个全局值,大大减少特征值对分类带来的影响。

cnn 卷积神经网络 cnn 卷积神经网络介绍_卷积_14


 

(6)输出层

准备做好最后目标结果的输出

(7)中间层

归一化层(Batch Normalization):在CNN中对特征的归一化

实现了在神经网络层的中间进行预处理的操作,即在上一层的输入归一化处理后再进入网络的下一层,这样可有效地防止“梯度弥散”,加速网络训练。

具体算法:

cnn 卷积神经网络 cnn 卷积神经网络介绍_卷积神经网络_15

在卷积神经网络中进行批量归一化时,一般对 未进行ReLu激活的 feature map进行批量归一化,输出后再作为激励层的输入,可达到调整激励函数偏导的作用。

Batch Normalization 算法的训练过程和测试过程的区别:

在训练过程中,我们每次都会将 batch_size 数目大小的训练样本 放入到CNN网络中进行训练,在BN层中自然可以得到计算输出所需要的均值方差;

而在测试过程中,我们往往只会向CNN网络中输入一个测试样本,这是在BN层计算的均值和方差会均为0,因为只有一个样本输入,因此BN层的输入也会出现很大的问题,从而导致CNN网络输出的错误。所以在测试过程中,我们需要借助训练集中所有样本在BN层归一化时每个维度上的均值和方差,当然为了计算方便,我们可以在 batch_num 次训练过程中,将每一次在BN层归一化时每个维度上的均值和方差进行相加,最后再进行求一次均值即可。

 

切分层:对某些(图片)数据的进行分区域的单独学习

融合层:对独立进行特征学习的分支进行融合

3  CNN应用

(1)目标分类

(2)目标检测(目标定位 人脸检测 人形检测 车辆检测)

(3)目标识别(人脸识别 人形识别)

(4)目标跟踪

(5)目标分割

(6)关键点检测

4  常见神经网络

(1)卷积神经⽹络(LeNet)

(2)深度卷积神经⽹络(AlexNet)

(3)使⽤重复元素的⽹络(VGG)

(4)⽹络中的⽹络(NiN)

(5)含并⾏连结的⽹络(GoogLeNet)

(6)残差⽹络(ResNet)

(7)稠密连接⽹络(DenseNet)