大家好,欢迎来到专栏《AutoML》,在这个专栏中我们会讲述AutoML技术在深度学习中的应用,这一期讲述可微分架构用于模型搜索的基本概念和流程。

作者&编辑 | 言有三

前面两期我们给大家介绍了基于强化学习和进化算法的模型结构搜索,它们的共同特点就是搜索空间是连续的,并且计算量很大,本期我们介绍可微分架构的网络搜索,其搜索空间是连续的,并且相比强化学习和进化算法具有计算优势。

1 简介

所谓的可微分,指的就是候选的网络结构单元,或者说搜索空间不是离散的,而是连续的,这样带来的好处就是可以通过梯度下降算法直接进行优化。

这样的搜索空间,优化的不只是有限的滤波核的尺寸或者卷积连接的模式,而是可以发现复杂的拓扑结构,并且卷积和循环网络可以同时实现。

这样一来,强化学习中用于产生结构单元的RNN Controller不需要了,一些框架中的代理模型也不需要了,整个流程更加简单。

2 基于可微分架构的网络搜索

下面我们以一个经典的算法来对使用可微分架构进行网络搜索的基本流程进行介绍,方法为DARTS(Differentiable Architecture Search),它通过搜索最优的cell,然后将cell组合成大网络。

2.1 基本思想

由于网络的空间是巨大的,首先要进行一些约束,主要是针对cell的约束。

(1) 一个cell必须由输入节点,中间节点,输出节点和边构成,并且DARTS规定了输入节点有两个,输出节点有一个。之所以考虑到两个,是为了兼容CNN和RNN。对于CNN来说,就是前面两层输出,对于RNN,就是输入和隐藏层状态。

(2) 输出节点是所有中间节点的通道拼接结果。

结构示意图如下:

图(a)就是一个未经初始化的结构,其中没有展示两个输入节点,它们会一起输入到0,1和2都是中间节点,3是输出节点。图(b)中两个节点之间不同的颜色表示不同的转换操作,它们一起用加权的方式从输入到输出产生结果,如下式。

其中o表示不同操作,i表示当前节点,j表示序号小于i的所有节点。每一个操作被选中的概率用不同操作的softmax概率加权表示,如下:

如此一来,选择不同操作及其概率就是一个连续的过程,α就是要优化的参数,它和连接权重矩阵一样都可以用梯度下降算法进行优化。

2.2 优化过程

上面已经构建好了cell的结构以及需要搜索的连续参数空间,接下来就是进行优化,包括参数α和卷连接权重,这是一个双层优化问题,具体来说分两个步骤进行:

(1) 训练时,固定α参数矩阵,只优化连接权重W。

(2) 验证时,固定W参数矩阵,只优化α参数矩阵。

如此循环迭代,直到满足终止条件,下面是伪代码表示。

值得注意的是,在学习过程中,训练集和验证集比例大小为1:1,这与大部分任务设置不同。

在学习完α参数矩阵后,只保留其中概率值最大的操作,就得到了最终的结构单元,如上图中(c)到(d)的过程。

下图展示了在CIFAR10上学习到的一些单元:

其中normal cell就是不改变特征图大小,reduction就是改变特征图大小。

3 关于模型优化

公众号写过很多的模型解读了,如下是一些文章总结和直播链接以及资源下载。

【完结】总结12大CNN主流模型架构设计思想

「总结」言有三&天池深度学习模型设计直播汇总,赠超过200页课件

并且最近也出了一本新书,供对模型设计和优化感兴趣的朋友阅读。

言有三新书来袭!业界首次深入全面讲解深度学习模型设计

知识星球中最重要的板块就是模型结构1000变板块,比公众号的内容更深更广。其中的模型优化部分主要包括紧凑模型的设计,剪枝,量化,知识蒸馏,AutoML等内容的详细解读,感兴趣可以移步。

[1] Liu H, Simonyan K, Yang Y, et al. DARTS: Differentiable Architecture Search[J]. arXiv: Learning, 2018.

总结

本次我们简单介绍了基于连续可微分空间搜索的方法在模型的设计和优化中的基本流程,介绍了基于block作为最小搜索单元的代表性框架,但并没有对各种粒度的算法进行介绍。更多模型设计和优化,AutoML的内容,请大家移步有三AI知识星球长期学习。

有三AI知识星球

知识星球是有三AI的付费内容社区,里面包括各领域的模型学习,数据集下载,公众号的付费图文原稿,技术总结PPT和视频,知识问答,书籍下载,项目推荐,线下活动等资源,了解详细请阅读以下文章:

【杂谈】有三AI知识星球一周年了!为什么公众号+星球才是完整的?

【杂谈】万万没想到,有三还有个保密的‘朋友圈’,那里面都在弄啥!

转载文章请后台联系

侵权必究

往期精选

  • 【AutoML】如何选择最合适的数据增强操作

  • 【AutoML】激活函数如何进行自动学习和配置

  • 【AutoML】归一化(Normalization)方法如何进行自动学习和配置

  • 【AutoML】优化方法可以进行自动搜索学习吗?

  • 【AutoML】损失函数也可以进行自动搜索学习吗?

  • 【AutoML】如何使用强化学习进行模型剪枝?

  • 【AutoML】强化学习如何用于模型量化?

  • 【AutoML】强化学习如何用于模型蒸馏?

  • 【AutoML】强化学习如何用于自动模型设计(NAS)与优化?

  • 【AutoML】进化算法如何用于自动模型搜索(NAS)

  • 【AutoML】当前有哪些可用的AutoML平台?

  • 【星球知识卡片】残差网络家族10多个变种学习卡片,请收下!

  • 【星球知识卡片】移动端高效率的分组网络都发展到什么程度了?

  • 【星球知识卡片】注意力机制发展如何了,如何学习它在各类任务中的应用?

  • 【星球知识卡片】模型剪枝有哪些关键技术,如何对其进行长期深入学习

  • 【星球知识卡片】模型量化的核心技术点有哪些,如何对其进行长期深入学习

  • 【星球知识卡片】模型蒸馏的核心技术点有哪些,如何对其进行长期深入学习

  • 【星球知识卡片】图像生成都有哪些核心技术,如何对其进行长期深入学习

  • 【星球知识卡片】AutoML都有哪些核心技术,如何对其进行长期深入学习

