作为NASNet的同期论文,BlockQNN同样地将目光从整体网络转换到了block-wise,整体思路大概是MetaQNN的block版,增加了一些细节地小修改。配合Early Stop Strategy,计算资源十分少,但性能较同期的NASNet差点

来源:晓飞的算法工程笔记 公众号

论文: Practical Block-wise Neural Network Architecture Generation

  • 论文地址:https://arxiv.org/abs/1708.05552v2

Introduction


  为了让网络搜索更高效,论文提出block-wise网络生成方法BlockQNN,整体的思想跟同期的NasNet十分类似,不同点在于这篇论文是基于Q-learning进行学习的,可以认为是MetaQNN的block版。BlockQNN以block为单位进行搜索,每个block包含多层,然后再将block按预设的框架堆叠成完整的网络,这样不仅能提高搜索的效率,还可以提高搜索结果的泛化能力。
  BlockQNN主要有以下有点:

  • Effective,自动生成的网络的性能与人工设计的网络相当。
  • Efficient,首个考虑block-wise的自动网络生成方法,配合Early Stop Strategy仅需要32GPU3天。
  • Transferable,CIFAR上搜索到的架构仅添加些许修改就能迁移到ImageNet上。

Methodology


Convolutional Neural Network Blocks

  现代卷积网络大都可以看成是多个相似block的堆叠,只是每个block的超参数不同。因此,针对block的精心设计不仅可以达到更高的准确率,还可以有更好的泛化能力。为此,论文主要针对block结构的自动生成。

  CNN网络的前向推理可以看成一个有向无环图,为了统一,使用网络结构编码(Network Structure Code,NSC)进行表示,如图2。每个block由一组5-D NSC向量表示,前3个值分别表示层序号,操作类型,核大小,后两个值表示输入对应的层序号,如层包含单个输入,则第二个输入序号为0。如果层的输出没有作为其它层的输入,则conate成最终的输出。这里的卷积操作指的是预激活卷积单元(a Pre-activation Convolutional Cell, PCC),包含ReLU、卷积以及BN,这样的设定能减少搜索空间并保持较好的性能。

  基于以上搜索到的block,将普通的网络转换成对应的block版本,CIFAR-10和ImageNet数据机的堆叠网络如图3所示,block内没有下采样模块,下采样直接使用池化层,每个block会重复N遍来满足不同的要求。如果特征图大小下降了一半,则权重增加两倍。

Designing Network Blocks With Q-Learning

  论文使用Q-learning加速搜索,Q-learning是强化学习的其中一种,目的是选择合适的action来最大化累计奖励,包含agent,states和actions。state s ∈ S s\in S s∈S代表当前层结构NSC,action a ∈ A a\in A a∈A为后续层结构NSC的选择,由于NSC合集是有限的,state和action空间也是有限且离散的,保证了搜索空间相对较小。

  状态转移过程 ( s t , a ( s t ) ) → ( s t + 1 ) (s_t, a(s_t)) \to (s_{t+1}) (st​,a(st​))→(st+1​)如图4a所示, t t t代表当前层,而图4b则是图4a的状态转移构建的实际网络。agent的主要任务是选择block的NSC结构,block的结构可以认为是action的选择轨迹 τ a 1 : T \tau_{a_{1:T}} τa1:T​​,比如一连串NSCs。论文将层选择过程视为马尔科夫决策,假定在某个block中表现好的层在别的block中也可以表现得不错。

  为了找到最好的结构,agent需要最大化所有可能路径的回报期望 R τ R_{\tau} Rτ​, R \mathbb{R} R为累计回报。

  通常使用公式2的Bellman’s Equation进行公式1的优化,给予状态 s t ∈ S s_t \in S st​∈S以及后续的操作 a ∈ A ( s t ) a \in A(s_t) a∈A(st​),定义最大的总期望回报为 Q ∗ ( s t , a ) Q^*(s_t, a) Q∗(st​,a),即state-action对的Q-value。

  由于期望很难直接求得,所以一般采取迭代式Bellman’s Equation,以经验假设的方式解决公式2。 α \alpha α为学习率,决定新旧状态的占比, γ \gamma γ为折扣率,决定后续回报的权重, r t r_t rt​为当前状态 s t s_t st​得到的中间回报, s T s_T sT​代表最终状态, r T r_T rT​为对应网络收敛后的验证准确率。

  由于 r t r_t rt​不能显示地计算,这里采用reward shaping的方法加速训练,之前的方法比如MetaQNN都直接将中间奖励设为零,这会导致RL耗时,因为在刚开始的阶段, s T s_T sT​的Q-value会明显高于其它状态(终止层Q-value无折扣率,直接是准确率?),导致网络偏向于构建很少层的小block(倾向于选择终止层)。

  这里对reward shaping进行了实验,可以看到使用后能显著提高收敛速度。
  完整的学习过程如图4c,agent首先采用一系列结构编码来构建block并构建完整的网络,然后训练生成的网络,将验证准确率作为reward来更新Q-value,最后,agent选择另外的结构编码来获得更好block结构。

