神经网络结构搜索Neural Architecture Search

文章探讨了神经网络结构搜索的方法,包括超参数优化、随机搜索以及可微分的神经架构搜索(如Darts)。Darts通过定义结构参数的可微目标函数,能更有效地寻找高准确率且计算量适中的网络结构。此外,还提到了在搜索过程中考虑延迟和计算量的重要性。
摘要由CSDN通过智能技术生成

感谢博主神经网络结构搜索 (3/3): 可微方法 Differentiable Neural Architecture
NAS

  • 参数和超参数
    超参数:1)神经网络结构;2)优化算法(SGD或adam)
    神经网络结构搜索——集中在结构超参数
    在这里插入图片描述

  • 神经网络结构搜索 定义:寻找最优的神经网络结构,使得验证集准确率最大化,同时考虑计算量和内存开销
    准确率最大化(resnet > vgg);考虑计算量和内存开销(mobilenet> resnet)
    Seacher Space:手动设置的一组候选的超参数(四种卷积核数量,三种卷积核大小,两种stride大小)
    搜索空间:一个包含所有可能的网络结构的集合(人为指定)
    搜索空间大小:(卷积核种类 x 卷积核大小种类 x stride种类)^(卷积层数)

  • NAS难点
    1)每次搜索代价大(一组超参需要训练一个网络)
    2)搜索空间太大

  1. 随机搜索(不容易找到好的结构,可以作为baseline做对照——如果在测试集上,有更高的准确率,则比随机搜索更好)
    流程:
    均匀随机选择一组超参数–> 训练以学习模型自身参数(算法收敛)–> val验证模型准确率
    重复以上过程,看哪组准确率最高(交叉验证——调超参数的最标准方法)

  2. 循环神经网络寻找神经网络结构并用强化学习训练RNN(2017,过时了,只需要思想)

  3. 可微结构搜索(DNAS/Darts, 2019)
    Darts定义的目标函数,是神经网络结构参数的可微函数,可以对目标函数关于超参数求梯度,以更新超参数(更快,更好)
    流程:
    自定义多种block(每种block内部的结构各不相同)作为候选方案;自定义层数(多少个block串联)–> Super-net,可选方案的并联网络–>训练Super-net,寻找一条输入到输出的路径(最终的神经网络结构)
    在这里插入图片描述
    α为神经网络结构的超参数,w为神经网络参数
    在这里插入图片描述
    最终保留一条路径,最小化CEloss(最大化训练准确率)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    α说明了在Super-net中哪个路径最重要,如果超网看作是一张图,则神经网络结构搜索就是选择图中的一条路径

损失优化:除了最大化准确率,考虑计算量,时间延迟(移动设备端)
措施:在神经网络结构搜索时考虑延迟,使得找到的神经网络结构有利于减小预测延迟(计算量)
实施:需要知道每种block的延迟具体有多大(候选模块重复一百次计算的平均时间)
在这里插入图片描述
在这里插入图片描述
将延迟放入优化函数中
在这里插入图片描述
入决定牺牲多少准确率来换取更快的计算(入小,注重精度)

  • darts
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值