深度学习模型的设计是一项具有挑战性的任务,需要在输出的分类精度与运行时间、能量消耗情况之间进行不同的权衡。虽然使用更简单的 DNN 设计可以缩短整体运行时间,但在给定的底层硬件平台的情况下,这可能会显著降低利用率。
发现高性能神经网络架构需要通过反复试验,并进行多年的广泛研究。就图像分类任务而言,最先进的 CNN 超越了深度链式结构布局,变成了越来越复杂的图拓扑结构,设计空间的这种组合爆炸使得架构的人工设计不仅费时,而且性能也可能不是最理想的。
近年来,人们越来越关注使用算法来进行超参数优化,使架构设计过程自动化。目标可以描述为在给定搜索空间中找到最佳架构,以便在给定任务上最大化验证其精度。例如,最初致力于基于三维存储器设计的硬件加速器 [164] ,已经利用以最小功耗为目标的 Eyeriss 模型进行设计空间探索。超参数优化工作可以针对多个设计目标进行优化,因此这是一个组合优化问题。
超参数定义神经网络的架构。在大多数支持 CNN 的 DNN 框架中,需要为卷积层指定的超参数有卷积核数量,卷积核大小,激活函数的类型,隐藏层的数量,卷积层、池化层和正则化的顺序,隐藏神经元的数量,卷积层和池化层的结构等。
在网络训练过程中,正则化可以帮助防止过度拟合,如使用 Dropout 的方法,按一定的概率将一部分中间层的单元暂时丢弃。与训练有关的超参数包含学习率、迭代次数等。
上述这些超参数在哪种情况下到底取哪个值,这没有简单的答案。如果存在确定这些设置的简单方法,程序员就会构建神经网络框架,自动设置这些超参数。但神经网络的训练和成功仍然受到对超参数经验选择的敏感性(如模型架构、损失函数和优化算法等)的影响。在没有扎实的数学理论支撑的情况下,最常见的是把这些超参数通过在不同数据集上反复试验来进行调整。
构建神经网络需要经历模型选择过程。模型的选择是非常耗时的,可能需要几分钟、几小时甚至几天来训练神经网络,并确定给定的一组超参数训练神经网络所能达到的程度。通常,建模的成功与在模型选择上花费的时间密切相关。模型选择是一个非常活跃的研究领域,涌现出了许多创新方法。如果将超参数视为一系列值组合的一个矢量,并将那些超参数的最佳神经网络得分作为目标函数,就可以考虑使用自然仿生算法来解决这些超参数
(本章节未完结,点击下一页翻页继续阅读)