位置:首页 > 新闻资讯 > 行业技术 > 正文

自动化所提出多自由度网络架构协同搜索新方法

发布时间:2021-06-16 11:00:58   来源:网络   点击:


 赋予机器人类水平的学习设计能力,使之能够自主感知环境并设计满足各种约束需求的计算模型是机器学习领域的前沿方向之一。

  设计满足计算量、时延等特定资源约束的高性能神经网络架构在实际人工智能应用中有着重要意义,是数据获取、模型设计、训练部署这一闭环中的组成成分。手工设计网络架构是一个耗时耗力的过程,需大量试错实验,且更换硬件平台、更换资源约束条件时,还需重新设计网络架构。近年来兴起的自动网络架构搜索技术给高性能网络架构的设计带来了新颖而经济的解决思路。基于梯度更新的可微分网络架构搜索算法在显著降低搜索开销的情况下,能够从巨大的架构空间中搜索到有效的网络架构。但由于可微分网络架构搜索中超网络权重共享、单路径采样和宽度粗粒度离散性的搜索空间,搜索到的网络架构很难同时达到准确性和资源约束上的最优。可微分网络架构搜索仍有很多问题亟待解决。 

  近日,中国科学院自动化研究所智能感知与计算研究中心团队从算子、深度和宽度三个自由度重新思考当前主流的可微分网络架构搜索算法,通过实验分析与验证,提出一种新的网络架构自动搜索方法,可稳定高效地从庞大的架构空间中搜索到高准确性的网络架构,同时严格满足时延约束。该方法能有效缓解可微分搜索中算子崩溃、架构冗余、无法满足精准资源约束的问题,使用单张Titan RTX GPU的情况下,在ImageNet上用1.8天搜索到76.9% top-1准确性的网络架构。


  该研究分别提出了双路采样算法、汇点连接空间和弹性缩放策略。

  针对算子层面的搜索,该研究实验发现现有的单路采样方法会导致算子崩溃现象发生,即在搜索过程的早期阶段算法就在某些搜索层中聚焦于某一个特定的算子,并在余下的搜索过程中陷入其中保持不变,导致搜索到非最优的网络架构。针对此问题,该研究设计了多种采样方式,发现加入随机路径采样的双路采样方法可有效缓解算子崩溃现象发生。

  针对深度层面的搜索,现有算法通常直接将跨层(Skip)算子加入到待搜索候选算子集中。但由于跨层算子的非参数性以及与其他算子的互斥性,这种设计方式会导致网络深度的搜索不稳定,在整个搜索过程中有非常大的抖动。此外,跨层算子的直接加入也会引起架构冗余现象发生。为了解决这个问题,该研究设计了一个汇点连接搜索空间,将跨层算子的搜索剥离出来,增加深度搜索稳定性,同时也解决了架构冗余问题。

  针对宽度层面的搜索,该研究发现由于宽度搜索空间粗粒度的离散性和无界的资源约束目标函数项,现有方法很难搜索到严格满足特定资源约束的网络架构,且对资源约束目标函数项的超参数设置十分敏感。为缓解这些问题,该研究提出弹性缩放策略在搜索过程中动态自适应地调整超网络中每一搜索层中每一搜索算子的宽度。

  相关成果已被计算机视觉领域学术会议ECCV2020接收。

 

 

三自由度网络架构搜索框架图

 

搜索过程中架构深度变化和架构冗余

弹性缩放策略

 

不同资源约束目标函数项下弹性缩放的有效性

 

GPU和CPU上搜索架构结果,GPU时延测试批大小为32,CPU时延测试批大小为1