结构体在cuda核函数里面不能用吗_【AutoML】连续可微分架构如何用于网络结构搜索...

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

作者&编辑 | 言有三

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

1 简介

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

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

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

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

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

2.1 基本思想

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

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

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

结构示意图如下:

8c394552c96b83478a485734a9477367.png

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

5db7c7dc9c0bb162e362b048aaf0ea63.png

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

9cd04f21ad3d8bde72e387ff288dea11.png

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

2.2 优化过

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

d71b80b630dbfb4ca8e4172277f6f24e.png

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

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

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

a4fddd5648e6bd45a1c618d80abae5ee.png

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

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

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

2a53e1fbd368ed33262fc8dca07d220a.png

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

3 关于模型优化

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

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

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

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

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

44e49992151069ddf192bd09f592d0de.png

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

57fb5993290d8a8f1a2a8de5340a2655.png

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

总结

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

336441a9ce3bec38d7aaa7aa54dd5e40.png
有三AI知识星球

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

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

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

AutoML系列文章

1 【AutoML】AutoML专栏上线,跟Google一起见证调参党的末日?

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

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

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

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

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

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

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

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

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

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

12 【AutoML】连续可微分架构如何用于网络结构搜索

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值