代码链接 https://github.com/guoyongcs/NAT
现有的深度神经网络结构要么是人工设计的(基于人工设计的网络结构的局限性:设计有效的神经网络结构在很大程度上依赖于大量的人类专业知识。此外,人类的设计过程不能充分利用整个结构空间,因此设计的网络结构可能不是最优的),要么是通过神经网络结构搜索 (NAS) 方法自动搜索得到的(基于NAS搜索到的网络结构的局限性:由于存在非常大的搜索空间这些方法通常产生次优架构,导致有限的表示性能或巨大的计算成本)。因此,即使对于设计良好的模型,优化其架构(例如,移除冗余操作 卷积或pooling)以获得更好的性能和/或降低计算成本也是必要且重要的。
对于网络结构自适应与模型压缩已经提出了几种方法,通过学习每个卷积的最佳设置,包括内核大小、步长和滤波器的数量来获得紧凑的体系结构。为了获得网络结构,模型压缩方法检测并去除原始模型中的冗余通道。然而,这些方法只改变了卷积的设置,却忽略了调整网络结构中的连接可能更为关键的事实(有参考文献证明13,14)。最近,Cao等人提出了一种自动架构压缩方法[5]。然而,这种方法必须为每个给定的预训练模型学习一个压缩模型,因此对不同的网络结构的泛化能力有限。与这些方法不同的是,本文试图学习适用于任意网络结构的通用优化器。
为了实现网络结构的优化,作者将优化问题转化为马尔可夫决策过程(MDP)并提出了一个神经网络结构转换器(Neural Architecture Transformer,简称为 NAT)的方法。基于MDP,利用强化学习来学习NAT来获得优化策略,w.r.t不同体系结构。为了更好地利用网络结构中操作的邻接信息,提出利用图卷积网络(GCN)建立网络结构优化模型。该方法可以用计算复杂度更低的计算操作(skip connection or removing the connection)代替网络结构中冗余的操作,从而实现性能提高的同时,保证不会引入额外的参数和计算量。NAT模型可以作为一个通用的架构优化器,它以任何架构作为输入,输出一个优化的架构。在实验中,将NAT应用于手工构建和基于NAS的网络结构,并在CIFAR-10[22]和ImageNet[8]两个基准数据集上演示了其性能。
可借鉴 https://www.sohu.com/a/359713755_129720