版权声明:===========版权所有,可随意转载,欢迎互相交流=========== https://blog.csdn.net/weixin_42446330/article/details/85110113
以下是我的学习笔记,以及总结,如有错误之处请不吝赐教。
前面介绍了MLP、RNN以及相关案例,本文主要介绍一种新的神经网络:CNN卷积神经网络。
CNN卷积神经网络:
卷积神经网络相比RNN多了很多层级,主要包括以下几个层次:input layer数据输入层、conv卷积计算层、Activation layer激励层、pooling layer池化层、FC layer全连接层、Batch Normalization层。
- 数据输入层/ Input layer有三种常见数据处理方式:
①去均值:把输入数据各个维度都中心化到0; ②归一化:幅度归一化到同样的范围 ; ③PCA/白化 :用PCA降维、白化是对数据每个特征轴上的幅度归一化; - 卷积计算层/ CONV layer 作用是:局部关联,每个神经元看做一个filter滤波器。窗口(receptive field)滑动,filter对局部数据计算;涉及概念:深度/depth、步长/stride、填充值/zero-padding 卷积层参数共享机制的性质:
①假设每个神经元连接数据窗的权重是固定的;
②固定每个神经元连接权重,可以看做模板,每个神经元只关注一个特性;
③需要估算的权重个数减少:一层1亿减少至3.5万;
④一组固定的权重和不同窗口内数据做内积即卷积。 - 激励层:把卷积层输出结果做非线性映射,前面介绍DNN时就详细讲过,没看的可以查看:DL课程:MLP、DNN、Wide&deep model及相关案例代码。 激励层主要有以下几点注意事项:
①CNN慎用sigmoid!
②首先试RELU,因为快,但要小心点;
③如果2失效,请用Leaky ReLU或者Maxout ;
④某些情况下tanh倒是有不错的结果,但是很少。 - 池化层 / Pooling layer:夹在连续的卷积层中间,主要作用是压缩数据和参数的量,减小过拟合: 主要包括:Max pooling和average pooling:
- 全连接层 / FC layer :就是普通的所有神经元都有权重连接的层,通常接在卷积神经网络的尾部。
- 典型的CNN结构为:
- 卷积神经网络优缺点:
优点:①共享卷积核,优化计算量;②无需手动选取特征,训练好权重,即得特征;③深层次的网络抽取图像信息丰富,表达效果好;
缺点:①需要调参,需要大样本量,GPU等硬件依赖;②物理含义不明确 - 损失函数、优化算法以及正则化参考与上面一样。
CNN发展:
- LeNet,这是最早用于数字识别的CNN :
- AlexNet,2012 ILSVRC比赛远超第2名的CNN,比LeNet更深,用多层小卷积层叠加替换单大卷积层:
- ZF Net,2013 ILSVRC比赛冠军 :
- GoogLeNet,2014 ILSVRC比赛冠军:
- VGGNet,2014 ILSVRC比赛中的模型,图像识别略差于GoogLeNet,但是在很多图像转化学习问题(比如object detection)上效果很好 :
- ResNet,即Deep Residual Learning network,是2015ILSVRC比赛冠军,结构修正(残差学习)以适应深层次CNN训练,比VGG还要深8倍,主要是有一个快速通道与后面的神经元直连,因此可以在BP时计算梯度为相加的形式,不会产生梯度弥散:
具体案例代码:欢迎关注我的github
To be continue......