深度学习
  • 前言
  • 第一章:经典网络
    • ImageNet Classification with Deep Convolutional Neural Network
    • Very Deep Convolutional Networks for Large-Scale Image Recognition
    • Going Deeper with Convolutions
    • Deep Residual Learning for Image Recognition
    • PolyNet: A Pursuit of Structural Diversity in Very Deep Networks
    • Squeeze-and-Excitation Networks
    • Densely Connected Convolutional Networks
    • SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
    • MobileNet v1 and MobileNet v2
    • Xception: Deep Learning with Depthwise Separable Convolutions
    • Aggregated Residual Transformations for Deep Neural Networks
    • ShuffleNet v1 and ShuffleNet v2
    • CondenseNet: An Efficient DenseNet using Learned Group Convolution
    • Neural Architecture Search with Reinforecement Learning
    • Learning Transferable Architectures for Scalable Image Recognition
    • Progressive Neural Architecture Search
    • Regularized Evolution for Image Classifier Architecture Search
    • 实例解析:12306验证码破解
  • 第二章:自然语言处理
    • Recurrent Neural Network based Language Model
    • Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
    • Neural Machine Translation by Jointly Learning to Align and Translate
    • Hierarchical Attention Networks for Document Classification
    • Connectionist Temporal Classification : Labelling Unsegmented Sequence Data with Recurrent Neural Ne
    • About Long Short Term Memory
    • Attention Is All you Need
    • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  • 第三章:语音识别
    • Speech Recognition with Deep Recurrent Neural Network
  • 第四章:物体检测
    • Rich feature hierarchies for accurate object detection and semantic segmentation
    • Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
    • Fast R-CNN
    • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
    • R-FCN: Object Detection via Region-based Fully Convolutuional Networks
    • Mask R-CNN
    • You Only Look Once: Unified, Real-Time Object Detection
    • SSD: Single Shot MultiBox Detector
    • YOLO9000: Better, Faster, Stronger
    • Focal Loss for Dense Object Detection
    • YOLOv3: An Incremental Improvement
    • Learning to Segment Every Thing
    • SNIPER: Efficient Multi-Scale Training
  • 第五章:光学字符识别
    • 场景文字检测
      • DeepText: A Unified Framework for Text Proposal Generation and Text Detection in Natural Images
      • Detecting Text in Natural Image with Connectionist Text Proposal Network
      • Scene Text Detection via Holistic, Multi-Channel Prediction
      • Arbitrary-Oriented Scene Text Detection via Rotation Proposals
      • PixelLink: Detecting Scene Text via Instance Segmentation
    • 文字识别
      • Spatial Transform Networks
      • Robust Scene Text Recognition with Automatic Rectification
      • Bidirectional Scene Text Recognition with a Single Decoder
      • multi-task learning for text recognition with joint CTC-attention
    • 端到端文字检测与识别
      • Reading Text in the Wild with Convolutional Neural Networks
      • Deep TextSpotter: An End-to-End Trainable Scene Text Localization and Recognition Framework
    • 实例解析:字符验证码破解
    • 二维信息识别
      • 基于Seq2Seq的公式识别引擎
      • Show and Tell: A Neural Image Caption Generator
      • Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
  • 第六章:语义分割
    • U-Net: Convolutional Networks for Biomedical Image Segmentation
  • 第七章:人脸识别
    • 人脸检测
      • DenseBox: Unifying Landmark Localization with End to End Object Detection
      • UnitBox: An Advanced Object Detection Network
  • 第八章:网络优化
    • Batch Normalization
    • Layer Normalization
    • Weight Normalization
    • Instance Normalization
    • Group Normalization
    • Switchable Normalization
  • 第九章:生成对抗网络
    • Generative Adversarial Nets
  • 其它应用
    • Holistically-Nested Edge Detection
    • Image Style Transfer Using Convolutional Nerual Networks
    • Background Matting: The World is Your Green Screen
  • Tags
  • References
