一、神经网络与卷积神经网络
1.层级结构 :
o 数据输入层/ Input layer :
1)去均值 :各维度中心化为零
2)归一化:幅度归一化到同样的范围
3)PCA/白化:PCA降维;白化 是对数据每个特征轴上的幅度归一化
o 卷积计算层/ CONV layer:
1)局部关联。每个神经元看做一个filter。
2)窗口(receptive field)滑动,filter对局部数据计算。
3)涉及概念:深度/depth 步长/stride 填充值/zero-padding。
参数共享机制 :假设每个神经元连接数据窗的权重是固定的
固定每个神经元连接权重,可以看做模板 :每个神经元只关注一个特性
需要估算的权重个数减少: 一层 1亿 => 3.5w
一组固定的权重和不同窗口内数据做内积: 卷积
o 激励层 / Activation layer :把卷积层输出结果做非线性映射(eg. Sigmoid, ReLU, Maxout...)
CNN慎用sigmoid
Relu出结果快,是首选,如果失效,用Leaky ReLU或者Maxout
o 池化层 / Pooling layer :夹在连续的卷积层中间; 压缩数据和参数的量,减小过拟合
o 全连接层 / FC layer: 两层之间所有神经元都有权重连接, 通常全连接层在卷积神经网络尾部
o Batch Normalization层(看情况)
2.数据处理
3.训练算法
先定义Loss Function -> 找到最小化损失函数的W和b, CNN用SGD(SGD需计算偏导)
BP算法利用链式求导法则,逐级相乘直到 求解出dW和db。利用SGD/随机梯度下降,迭代和更新W和b
4.优缺点
优点:1)共享卷积核,优化计算量 2)无需手动选取特征,训练好权重,即得特征 3)深层次的网络抽取图像信息丰富,表达效果好
缺点:1)需要调参 2)需要调参物理含义不明确
二、正则化与Dropout
1.正则化与Dropout处理
把预测阶段的时间转移到训练上
2.Dropout理解
关于dropout参考资料:
l 2014, Hinton, etc:《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》
l 2013, Stefan Wager, etc 《Dropout Training as Adaptive Regularization》
三、典型结构与训练
1.典型CNN
o LeNet,这是最早用于数字识别的CNN
o AlexNet,2012 ILSVRC比赛远超第2名的CNN,比LeNet更深,用多层小卷积层叠加替换单大卷积层。
o ZF Net,2013 ILSVRC比赛冠军
o GoogLeNet,2014 ILSVRC比赛冠军
o VGGNet,2014 ILSVRC比赛中的模型,图像识别略差于GoogLeNet,但是在很多图像转化学习问题(比如object detection)上效果很好
o ResNet,2015ILSVRC比赛冠军,结构修正(残差学习)以适应深层次CNN训练。