神经网络与卷积神经网络
从神经网络到卷积神经网络
- DNN能用到计算机视觉上吗?为什么需要CNN?
- 卷积神经网络和人工神经网络的差异在哪?
1.层级结构
保持了层级网络结构;
不同层次有不同形式(运算)与功能;
主要是以下层次:
- 数据输入层/ Input Iayer
- 卷积计算层/ CONV Iayer
- 激励层/ Activation Iayer
- 池化层/ Pooling layer
- 全连接层/ FC Iayer
- Batch Normal i zation层(可能有)
数据输入层/ Input Iayer
有3种常见的数据处理方式
- 去均值(把输入数据各个维度都中心化到0)
- 归一化(幅度归一化到同样的范围)
- PCA/ 白化(用PCA降维;白化是对数据每个特征轴上的幅度归一化)
去均值与归一化
去相关与白化
卷积计算出/ CONV Iayer
- 局部关联,每个神经元看做一个filter;
- 窗口(receptive field)滑到,filter对局部数据计算;
- 涉及概念:
- 深度/ depth
- 步长/ stride
- 填充值/ zero-padding
- 参与共享机制;
- 假设每个神经元连续数据窗的权重是固定的;
- 固定每个神经元连接权重,可以看做模板;
- 每个神经元只关注一个特性;
- 需要估算的权重个数减少:一层1亿 => 3.5w
- 一组固定的权重和不同窗口内数据做内积:卷积
激励层(ReLU)
把卷积层输出结果做非线性映射
- Sigmoid
- Tanh(双曲正切)
- ReLU
- Leeky ReLU
- ELU
- Maxout
- ...
激励层
- CNN慎用sigmoid!慎用sigmoid!慎用sigmoid!
- 首先试RELU,因为快,但要小心点;
- 如果2失效,请用Leaky ReLU或者Maxout;
- 某些情况下tanh倒是有不错的结果,但是很少;
池化层/ Pooling Iayer
- 夹在连续的卷积层中间;
- 压缩数据和参数的量,减小过拟合;
Max pooling
average pooling
全连接层/ FC Iayer
- 两层之间所有神经元都有权重连接;
- 通常全连接层在卷积神经网络尾部;
典型的CNN结构为
- INPUT
- [[ CONV -> RELU ] * N -> POOL ?] * M
- [ FC -> RELU ] * K
- FC
2.卷积可视化理解
3.训练算法
- 同一般机器学习算法,先定义Loss function,衡量和实际结果之间的差距;
- 找到最小化损坏函数的W和b,CNN中用的算法是SGD ;
- SGD需要计算W和b的偏导;
- BP算法就是计算偏导用的;
- BP算法的核心是求导链式法则;
BP算法利用链式求导法则,逐级相乘直到求解出dw和db ;
利用SGD/ 随机梯度下降法,迭代和更新w和b
4.优缺点
优点
- 共享卷积核,优化计算量;
- 无需手动选取特征,训练好权重,即得特征;
- 深层次的网络抽取图像信息丰富,表达效果好;
缺点
- 需要调参,需要大样本量,GPU等硬件依赖;
- 物理含义不明确;
正则化与Dropout
1.正则化与Dropout处理
神经网络学习能力强可能会过拟合;
Dropout(随机失活)正则化:别一次开启所有学习单元
Regularization: Dropout
“randomly set some neurons to zero in the forward pass”
Dropout
实际实现:把预测阶段的时间转移到训练上
2.Dropout理解
防止过拟合的第1种理解方式
- 别让你的神经网络记住那么多东西(虽然CNN记忆力好);
- 学习的过程中,保持泛化能力;
防止过拟合的第2种理解方式:
- 每次都关掉一部分感知器,得到一个新模型,最后做融合,不至于听一家所言;
对Dropout想要有更细致的了解,参见
《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》 2014, Hinton, etc
《Dropout Training as Adaptive Regularization》 2013, Stefan Wager, etc
典型结构与训练
1.典型CNN
- LeNet, 这是最早用于数字识别的CNN;
- AlexNet, 2012ILSVRC比赛远超第2名的CNN,比LeNet更深,用多层小卷积层叠加替换单大卷积层;
- ZF Net,2013ILSVRC比赛冠军;
- GoogLeNet, 2014ILSVRC比赛冠军;
- VGGNet,2014ILSVRC比赛中的模型,图像识别略差于GoogLeNet,但是在很多图像转化学习问题(比如object detection)上效果很好;
- ResNet,2015ILSVRC比赛冠军,结构修正(残差学习)以适应深层次CNN训练;
- DenseNet,CVPR2017best paper, 把ResNet的add变成concat
LeNet
AlexNet
2012Imagent比赛第一,Top5准确度超过第二10%;
The number of neurons in each layer is given by 253440,186624,64896,64896,43264,4096,4096,1000
ZFNet
VGG
GoogLeNet
ResNet,即Deep Residual Learning network
微软亚洲研究院提出,ILSVRC 2015冠军比BGG还要深8倍;
DenseNet,CVPR2017 best paper;
2.训练与调优