由 GitBook 提供支持
在本页
  • 前言
  • 1. NASNet详解
  • 1.1 NASNet 控制器
  • 1.2 NASNet的强化学习
  • 1.3 Scheduled Drop Path
  • 1.4 其它超参
  • 2. 总结

这有帮助吗?

  1. 第一章:经典网络

Learning Transferable Architectures for Scalable Image Recognition

上一页Neural Architecture Search with Reinforecement Learning下一页Progressive Neural Architecture Search

最后更新于4年前

这有帮助吗?

tags: NAS, NASNet, AutoML

前言

在一文中我们介绍了如何使用强化学习学习一个完整的CNN网络或是一个独立的RNN单元,这种dataset interest的网络的效果也是目前最优的。但是NAS提出的网络的计算代价是相当昂贵的,仅仅在CIFAR-10上学习一个网络就需要500台GPU运行28天才能找到最优结构。这使得NAS很难迁移到大数据集上,更不要提ImageNet这样几百G的数据规模了。而在目前的行内规则上,如果不能在ImageNet上取得令人信服的结果,你的网络结构很难令人信服的。

为了将NAS迁移到大数据集乃至ImageNet上,这篇文章提出了在小数据(CIFAR-10)上学习一个网络单元(Cell),然后通过堆叠更多的这些网络单元的形式将网络迁移到更复杂,尺寸更大的数据集上面。因此这篇文章的最大贡献便是介绍了如何使用强化学习学习这些网络单元。作者将用于ImageNet的NAS简称为NASNet,文本依旧采用NASNet的简称来称呼这个算法。实验数据也证明了NASNet的有效性,其在ImageNet的top-1精度和top-5精度均取得了当时最优的效果。

阅读本文前,强烈建议移步到我的《》介绍文章中,因为本文并不会涉及强化学习部分,只会介绍控制器是如何学习一个NASNet网络块的。

1. NASNet详解

1.1 NASNet 控制器

在NASNet中,完整的网络的结构还是需要手动设计的,NASNet学习的是完整网络中被堆叠、被重复使用的网络单元。为了便于将网络迁移到不同的数据集上,我们需要学习两种类型的网络块:(1)Normal Cell:输出Feature Map和输入Feature Map的尺寸相同;(2)Reduction Cell:输出Feature Map对输入Feature Map进行了一次降采样,在Reduction Cell中,对使用Input Feature作为输入的操作(卷积或者池化)会默认步长为2。

NASNet的控制器的结构如图1所示,每个网络单元由BBB的网络块(block)组成,在实验中B=5B=5B=5。每个块的具体形式如图1右侧部分,每个块有并行的两个卷积组成,它们会由控制器决定选择哪些Feature Map作为输入(灰色部分)以及使用哪些运算(黄色部分)来计算输入的Feature Map。最后它们会由控制器决定如何合并这两个Feature Map。

图1:NASNet控制器结构示意图

更精确的讲,NASNet网络单元的计算分为5步:

  1. 从第hi−1h_{i-1}hi−1​个Feature Map或者第hih_ihi​个Feature Map或者之前已经生成的网络块中选择一个Feature Map作为hidden layer A的输入,图2是学习到的网络单元,从中可以看到三种不同输入Feature Map的情况;

  2. 采用和1类似的方法为Hidden Layer B选择一个输入;

  3. 为1的Feature Map选择一个运算;

  4. 为2的Feature Map选择一个元素;

  5. 选择一个合并3,4得到的Feature Map的运算。

在3,4中我们可以选择的操作有:

  • 直接映射

  • 1×11\times11×1卷积;

  • 3×33\times33×3卷积;

  • 3×33\times33×3深度可分离卷积;

  • 3×33\times33×3空洞卷积;

  • 3×33\times33×3平均池化;

  • 3×33\times33×3最大池化;

  • 1×31\times31×3卷积 + 3×13\times13×1卷积;

  • 5×55\times55×5深度可分离卷积;

  • 5×55\times55×5最大池化;

  • 7×77\times77×7深度可分离卷积;

  • 7×77\times77×7最大池化;

  • 1×71\times71×7卷积 + 7×17\times17×1卷积;

