CNN原理与结构分析

卷积层的刨析:

对局部卷积神经元的计算方法:
卷积层使用***卷积核***进行局部感知。卷积核一般以随机小数矩阵的形式初始化。例如:原输入一个32×32×3的RGB
图经过一层5×5×3的卷积后变成了一个28×28×1的特征图,那么输入层共有32×32×3=3072个神经元,
第一层隐层会有28×28=784个神经元,这784个神经元对原输入层的神经元只是局部连接。
卷积核一般以随机小数矩阵的形式初始化。

权值计算以及权值共享
权值共享可以减少很多不相干的参数量的计算,可以节约计算资源。例如:隐层中有好多神经元,每个
神经元10*10,这是每个神经元连接个数权重,实际就是每个神经元的参数向量都是就是[w1,w2,…w100],其它同层的
神经元的权值向量也是如此,这就是权值共享。权值共享还有利于同区域相同参数同化,减小参数量。

为什么需要权值共享呢?
第一隐层一般用边缘检测,第二层用第一层学到的边缘曲线组合得到一些特征比如:角度、线性第三层
学到更加复杂的特征:比如:眼睛、眉毛,对同一层来说,他们提取特征的方式一样,第三层的神经元
都是用来提取“眼睛”的特征,因此,需要计算的参数是一样的

如果时RNN中的话,对于多层权值的共享有利于增强网络的记忆能力。

激活层:
所谓激励,实际上是对卷积层的输出结果做一次非线性映射。如果没有激活(其实就相当于激励函数是f(x)=x),
每一层的输出都是上一层输入的线性函数,无论有多少神经网络层,输出都是输入的线性组合,
与没有隐层效果一样,这是原始的感知机。

relu的优势:
迭代速度快,可能效果不好,但是Tanh函数文本和音频处理效果好点。

池化层:
卷积神经网络包含了一个由卷积层和(池化层)子采样层构成的特征抽取器
池化层用于对特征的提纯,特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。

输出层
模型会将学到的一个高质量的特征图片全连接层,其实在全连接层之前,如果神经元数目过大,学习能力强
,有可能出现过拟合
。因此,引入dropout操作,来随机删除神经网络中的部分神经元,来解决此问题。
还可以进行局部归一化(LRN)、数据增强等操作,来增加鲁棒性

1、CNN中的池化层就相当与下采样操作
2、CONV / FC层执行的变换不仅取决于输入体积中的激活函数,而且还取决于参数(神经元的权重和偏差)
3、CONV / FC层中的参数将使用梯度下降进行训练,以使ConvNet计算的类别分数与训练集中每个图像的标签一致。
4、RELU / POOL层将实现固定功能

**卷积层
例子1。**例如,假设输入体积的大小为[32x32x3](例如RGB CIFAR-10图像)。如果接收场(或
过滤器大小)为5x5,则“转换层”中的每个神经元将在输入体积中具有[5x5x3]区域的权重,
总共5 * 5 * 3 = 75权重(且+1偏差参数)。请注意,沿着深度轴的连接程度必须为3,因为这是输入体积
的深度。
**例子2。**假设输入体积为[16x16x20]。然后,使用3x3的示例接收域大小,到“转换层”中的
每个神经元现在将具有到输入体积的总共3 * 3 * 20 = 180个连接。再次注意,连通性在空间上是局部的
(例如3x3),但在输入深度(20)上是完整的。

1、输入体积的连通性(卷积的过程)
红色示例输入体积(例如32x32x3 CIFAR-10图像),卷积层中的每个神经元在空间上仅连接到输入体积中的
局部区域,但连接到整个深度,沿着深度有多个神经元(在此示例中为5个),所有神经元都看着
输入中的相同区域
2、输出体积,以及超参数控制输出体积的大小:深度,步幅和零填充
3、输出量的深度是一个超参数:

你可能感兴趣的:(CNN原理与结构分析)