【EcoNAS: Finding Proxies for Economical Neural Architecture Search】读后感

鄙人近日阅读了来自 CVPR2020 的一篇论文, 在这里与大家分享一下读后感, 有些东西可能不一定正确, 还望大家指正.

Exploration Study

进化算法是 NAS 中一种常用的搜索算法, 使用进化算法时, 如果将每一个候选网络训练到完全收敛来评估性能的话, 需要耗费大量的资源 (时间, GPU等). 于是有研究者就提出使用代理 (proxy) 来提高搜索效率. 何为代理呢? 代理只是使用了使得训练更加快速的设置, 例如: 减少网络层数, 减少训练迭代次数. 其他的比如网络结构, 也就是层间的链接以及对候选操作的选择是一致的.

然而之前并没有工作系统性地对这些参数进行评估. 于是, 本篇文章首先筛选出了四类决定代理任务的关键因素 (这部分内容可以在原文3.1节找到):

  • 卷积网络的通道数 ( c c c)
  • 输入图片的分辨率 ( r r r)
  • 训练轮数 ( e e e)
  • 采样率 ( s s s) (个人理解这里所谓的 采样率 指的是在原训练数据集上选取多少比例的数据的含义)

为了方便研究, 作者制作了一种表格, 并约定使用 ( c a , r b , s c , e x ) (c_a, r_b, s_c, e_x) (ca,rb,sc,ex) (其中 a , b , c a, b, c a,b,c表示表格的索引, x x x 直接表示训练的轮数). 表格如下图所示, 表格上方还有一段说明, 然而这一段说明我没看懂什么意思, 还望大家赐教.
例如 (这个示例来自论文 ), 有参数 ( c 0 , r 0 , s 0 , e 600 ) (c_0, r_0, s_0, e_{600}) (c0,r0,s0,e600) 表示的具体含义为, 初始训练是使用的卷积通道数为 36 36 36, 输入图片的大小为 32 × 32 32 \times 32 32×32, 使用全部训练数据进行训练, 并进行 600 600 600 轮训练.

为了评估这些简化设定是否可靠, 作者使用了 Spearman Coefficient 作为评估参数. 这里我们不去讨论什么是 Spearman Coefficient, 只是简单的说明一下该指标的作用: Spearman Coefficient 是一种用来衡量两个变量的相关性的非参数指标. 它利用单调函数评价两个统计变量的相关性. 就该文章而言, 斯皮尔曼系数越高,简化设置就越可靠. 也就是说, 筛选模型时, 应尽可能筛选出斯皮尔曼系数较大的简化设置.

作者通过一系列的实验得出了这样的结论 (具体论述过程可看原文 3.3. Experimental Observations部分):

  • 在迭代次数相同的情况下,使用较多训练样本和较少训练次数这种训练组合, 比使用较多训练次数和较少训练样本这种训练组合更具有一致性 (这里的 一致性 我感觉可以直接理解为前文所表述的可靠).
  • 降低输入图像的分辨率有时是可行的,而减少网络的通道比降低分辨率更可靠。

Efficient Proxy

作者结合上述的研究和结论, 确定了 ( c 4 , r 4 , s 9 , e 60 ) (c_4, r_4, s_9, e_{60}) (c4,r4,s9,e60) 作为简化设置, 因为这种设置表现出相对更高的一致性和加速比 (加速比这个概念我没有细究, 感觉使用了简化设置肯定能加速, 但是具体加速多少呢, 也就是怎么测量我并没有在文章中看到这一部分 ) (这一部分也可以从原文中找到 4.1. Efficient Proxy)

Hierarchical Proxy

除去使用了 Efficient Proxy, 作者还提出了 Hierarchical Proxy. 原因是: 使用相同代理训练和评估每个架构仍然会损害搜索效率, 因为没有希望的网络计算量很大并且浪费了大部分搜索时间.

关于这部分内容我不太想讲算法的具体流程, 因为这部分在作者的文章中描述的很清楚. 这里为就贴两幅图来帮助大家理解:

其他

论文中还有实验和附录等部分, 虽然这部分的内容我也看了, 但是我感觉没有什么好说的, 也就不写在这里了.

相关推荐
孙同学要努力6 小时前
全连接神经网络案例——手写数字识别
人工智能·深度学习·神经网络
小言从不摸鱼11 小时前
【NLP自然语言处理】深入解析Encoder与Decoder模块:结构、作用与深度学习应用
人工智能·深度学习·神经网络·机器学习·自然语言处理·transformer·1024程序员节
羊小猪~~17 小时前
神经网络基础--什么是神经网络?? 常用激活函数是什么???
人工智能·vscode·深度学习·神经网络·机器学习
_清豆°17 小时前
机器学习(四)——神经网络(神经元、感知机、BP神经网络、梯度下降、多层神经网络、Python源码)
python·神经网络·机器学习·感知机·梯度下降·神经元·多层神经网络
lzt232320 小时前
深度学习中的 Dropout:原理、公式与实现解析
人工智能·python·深度学习·神经网络·transformer
IT猿手20 小时前
基于卷积神经网络(CNN)的时间序列预测,15个输入1个输出,可以更改数据集,MATLAB代码
人工智能·深度学习·神经网络·算法·matlab·cnn
埃菲尔铁塔_CV算法20 小时前
深度学习神经网络:开启智能未来的钥匙
人工智能·深度学习·神经网络
i嗑盐の小F21 小时前
【SPIE出版 | ISSN: 0277-786X,EI检索稳定!】2024年计算机视觉与图像处理国际学术会议 (CVIP 2024,11月15-17日)
大数据·图像处理·人工智能·深度学习·神经网络·机器学习·计算机视觉
小哥谈1 天前
源码解析篇 | YOLO11:计算机视觉领域的新突破 !对比YOLOv8如何 ?
人工智能·深度学习·神经网络·yolo·目标检测·机器学习·计算机视觉
周末不下雨1 天前
跟着小土堆学习pytorch(六)——神经网络的基本骨架(nn.model)
pytorch·神经网络·学习