在5中可以选择的合并操作有(1)单位加;(2)拼接。

最后所有生成的Feature Map通过拼接操作合成一个完整的Feature Map。

1.2 NASNet的强化学习

NASNet的强化学习思路和NAS相同,有几个技术细节这里说明一下:

  1. NASNet进行迁移学习时使用的优化策略是Proximal Policy Optimization(PPO);

  2. 作者尝试了均匀分布的搜索策略,效果略差于策略搜索。

1.3 Scheduled Drop Path

在优化类似于Inception的多分支结构时,以一定概率随机丢弃掉部分分支是避免过拟合的一种非常有效的策略,例如DropPath。但是DropPath对NASNet不是非常有效。在NASNet的Scheduled Drop Path中,丢弃的概率会随着训练时间的增加线性增加。这么做的动机很好理解:训练的次数越多,模型越容易过拟合,DropPath的避免过拟合的作用才能发挥的越有效。

1.4 其它超参

在NASNet中,强化学习的搜索空间大大减小,很多超参数已经由算法写死或者人为调整。这里介绍一下NASNet需要人为设定的超参数。

  1. 激活函数统一使用ReLU,实验结果表明ELU nonlinearityDropPath效果略优于ReLU;

  2. 全部使用Valid卷积,padding值由卷积核大小决定;

  3. Reduction Cell的Feature Map的数量需要乘以2,Normal Cell数量不变。初始数量人为设定,一般来说数量越多,计算越慢,效果越好;

  4. Normal Cell的重复次数(图3中的NNN)人为设定;

  5. 深度可分离卷积在深度卷积和单位卷积中间不使用BN或ReLU;

  6. 使用深度可分离卷积时,该算法执行两次;

  7. 所有卷积遵循ReLU->卷积->BN的计算顺序;

  8. 为了保持Feature Map的数量的一致性,必要的时候添加1×11\times11×1卷积。

堆叠Cell得到的CIFAR_10和ImageNet的实验结果如图3所示。

2. 总结

NASNet最大的贡献是解决了NAS无法应用到大数据集上的问题,它使用的策略是先在小数据集上学一个网络单元,然后在大数据集上堆叠更多的单元的形式来完成模型迁移的。

NASNet已经不再是一个dataset interest的网络了,因为其中大量的参数都是人为设定的,网络的搜索空间更倾向于密集连接的方式。这种人为设定参数的一个正面影响就是减小了强化学习的搜索空间,从而提高运算速度,在相同的硬件环境下,NASNet的速度要比NAS快7倍。

NASNet的网络单元本质上是一个更复杂的Inception,可以通过堆叠 网络单元的形式将其迁移到任意分类任务,乃至任意类型的任务中。论文中使用NASNet进行的物体检测也要优于其它网络。

本文使用CIFAR-10得到的网络单元其实并不是非常具有代表性,理想的数据集应该是ImageNet。但是现在由于硬件的计算能力受限,无法在ImageNet上完成网络单元的学习,随着硬件性能提升,基于ImageNet的NASNet一定会出现。或者我们也可以期待某个土豪团队多费电电费帮我们训练出这样一个架构来。

图2:NASNet生成的CNN单元。(左):Normal Cell,(右)Reduction Cell

为了能让控制器同时预测Normal Cell和Reduction Cell,RNN会有2×5×B2\times5\times B2×5×B个输出,其中前5×B5\times B5×B个输出预测Normal Cell的BBB个块(如图1每个块有5个输出),后5×B5\times B5×B个输出预测Reduction Cell的BBB个块。RNN使用的是单层100个隐层节点的。

图3:NASNet的CIFAR10和ImageNet的网络结构

LSTM
NAS
Neural Architecture Search with Reinforecement Learning
图2:NASNet生成的CNN单元。(左):Normal Cell,(右)Reduction Cell
图1:NASNet控制器结构示意图
图3:NASNet的CIFAR10和ImageNet的网络结构