【AutoML】连续可微分架构如何用于网络结构搜索相关推荐

  1. (ICLR-2019)DARTS:可微分架构搜索

    DARTS:可微分架构搜索 paper题目:DARTS: DIFFERENTIABLE ARCHITECTURE SEARCH paper是CMU发表在ICLR 2019的工作 paper链接:地址 ...

  2. 一元函数 导数、连续、微分的关系

    1.微分,表示在一个极小区间里面函数的变化值: 用式子表示为 dy=lim[(f(x)-f(xo)] (x->xo) , 令 y=f(x) , 则有 ** dy= (dy/dx)dx=y' * ...

  3. 【神经网络结构搜索综述】NAS的挑战和解决方案

    [GiantPandaCV导读]上一篇中,笔者翻译了国外一篇介绍Automl和NAS的博客,点这里回顾.这一篇是笔者对<A Comprehensive Survey of Nerual Arch ...

  4. 网络结构搜索之梯度可微

    前面介绍了强化学习方法,但屠龙刀毕竟不是人人有.梯度可微算法在保证精度可接受的前提下大幅缩短了训练周期,开启了网络结构搜索的平民化浪潮. MobileNetV2 FBNet ShiftNet Gumb ...

  5. 神经网络结构搜索NAS简述

    导读:自动化机器学习(AutoML)变得越来越火,是机器学习下个发展方向之一.其中的神经网络结构搜索(NAS)是其中重要的技术之一. 这是小编的其他文章,希望对大家有所帮助,点击即可阅读 人工智能常用 ...

  6. 一文详解神经网络结构搜索(NAS)

    本文作者为东北大学自然语言处理实验室 2018 级研究生胡驰,他的研究方向包括神经网络结构搜索.自然语言处理.雷锋网 AI 科技评论经作者授权发表本文章. 近年来,深度学习的繁荣,尤其是神经网络的发展 ...

  7. 网络摄像头+net_今日 Paper | 神经网络结构搜索;视觉目标;人物识别;视频3D人体姿态估计等...

    目录 基于进化算法和权值共享的神经网络结构搜索 检测视频中关注的视觉目标 包含状态信息的弱监督学习方法进行人物识别 基于解剖学感知的视频3D人体姿态估计 RandLA-Net:一种新型的大规模点云语义 ...

  8. 详解随机神经网络结构搜索 (SNAS)

    本文出自商汤研究院(SenseTime Research).原论文发表于ICLR 2019,及arXiv:1812.09926 神经网络结构搜索(Neural Architecture Search, ...

  9. DNN结构构建:NAS网络结构搜索和强化学习、迁移学习

    前言 谷歌推出的NASNet架构,用于大规模图像分类和识别.NASNet架构特点是由两个AutoML设计的Layer组成--Normal Layer and Reduction Layer,这样的效果 ...

最新文章

  1. DFS(6)——hdu1342Lotto
  2. php写js跳转页面,php实现页面的三种跳转
  3. FPGA之道(84)功能仿真之Verilog Test Fixture
  4. mybaits十二:使用collection嵌套结果集查询
  5. 盘点近期大热对比学习模型:MoCo/SimCLR/BYOL/SimSiam
  6. pku 2635 The Embarrassed Cryptographer 数论——素数筛选法+模拟大数除法
  7. java mysql blob 存储图片_Java操作mysql存储图片
  8. 【TensorFlow】学习资源汇总以及知识总结
  9. PTA-7-3 A除以B (10分)
  10. java证书不通过,java-证书不会偶尔发送
  11. 启动和停止一个服务,修改服务的启动类型 Start and Stop Service for windows
  12. scrapy信号扩展
  13. 【laravel VS lumen】
  14. Java与模式.pdf
  15. cad画圆如何确定圆心_CAD如何利用对象捕捉追踪功能来确定小圆圆心以及矩形的角点位置...
  16. Linux内核参考链接与书籍
  17. SMAP土壤湿度数据的下载与hdf-tif转格式
  18. VSCode中Markdown 无法显示图片
  19. java8 协程_Java8 异步编程—CompletableFuture
  20. windows10怎么用cmd编译C语言,win10怎么样使用cmd来运行程序

热门文章

  1. Windows的cmd ping不通vmware的linux系统ip
  2. 一天搞定CSS:盒模型content、padding、border、margin--06
  3. c语言 int top,顺序栈(C语言,静态栈)
  4. android 支付宝月账单 统计图_2019年你抢了多少微信红包?花了多少?(微信账单查看教程)...
  5. Springbooot集成Shiro简单使用
  6. Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
  7. Xcode 新项目删除 storyboard 文件
  8. php 计算月,PHP自然月的算法
  9. java class修改_【原创】Java基础之简单修改jar包中的class
  10. 阿里云资深专家李国强:云原生的一些趋势和新方向