CNN层次结构原理与功能详解
### 一,输入层
--CNN的输入层的输入格式保留了数据本身的结构,与全连接神经网络的一维向量不同
--对于8*8像素的黑白(灰度)图片,CNN的输入是一个8*8的二维神经元
--对于64*64像素RGB彩色图片,CNN的输入层是一个64*64*3的三维神经元
### 二,卷积层
---在卷积层的几个重要概念:
--感受视野 Local Receptive Fields
--共享权值 Shared Weights
---假设输入的是一个64*64的二维神经元,我们定义5*5的一个感受视野,即隐藏层的神经元与输入层的5*5个神经元相连,这个5*5的区域就称之为Local Receptive Fields
- --该感受视野中的权重矩阵称
-- - 通过卷积核扫描生成的下一层神经元矩阵 称为一个特征映射图 Feature Map
--- 所以同一个 FeatureMap 的权重矩阵是相同的, 称为共享权值
-- - 如果使用3个大小为 5×5 的卷积核, 在卷基层训练的权值数量将减小为 (5×5+步长)×3=78个
-- - 如果输入的是多通道图片,这时卷积核的大小不只用长和宽来表示,还需要加上深度
### 三, 激励层
- 激励层主要对卷积层的输出进行一个非线性映射,因为卷积层的计算还是一种线性计算
- 使用的激励函数一般为ReLu函数:f(x) = max(x,0)
- 激励层通常和卷基层合并在一起
### 四, 池化层
- 如果感受视野比较小, 得到的 FeatureMap 还会比较大, 引入池化层, 继续对 FeatureMap 进行降维
- 比如继续用一个矩阵对 FeatureMap 进行扫描, 将该矩阵内的视野计算为一个输出值(最大值或平均值)
### 五, 归一层
- 1, 批量归一化 Batch Normalization(BN)
- 在神经网络层中进行预处理后再进入网络的下一层
- 可有效地防止梯度弥散以加速网络训练
- 2, 近邻归一化 Local Response Normalization(LRN)
- 输入发生在不同的经过ReLu之后的FeatureMap中
### 六, 切分层
- 如果需要对图片进行切割,独立地对某一部分区域进行单独学习, 比如在任务照片中寻找人脸进行识别
- 这样可以对特定部分进行通过调整 感受视野 进行力度更大的学习
### 七, 融合层
- 融合层可以对切分层进行融合,也可以对不同大小的卷积核学习到的特征进行融合
- 例如在GoogleLeNet 中,使用多种分辨率的卷积核对目标特征进行学习,通过 padding 使得每一个 feature map 的长宽都一致,之后再将多个 feature map 在深度上拼接在一起, 实现不同分辨度下的同一种识别
- 融合的方法有包括,特征矩阵之间的拼接级联,和在特征矩阵进行运算
### 八, 全连接层
- 全连接层主要对特征进行重新拟合,减少特征信息的丢失
### 九, 输出层
- 输出层主要准备做好最后目标结果的输出
# 几种典型的卷积神经网络
- LeNet-5
- AlexNet
- VGGNet
- GoogleNet
- ResNet