4.NN(神经网络)发展-分类
https://www.zhihu.com/question/34681168
https://www.cnblogs.com/52machinelearning/p/5821591.html
http://blog.csdn.net/invadertroy/article/details/76253778
https://mp.weixin.qq.com/s/iWaHZEAvPO0pw_u7DVGBqg
http://blog.csdn.net/u011974639/article/details/76146822
http://blog.csdn.net/xbinworld/article/details/45619685
多通道网络????-DPN???
-
发展依赖
-
ILSVC( ImageNetLarge Scale Visual Recognition Challenge)提供大量标注数据;
http://image-net.org/challenges/LSVRC/2017/ 最后一届 2017
http://image-net.org/challenges/LSVRC/2012/results.html
http://image-net.org/challenges/LSVRC/2014/results.php
imageNet侧重分类、检测、识别webvision侧重于对图像和视频数据的学习和理解
-
GPU,这种高度并行的计算神器;
-
算法的改进,包括网络变深、数据增强、 ReLU、 Dropout等。
模型名 | AlexNet | VGG | GoogLeNet | ResNet |
---|---|---|---|---|
初入江湖 | 2012 | 2014 | 2014 | 2015 |
层数 | 8 | 19 | 22 | 152 |
Top-5错误 | 16.4% | 7.3% | 6.7% | 3.57% |
DataAugmentation | + | + | + | + |
Inception(NIN) | – | – | + | – |
卷积层数 | 5 | 16 | 21 | 151 |
卷积核大小 | 11,5,3 | 3 | 7,1,3,5 | 7,1,3,5 |
全连接层数 | 3 | 3 | 1 | 1 |
全连接层大小 | 4096,4096,1000 | 4096,4096,1000 | 1000 | 1000 |
Dropout | + | + | + | + |
LocalResponse Normalization | + | – | + | – |
BatchNormalization | – | – | – | + |
-
通用准则
1. 避免表达瓶颈,特别是在网络靠前的地方。featuremap的宽和高基本都会逐渐变小,但是不能一下子就变得很小。输出的维度channel,一般来说会逐渐增多,否则网络会很难训练。
2. 可以在低维嵌入上进行空间汇聚而无需担心丢失很多信息。比如在进行3x3卷积之前,可以对输入先进行降维而不会产生严重的后果。假设信息可以被简单压缩,那么训练就会加快。(GoogLeNetInspection 1×1 降维后大尺度卷积)
3. 平衡网络的宽度与深度。
4.任意nxn的卷积都可以通过1xn卷积后接nx1卷积来替代。GoogLeNet作者发现在网络的前期使用这种分解效果并不好,还有在中度大小的featuremap上使用效果才会更好(对于mxm大小的featuremap,建议m在12到20之间)。
-
LeNet5
http://blog.csdn.net/xzzppp/article/details/52253551
-
AlexNet_5+3(2012)
特点:数据增强,重叠最大池化,Relu,LRN(有助于增强模型泛化能力-被VGG否定),dropout。GPU训练
-
VGG_16+3(2014)
http://www.bubuko.com/infodetail-2304506.html
特点:3*3,较小的卷积核多层来扩展感受野,可减少参数;使用1*1卷积核增强模型的判别能力;否定LRN(效果甚微,反倒的计算量增加不少);迁移学习,训练简单模型A,使用模型A的权值初始化复杂模型B;多尺度{S-32,S,S+32},卷积填充0,测试时填充图像相邻部分。
整体使用的卷积核都比较小(3x3),基本不用LRN,从结果上看,用LRN效果反而更差。
-
GoogLeNet_21+1(2014)
http://blog.csdn.net/shuzfan/article/details/50738394
特点:网中网(NetworkIn Network)的结构,结点也是一个网络,GoogLeNet中的Inception,也如ResNet中的DBA;优化网格缩小的方式,综合conv和pool避免瓶颈,减少计算量;辅助梯度,为了避免梯度消失,增加两个辅助Softmax,用于训练时向前传导梯度,测试时去掉;平均池化。
Inception,用不同大小卷积核卷积(把池化也作为一列并列进来),将结果作为不同的神经元,也意味着不同尺度特征的融合,增加了网络的深度和宽度。如上次输出128神经元,Inception输出256神经元,其中包含1*1<64>+ 3*3<128>+5*5<32>+pool<32>=256,理想版本如下:
InceptionV1,为缩减计算量,先用1×1卷积降维(减少上层神经元),然后再进行大尺寸卷积,减少了参数。
InceptionV2,结合VGG(3*3)、(1×n,n×1)改进结构,如下:
优化网格缩小的方式,通常先inception再pooling,计算量大,但先pooling再inception,可能导致特征表达瓶颈。因此综合两种方式,如下:
DeeperBottleneckArchitectures:网络的参数减少了很多(1*1*64+3*3*64+1*1*256+1*1*256=4.5*256<<3*3*256 = 9*256,参数减少了一倍)。
左侧18|34层结构中使用,右侧50|101|152结构中使用
原作中无实现细节,下为RyanDahl实现的ResNet: