神经结构搜索进展概述
发布时间:2021-08-07 17:34
近年来,深度学习技术在大量的计算视觉任务上取得了巨大的成功,深度神经结构是一个决定性能的关键要素,全自动的神经结构搜索方法的研究近年来受到了越来越多的关注。全自动的神经结构搜索方法是指针对特定的任务,通过算法自动地学习出适用的深度神经结构。各类神经结构搜索方法在探索高性能、高效率的神经结构方面已经展示出了巨大的潜力。从性能评估方法、搜索空间、结构搜索策略3个维度对神经结构搜索方法进行了分类概述:重点介绍了4种降低计算开销的性能评估方法,2类典型的神经结构搜索空间以及基于离散空间和基于连续空间的2种搜索策略。基于连续空间的NAS算法正逐渐成为NAS算法的重要发展方向。
【文章来源】:电信科学. 2019,35(05)
【文章页数】:8 页
【部分图文】:
神经结构搜索方法的流程[11]
-16]。除此之外,也可以将提高神经结构的计算速度作为搜索目标之一[17]。在神经结构的搜索过程中,NAS算法需要不断地评估当前神经结构的性能是否达到了预定的搜索目标。最直接的性能评估方法是对当前的神经结构做一次完整训练并在测试集上测试其性能,但是过多的训练会带来巨大的计算开销并使搜索过程变得非常缓慢。因此,降低性能评估过程中的计算开销是性能评估方法的主要研究方向。目前NAS算法中的性能评估方法主要可以分成以下4种。(1)在小规模代理任务上估计神经结构的性能。如图2所示,这种做法是在一个小规模的代理(proxy)任务上进行神经结构搜索,在搜索过程中用神经结构在代理任务上的性能来估计它在实际任务上的性能,当搜索完成后再将神经结构迁移到实际任务上。图2基于代理任务的NAS算法流程构建代理任务的常用方式是使用和实际任务同类型但规模更小的数据集[12-13,15-16,18-19]或分辨率更低的数据集[20]。采用小规模代理任务的NAS算法降低了计算开销,但神经结构迁移成功的前提是搜索空间中的神经结构在代理任务上的性能排序和在实际任务上性能排序基本相似。当代理任务和实际任务差异较大时,代理任务有限的参考价值将降低性能评估的准确性。(2)利用神经结构在训练过程早期的性能估计最终的性能。这种做法是将神经结构只训练少量的迭代次数并在训练过程中记录神经结构的性能曲线,通过已有的性能曲线来插值未来的性能并提前停止训练预期性能不好的神经结构。例如,2019097-2
·47·电信科学2019年第5期缩小了搜索空间,加速了神经结构的搜索过程。和搜索整个神经结构相比,只搜索2种cell结构可以减小NAS算法的搜索时间。神经结构的深度可以灵活地扩展。当搜索出了最优的cell结构后,通过调整cell的堆叠数量,可以灵活地控制神经结构的深度和复杂度以适应不同的应用场景。例如,NASNet[16]和BlockQNN[15]通过增大堆叠次数N成功地利用在CIFAR-10上搜索出的cell结构构建出了在ImageNet数据集上性能优越的神经结构。虽然基于cell的搜索空间被广泛应用于NAS算法,但通过cell堆叠整体神经结构的方式依然需要人工的设计和优化。这种堆叠方式可以认为是一种元结构(meta-architecture)[11]。在未来,元结构的设计也应作为NAS算法的一部分。3.2基于chain结构的搜索空间在基于chain结构的搜索空间中,神经结构由一连串的层组成。其中,第i1层的输出作为第i层的输入,第i层的输出再作为第i+1层的输入。和基于cell结构的搜索空间相比,基于chain结构的搜索空间简化了神经结构的局部结构,搜索空间中的神经结构没有复杂的cell结构,但神经结构的所有部分都由NAS算法在搜索中确定。典型的基于chain结构的搜索空间是MNASNet[17]中的分解分层搜索空间(factorizedhierarchicalsearchspace)。如图4所示,神经结构中的层被分为了若干block,一个block内包含若干类型相同的层。每个块内层的类型、层的超参数以及层的数量都由算法在搜索过程中确定。基于chain结构的搜索空间平衡了局部结构的搜索复杂度和整体结构的搜索复杂度
本文编号:3328230
【文章来源】:电信科学. 2019,35(05)
【文章页数】:8 页
【部分图文】:
神经结构搜索方法的流程[11]
-16]。除此之外,也可以将提高神经结构的计算速度作为搜索目标之一[17]。在神经结构的搜索过程中,NAS算法需要不断地评估当前神经结构的性能是否达到了预定的搜索目标。最直接的性能评估方法是对当前的神经结构做一次完整训练并在测试集上测试其性能,但是过多的训练会带来巨大的计算开销并使搜索过程变得非常缓慢。因此,降低性能评估过程中的计算开销是性能评估方法的主要研究方向。目前NAS算法中的性能评估方法主要可以分成以下4种。(1)在小规模代理任务上估计神经结构的性能。如图2所示,这种做法是在一个小规模的代理(proxy)任务上进行神经结构搜索,在搜索过程中用神经结构在代理任务上的性能来估计它在实际任务上的性能,当搜索完成后再将神经结构迁移到实际任务上。图2基于代理任务的NAS算法流程构建代理任务的常用方式是使用和实际任务同类型但规模更小的数据集[12-13,15-16,18-19]或分辨率更低的数据集[20]。采用小规模代理任务的NAS算法降低了计算开销,但神经结构迁移成功的前提是搜索空间中的神经结构在代理任务上的性能排序和在实际任务上性能排序基本相似。当代理任务和实际任务差异较大时,代理任务有限的参考价值将降低性能评估的准确性。(2)利用神经结构在训练过程早期的性能估计最终的性能。这种做法是将神经结构只训练少量的迭代次数并在训练过程中记录神经结构的性能曲线,通过已有的性能曲线来插值未来的性能并提前停止训练预期性能不好的神经结构。例如,2019097-2
·47·电信科学2019年第5期缩小了搜索空间,加速了神经结构的搜索过程。和搜索整个神经结构相比,只搜索2种cell结构可以减小NAS算法的搜索时间。神经结构的深度可以灵活地扩展。当搜索出了最优的cell结构后,通过调整cell的堆叠数量,可以灵活地控制神经结构的深度和复杂度以适应不同的应用场景。例如,NASNet[16]和BlockQNN[15]通过增大堆叠次数N成功地利用在CIFAR-10上搜索出的cell结构构建出了在ImageNet数据集上性能优越的神经结构。虽然基于cell的搜索空间被广泛应用于NAS算法,但通过cell堆叠整体神经结构的方式依然需要人工的设计和优化。这种堆叠方式可以认为是一种元结构(meta-architecture)[11]。在未来,元结构的设计也应作为NAS算法的一部分。3.2基于chain结构的搜索空间在基于chain结构的搜索空间中,神经结构由一连串的层组成。其中,第i1层的输出作为第i层的输入,第i层的输出再作为第i+1层的输入。和基于cell结构的搜索空间相比,基于chain结构的搜索空间简化了神经结构的局部结构,搜索空间中的神经结构没有复杂的cell结构,但神经结构的所有部分都由NAS算法在搜索中确定。典型的基于chain结构的搜索空间是MNASNet[17]中的分解分层搜索空间(factorizedhierarchicalsearchspace)。如图4所示,神经结构中的层被分为了若干block,一个block内包含若干类型相同的层。每个块内层的类型、层的超参数以及层的数量都由算法在搜索过程中确定。基于chain结构的搜索空间平衡了局部结构的搜索复杂度和整体结构的搜索复杂度
本文编号:3328230
本文链接:https://www.wllwen.com/kejilunwen/sousuoyinqinglunwen/3328230.html