Early Stop Strategy

  尽管block-wise的生成方式能增加搜索速度,但仍然十分耗时,这里采用early stop strategy来进一步加速。early stop strategy可能带来较低的准确率,如图6所示,early stop strategy的准确率明显低于最终的准确率,意味着early stop strategy没有完全体现block的效果。同时,论文注意到FLOPs以及block的density与最终准确率为负相关的

  基于上面的发现,论文重新定义了reward函数, μ \mu μ和 ρ \rho ρ为平衡因子,新的reward函数能更好地关联最终准确率。基于early stop strategy和较小的搜索空间,仅需要32卡搜索3天。

Framework and Training Details


Distributed Asynchronous Framework

  论文使用分布式异步框架进行搜索,如图7所示,包含三部分:

  • master node: 采样batch block结构。
  • controller node: 使用block构建完整网络结构,分配给compute node。
  • compute node: 训练并返回网络的验证准确率。

Training Details

  • Epsilon-greedy Strategy,有 ϵ \epsilon ϵ概率进行随机action选取, 1 − ϵ 1- \epsilon 1−ϵ概率选择最优action, ϵ \epsilon ϵ随训练逐步下降,有助于agent平滑地从探索模式转换为榨取模式。
  • Experience Replay,与MetaQNN一样,保存结构和对应准确率,在一定区间内直接采样存储的结构进行agent训练。

Results


Block Searching Analysis

  这里展示了Epsilon-greedy Strategy的效果,在开始榨取模式后,准确率极速提升。

  这里验证PCC的作用,可以看到,PCC的效果十分明显。

Results on CIFAR

Transfer to ImageNet

CONCLUSION


  作为NASNet的同期论文,BlockQNN同样地将目光从整体网络转换到了block-wise,整体思路大概是MetaQNN的block版,增加了一些细节地小修改。配合Early Stop Strategy,计算资源十分少,但性能较同期的NASNet差点。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

