0. 前言
本节主要探讨CNN的池化层(Pooling Layer)以及全连接层
1. 池化层 (Pooling Layer)
1.1 池化基本理解
- 什么是池化
上图中一个 224 ∗ 224 ∗ 64 224*224*64 224∗224∗64 经过池化之后变成了 112 ∗ 112 ∗ 64 112*112*64 112∗112∗64 ,前面说明了64是描述图片信息的深度,可以看到经过池化我们减小的只是图片的大小,其图片的信息不会被改变; - 池化的目的
减小参数数目及模型复杂度
1.2 两种池化策略
-
最大池化 Max Pooling
在上图中,就是一个 4 ∗ 4 4*4 4∗4 的矩阵经过最大池化之后变成 2 ∗ 2 2*2 2∗2 的矩阵:池化这里也有一个窗口滑动的过程,这里就是一个 2 ∗ 2 2*2 2∗2 的窗口,步长为2,从左向右从上到下进行滑动,由于这里是最大池化,所以每次取的是 2 ∗ 2 2*2 2∗2 中最大的值,即第一次左上角在1,1,5,6中取的是6,之后向右滑动2个步长,到2,4,7,8,取最大值8… -
平均池化 Average Pooling
上面是最大池化的过程,平均池化,顾名思义,不是取滑动窗口中最大的那个,而是对滑动窗口中的所有数字取平均数
2. 全连接层(FC Layer)
在CNN中,这一层一般在网络层次的尾部,该层的神经元与前一层的所有相连接;
3. CNN 结构
CNN一般有如下结构:
- Input 输入层;
- [(CONV → \rightarrow → ReLU) * N → \rightarrow → Pool] * M 一般中间的卷积层之后紧跟着激励层,且可以有 N 个这样的结构,多个卷积之后再跟着一个池化层;
- (FC → \rightarrow → ReLU) * K 全连接层后面也可以跟激励层;
- FC 全连接层