非线性系数——神经架构设计的实用指南
摘要
本质上,神经网络是一个任意可微的、参数化的函数。为任何任务选择神经网络架构,其复杂性不亚于在上述函数空间中搜索。过去几年中,“神经架构设计”在很大程度上等同于“神经架构搜索”(NAS),即暴力式的大规模搜索。NAS 在实际任务上取得了显著收益。然而,NAS 方法最终是在架构空间中的一个小邻域内搜索局部最优,而这些邻域所围绕的架构往往可追溯到几十年前基于 CNN 或 LSTM 的方法。在本工作中,我们提出了一种不同且互补的架构设计方法,称之为“零样本架构设计”(ZSAD)。我们开发了无需任何训练即可预测某架构在训练后于某任务上是否会达到相对较高测试或训练误差的方法。进而,我们根据架构定义本身解释该误差,并开发基于该解释修改架构的工具。这为深度学习从业者提供了前所未有的控制力。他们甚至在对未知任务写第一行代码之前,就能做出明智的设计决策。我们的首个主要贡献是表明神经架构的“非线性程度”是其性能的关键因果驱动因素,也是架构模型复杂度的首要方面。我们引入“非线性系数”(NLC),一种用于度量非线性的标量指标。通过广泛的实证研究,我们表明架构在训练前随机初始化状态下的 NLC 值是训练后测试误差的有力预测因子,且获得合适大小的 NLC 对于达到最优测试误差至关重要。NLC 在概念上简单,对任意前馈网络定义良好,计算容易且廉价,具有广泛的理论、经验和概念基础,可从架构定义中推导演示,并可通过我们的“非线性归一化”算法轻松控制。我们认为 NLC 是专门针对架构设计、广义上针对神经网络分析最有力的标量统计量。我们的分析由平均场理论推动,借此揭示了层的“元分布”。除 NLC 外,我们还发现并详述了一系列对测试和训练误差具有显著解释影响的指标与性质。我们利用这些指标和性质解释了广泛随机生成架构中误差变化的主要部分。我们将见解编撰成面向架构设计者的实用指南,认为其可显著缩短深度学习部署的试错阶段。我们的结果基于一个在谨慎性和严谨性上超越绝大多数其他深度学习研究的实验方案。我们研究了数据集、学习率、浮点精度、损失函数、统计估计误差和批次相互依赖性等对性能及其他关键性质的影响。我们倡导相信能显著加速架构设计研究进展的研究实践。
引用
@article{arxiv.2105.12210,
title = {The Nonlinearity Coefficient - A Practical Guide to Neural Architecture Design},
author = {George Philipp},
journal= {arXiv preprint arXiv:2105.12210},
year = {2021}
}
备注
This work is based on the PhD thesis with the same name, author, year and institution. Both works may be cited interchangeably