这里梳理了一些CNN的知识脉络。
用来构建CNN的各种层
- 数据输入层/Input layer
去均值;归一化;PCA/白化 - 卷积计算层/CONV layer
局部关联;窗口;receptive field;滑动;参数共享机制;深度/depth、步长/stride、填充值/zero-padding - ReLU激励层/ReLU layer
Sigmoid、Tanh;双曲正切;、ReLU;优选;、Leaky ReLU;次优选;、ELU、Maxout;次优选;;梯度消失问题 - 池化层/Pooling layer
下采样、压缩数据和参数量、减小过拟合;Max pooling、average pooling - 全连接层/FC layer
- Batch Normalization layer(Option)
- 输出层/Softmax layer(Option)
CNN训练算法
- 第一步;先定义Loss function
- 找到最小化损失函数的W和b;CNN中用的算法是SGD
- SGD需要计算W和b的偏导
- BP算法是计算偏导用的;其核心是求导链式法则
CNN优缺点
优点;
- 权重共享;极大减少参数量
- 特征是训练出来的;无需手动选取
- 层次深、抽取图像信息丰富;表达效果好
缺点;
- 需要调参;需要大样本量;硬件GPU
- 物理含义不明确
正则化与Dropout
- 传统机器学习正则化算法;L1、L2正则化
- Dropout(随机失活)正则化;防止过拟合;集成学习的思想
典型CNN网络
LeNet(上世纪90年代)、AlexNet(2012)、ZFNet(2013)、GoogleNet(2014)、VGGNet(2014)、ResNet(2015)