Convolutional Neural Nerwork-1
1. Basic Introduction
CNN 是MLP的扩展基于以下3个特点:
1.1 (局部接受字段或局部感受野-Local receive field
每个unit只对邻近的下层neural负责建立在我们人摄取信息都是从局部到整体的过程,因此模拟这个过程认为相近的Neural有着相关联的特征,离得较远的没有关系,最后通过不同部分地输出获得整体输出. 最上层的对下层的接受阈只有3,然而对最下层的接受阈为5. 这也就是从部分到整体的过程这样可以减少参数数目. 相同的滤波器的权重是完全相同的但是由于局部接受字段导致滤波器必须走完底层一遍输出为(m-n+1)*(m-n+1), m为输入的维度, n为接受字段, 注意这里是步数为1的情况.
1.2 共享权重-Shared Weight
相同的滤波器的权重是完全相同的但是由于局部接受字段导致滤波器必须应用多次以获得全部的信息. In CNNs, each filter is replicated across the entire visual field.
同一滤波器的多次应用形成了一个feature map即特征图,因为一次重复只计算出了相应区域的一个卷积值, 多次重复才组成了上述的(m-n+1)*(m-n+1) 的特征图. 注意一个feature map是通过对sub-region重复应用一个function得到的. 换言之, 是通过将输入图像和线性滤波器卷积再应用非线性function得到的. 卷积其实就是忽略了位置信息得到对应区域的加权和. Feature Map 得到的function如下:
hk 表示的是第k个feature map,对应的是由权重矩阵Wk 和Bias bk 定义的线性滤波器k. ij代表的是feature map中的位置其实就是矩阵.
上图中的 4就是对应位置的加权和为线性滤波器重复一次的结果.
1.3 空间时间子抽样- Spatial / temporal sub-sampling
1.31 Subsampling 或 Pooling 背后的理论支持
(1). 提取特征的确切位置是不重要的
(2). 两个特征的相对位置才是相关的
(3). 降低空间分辨率即降低平移和失真的敏感度
1.32 Pooling 的目标以及作用
总的来说池化的目的就是通过保留重要信息剪切不相关的细节来将相关联的特征表示映射为一个新的更可用的特征表示(Feature Representation). The crux of the matter being to determine what falls in which category. 同时池化通过对图片的某一区域实现特定的池化保证在有较小的特征translations 的情况下仍能获得相同的结果.
Benefits:
- 实现对位置或光照条件变化的不变性
- 对混乱的鲁棒性和表示的紧凑性
Achieving invariance to changes in position or lighting conditions, robustness to clutter, and compactness of representation, are all common goals of pooling.
CNN Layers:
(1). Convolutional layer
(2). Sub-sampling 或 pooling 层
(3). 全连接层-Fully connected layer.
1.33 Pooling 的种类
- Max Pooling
一种非线性的下采样, 首先将图片划分为不重叠的方块, 然后对于每个子区域输出最大值.
Benefits:
(1). 通过消除子区域的非最大值, 降低了上层的运算量.
(2). 提供了一种形式的位置不相关性.
(3). 降低中间表示的维度
- Average Pooling
注意取整数 - Min pooling
Pooling 的效果
2. CNN 的流程
2.1 Convolution Step
卷积的过程在上面已经讲的比较详细了, 卷积的BP 算法会在之后的提升篇中讲解.
2.2 Nonlinear ReLu
接下来是引入非线性, 其实在上面的函数中已经提到了只不过这里我们选择应用ReLu.
Benefits of ReLu:
- 前馈和反馈都是简单的if 语句 不需要很复杂的计算. 而Sigmoid 需要用到指数, 这个优势当网络或者神经元很多的时候是巨大的, 训练和测评环节都会十分快速.
- Sigmoid 是很容易饱和的, Sigmoid 导数不为零并且很有效率的部分是很窄的只有加权和在0左右的时候导数最大效率最高, 当Sigmoid进入最左边或者最右边的饱和区是反馈是没用的, 因为饱和区的导数为零梯度为0. ReLu 的饱和区只有小于0的时候, 所以当加权和大于零时反馈都是高效的.
- 当网络深度很深时, Sigmoid是会引起梯度消失的, 而ReLu 不会.
2.3 Subsampling Downsampling or Pooling
关于pooling的介绍上面说的很详细了, 但是关于三种之间的不同进阶会讲.
2.4 Normalization
关于Normalization 的相关知识会在进阶将.
2.5
根据上述步骤在得到Feature Map 的过程中其实有很多步, 卷积层只不过使用一种线性滤波器或者特征提取器进行单一特征提取, 每一次的重复都是对一个子区域求了加权和, 然后对得到的图进行非线性处理即对每个加权和进行ReLu的处理, 然后对这张图的Predefined子区域大小进行池化已获得上述增益, 最后通过将所有特征值进行Normalization获得标准的Feature Map.
3. 没讲到的东西
- Pooling 中不同方式的对比即如何选择
- Normalization的必要性及相关方法介绍
- 前馈后馈的整个过程即相关算法原理
- 现有的卷积网络的架构分析即学习
- 一些细小概念如厚度以及相关知识点矫正