BlockQNN:NASNet同期,商汤提出block-wise版的MetaQNN | CVPR 2018相关推荐

  1. 【AI周报】AI与冷冻电镜揭示「原子级」NPC结构;清华、商汤提出「SIM」方法兼顾语义对齐与空间分辨能力

    01 # 行业大事件 施一公等团队登Science封面:AI与冷冻电镜揭示「原子级」NPC结构,生命科学突破 今日,<Science>杂志以封面专题的形式发表了 5 篇论文,共同展现了通过 ...

  2. AAAI 2021 | 商汤提出BSN++: 时序动作提名生成网络

    摘要 · 看点 在 AAAI 2021 上,商汤科技城市计算研发团队提出了基于互补边界回归和尺度平衡交互建模的时序动作提名生成网络(BSN++),针对现有方法存在大量边界噪声.缺乏提名之间的关系建模以 ...

  3. Open Images冠军,商汤提出解偶检测分支新方法TSD并入选CVPR 2020

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 编者按:此前,在文章<商汤科技57篇论文入选ICCV 2019,13项竞赛夺 ...

  4. 三维网格精简算法java版_ISMAR 2020 | 商汤提出手机端实时单目三维重建系统

    导读:商汤研究院和浙江大学CAD&CG国家重点实验室合作研发了一个手机端实时单目三维重建系统Mobile3DRecon.与现有的基于RGBD的在线三维重建或离线生成表面网格的系统不同,该系统结 ...

  5. CVPR 2020 |商汤提出应对尺度变化的目标检测新算法

    在CVPR 2020上,为了更好的解决物体检测中的尺度问题,商汤EIG算法中台团队重新设计了经典的单阶段检测器的FPN[1]以及HEAD结构,通过构造更具等变性的特征金子塔,以提高检测器应对尺度变化的 ...

  6. CVPR 2020丨8比特数值也能训练模型?商汤提出训练加速新算法

    本文转自AI科技评论. 本文介绍的是CVPR2020入选论文<Towards Unified INT8 Training for Convolutional Neural Network> ...

  7. CVPR 2021 | 商汤提出最强时序动作提名修正网络:TCANet

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:商汤学术 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 摘 ...

  8. 北航、商汤提出的网络二值化新算法 IR-Net,到底好使不?

    [CSDN编者按]在CVPR 2020上,商汤研究院链接与编译组和北京航空航天大学刘祥龙老师团队提出了一种旨在优化前后向传播中信息流的实用.高效的网络二值化新算法IR-Net.不同于以往二值神经网络大 ...

  9. 清华、商汤提出SIM方法,让自监督学习兼顾语义对齐与空间分辨能力

    ©作者 | 机器之心编辑部 来源 | 机器之心 对于本文提出的全新自监督学习方法 Siamese Image Modeling 中,网络从同一图像的遮盖视图预测另一个增强视图的密集特征,使其兼顾 In ...

最新文章

  1. 02面向对象设计原则
  2. C#命名规范 C#控件的缩写大全
  3. 【C 语言】数组 ( 数组指针 | 数组指针定义 | 直接定义 数组指针 )
  4. SAP 系统参数设置 RZ10 RZ11
  5. day22 模块-collections,time,random,pickle,shelve等
  6. php获取跳转后url,php获取跳转后真实url的方法
  7. python实现图灵机器人帮你回复微信好友消息
  8. TableView 截图
  9. 磁盘碎片整理工具:Diskeeper 2010简体中文专业豪华版+有效激活
  10. 帮Python找“对象”
  11. Oracle 故障整理
  12. 记:从百度空间搬家到博客园--写博客要写的舒服
  13. 三菱modbusRTU通讯实例_PLC编程 | 用三菱PLC控制机械手实例
  14. chat后缀域名_.chat域名简介
  15. 友盟分享长图片,如何截取长图片去分享
  16. Spark实用议题系列(02)--- DataFrame的各种join总结和实例
  17. java ftp上传文件 linux_linux下用java实现ftp上传、下载文件
  18. git如何撤销某次提交记录
  19. 1235813找规律第100个数_2013年全国中考数学规律探索试题汇编
  20. 50本永不过时的经典计算机书籍

热门文章

  1. 传统文化术语翻译整理
  2. 如何在AutoCAD中将卫星底图变为有坐标参考信息的
  3. WINDOWS系统强制刷新本机DNS的方法cmd命令displaydns,ipconfig,flushdns(图文)
  4. 【模拟】FOJ 2244 Daxia want to buy house
  5. 情绪波动不是你的错:惴惴不安时,大脑发生了什么?
  6. Golang-migrate简单使用
  7. vr电力刀闸事故应急演练实训系统开发
  8. C# 中的MDI 窗体
  9. 背景位置——精确单位
  10. 3.你有三个碗:分别是7,4,3升容量。只有7升那个是满的。用最少次数倒出分别是2,2,和3升水。