最近梳理了一下卷积神经网络设计相关的论文(这个repo现在只列出了最重要的一些论文,后面会持续补充):
Neural network architecture designgithub.com
1. Handcrafted
1.1 Efficient
- [1608.08021] PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
- [1610.02357] Xception: Deep Learning with Depthwise Separable Convolutions
- [1612.08242] YOLO9000: Better, Faster, Stronger
- [1704.04861] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- [1707.01083] ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
- [1708.05234] FaceBoxes: A CPU Real-time Face Detector with High Accuracy
- [1711.07264] Light-Head R-CNN: In Defense of Two-Stage Object Detector
- [1801.04381] MobileNetV2: Inverted Residuals and Linear Bottlenecks
- [1803.10615] SqueezeNext: Hardware-Aware Neural Network Design
- [1807.11164] ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design
1.2 High accuracy
- [2012] ImageNet Classification with Deep Convolutional Neural Networks
- [1409.1556] Very Deep Convolutional Networks for Large-Scale Image Recognition
- [1409.4842] Going Deeper with Convolutions
- [1512.00567] Rethinking the Inception Architecture for Computer Vision
- [1512.03385] Deep Residual Learning for Image Recognition
- [1602.07261] Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
- [1603.05027] Identity Mappings in Deep Residual Networks
- [1608.06993] Densely Connected Convolutional Networks
- [1804.02767] YOLOv3: An Incremental Improvement
2. Automated
- [1707.07012] Learning Transferable Architectures for Scalable Image Recognition
- [1807.11626] MnasNet: Platform-Aware Neural Architecture Search for Mobile
- [1812.00332] ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware
- [1812.03443] FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search
- [1812.08934] ChamNet: Towards Efficient Network Design through Platform-Aware Model Adaptation
3. Useful component
- [1502.03167] Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
- [1603.05201] Understanding and Improving Convolutional Neural Networks via Concatenated Rectified Linear Units # CReLU
- [1709.01507] Squeeze-and-Excitation Networks # SE
- [1708.02002] Focal Loss for Dense Object Detection
4. Activation function
- [1502.01852] Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification # PReLU
5. Weight initialization
- [2018] Residual Learning Without Normalization via Better Initialization # ZeroInit
感觉每做一个子方向,最好还是要适时做一些梳理和总结,一方面方便日后查阅,另一方面梳理和总结的过程能够进一步加深对这个问题的认识。在做梳理的过程中,我越发觉得网络自动设计的重要性。
18年12月份arxiv上一下多了三篇网络自动设计的文章,感觉后面网络自动设计的相关论文应该会越来越多。不同的业务场景和硬件环境对神经网络的需求不一样,几乎没有一个神经网络可以“一招鲜,吃遍天”,一般情况都会针对不同业务场景和硬件环境专门设计神经网络。
早期的时候业务场景比较少、硬件环境也比较单一,全靠人工设计也未尝不可。但是随着人工智能的发展,业务场景会越来越多,硬件环境也越来越多样。如果全靠人力来设计神经网络,成本会越来越高,神经网络设计的自动化是一个必然的趋势。
就像资讯网站早期的时候,向所有用户推荐一样的资讯,早期用户量不大,人工找到大家兴趣点的最大公约数还比较容易,随着用户量越来越大,用户兴趣点的公约数越来越难找,甚至几乎没有,既然找不到公约数,那干脆千人千面好了,但是人工要做到千人千面需要极大的成本,这个时候基于推荐的资讯APP应运而生。
这个过程也像图像特征子的发展历程一样,早期通过手工设计特征子,例如SIFT、HOG、LBP、Haar等等,设计有效的特征子很难,只有少部分对这个领域有着很深理解的人才有这个能力;后面深度学习横空出世,深度卷积神经网络通过自学习特征子,学出来的特征子在大多数任务中都比手工设计的特征子好用。而且每当我们训练一个模型,其实就设计出来了一套特征子,虽然我们自己都没意识到。
以后网络自动设计成熟后,我们每运行一下网络自动设计程序,就会设计出一个新的神经网络结构。到那个时候,神经网络结构的设计就会如同现在的特征子的设计一样,在你训练一个模型的过程中,程序就自动帮你设计了一个最合适的神经网络结构。