关注云加社区 提升技术能力
学习云计算,AI,大数据,小程序开发等技术
助你一臂之力 成为技术大牛
AutoML和神经结构搜索(NAS)是深度学习城堡的新国王。它们是一种快速的方法,可以在不需要太多工作的情况下为机器学习任务获得很高的准确性。
那么它是如何工作的呢?
以下是你需要了解的关于AutoML和NAS的所有信息。
神经结构搜索(NAS)
开发神经网络模型通常需要大量的体系结构工程。有时你可以运用迁移学习,但是如果你真的想要获得最佳性能,通常最好设计自己的网络。这需要专业技能并且具有挑战性。我们甚至可能不知道当前最先进技术的局限性。
这就是NAS的用武之地。NAS是一种搜索最佳神经网络架构的算法。大多数算法以下列方式工作。首先定义一组可能用于我们网络的“构建块”。例如,最先进的NASNet论文为图像识别网络提出了这些常用的块:
在NAS算法中,一个控制器递归神经网络(Rnn)对这些构造块进行了采样,将它们组合在一起,形成了一种端到端的体系结构。这种架构通常与最先进的网络具有相同的风格,例如 ResNets或DenseNets,但是使用了非常不同的块组合和配置。
然后,对这种新的网络体系结构进行了训练,使其能够收敛,从而在一个被保留的验证集上获得一定的精度。由此产生的精确性用于更新控制器,以便控制器随着时间的推移生成更好的体系结构,可能通过选择更好的块或建立更好的连接。控制器权值随策略梯度更新。整个端到端的设置如下所示。
NAS算法
这是一种相当直观的方法。简单地说:有一个算法,抓取不同的块,并将这些块放在一起形成一个网络。训练和测试那个网络。根据你的结果,调整你用来建立网络的块,以及你如何把它们组合在一起。
此算法成功的部分原因是它的约束和假设。NAS发现的体系结构是在一个比现实世界小得多的数据集上进行训练和测试的。之所以这样做,是因为在类似ImageNet这样的大型项目上进行培训需要很长时间。但是,我们的想法是,在规模较小、但结构类似的数据集上性能更好的网络,也应该在更大、更复杂的数据集上表现得更好,这在深度学习时代通常是如此。
第二,搜索空间本身是相当有限的。NAS的设计是为了建造与当前最先进的建筑在风格上非常相似的建筑。对于图像识别,这是在网络中有一组重复的块,同时逐步向下采样,如下图所示。在目前的研究中,选择一组可供选择的模块来构建重复块也是相当普遍的。NAS发现的网络的一部分是这些块是如何连接在一起的。查看下面右边的ImageNet网络的最佳发现块和结构。
建筑搜索研究进展
美国宇航网的论文是进步非常快的,因为它为深入研究提供了一个新的方向。不幸的是,Google之外的普通用户无法访问它,效率也很低。使用450 GPU需要3-4天才能找到那个伟大的建筑。因此,NAS的许多最新研究都集中在提高这一过程的效率上。
渐进神经结构搜索(PNAS)建议使用所谓的基于序贯模型的优化(SMBO)策略,而不是在Nasnet中使用强化学习。使用SMBO,我们不再随机地从外部集合中抓取和尝试块,而是测试块,并按照增加的复杂性顺序搜索结构。这并没有缩小搜索空间,但它确实使搜索以更明智的方式完成。SMBO基本上是说:与其一次尝试所有的事情,不如让我们从简单开始,只有当我们需要的时候才变得复杂。这种PNAS方法的效率是原始NAS的5-8倍(因此成本更低)。
有效的神经结构搜索(ENAS)这是试图使通用架构搜索更高效的另一次尝试,这一次对于使用GPU的普通从业者来说是可用的。作者的假设是,NAS的计算瓶颈是训练每个模型的收敛性,只测量它的测试精度,然后再进行测试。
研究和实践反复表明,迁移学习有助于在较短的时间内达到较高的精度,因为接受过类似任务训练的网络发现了相似的权重;传递学习基本上就是网络权重的传递。ENAS算法迫使所有模型共享权重,而不是从零开始训练到收敛。我们在以前的模型中尝试过的任何块都将使用以前学到的权重。因此,我们实际上是在转移学习每次我们训练一个新的模型,收敛得更快。
论文中的表格显示了ENAS的效率有多高,用一台1080 TiGPU进行半天的训练。
一种新的深度学习方式:AutoML
许多人称AutoML为深度学习的新方法,这是对整个系统的改变,而不是设计复杂的深层网络,我们只运行一个预设的NAS算法。谷歌最近通过提供云自动ML。只要上传你的数据,谷歌的NAS算法将为你找到一个架构,快速和容易。
AutoML的这个想法就是简单地抽象出深度学习的所有复杂部分,你只需要数据。然后,深度学习就像任何其他的插件工具一样,变成了一个非常简单的插件工具。获取一些数据并自动创建一个由复杂神经网络驱动的决策函数。
云AutoML的价格确实很高,为20美元,不幸的是,一旦经过训练,你就无法导出您的模型,你将不得不使用他们的API在云上运行你的网络。还有其他几种完全免费的选择,但需要做更多的工作。
AutoKeras是使用ENAS算法的GitHub项目。它可以使用pip安装。因为它是用Keras编写的,所以很容易控制和使用,所以你甚至可以深入研究ENAS算法并尝试进行一些修改。
NAS和AutoML的未来预测
很高兴看到过去几年里自动化深度学习方面取得了巨大的进步。它使用户和企业更容易接触到它;深入学习的力量也变得更容易为公众所接受。但是,总有一些改进的余地。
架构搜索变得更加高效:在一天的训练中找到一个带有单个GPU的网络,就像使用ENAS一样,是相当惊人的。然而,我们的搜索空间仍然相当有限。目前的NAS算法仍然使用手工设计的结构和构建块,它们只是将它们以不同的方式组合在一起。
一个强大的,潜在的突破性的未来方向将是一个更广泛的搜索,真正寻找新的架构。这些算法可能会在这些庞大而复杂的网络中揭示出更多隐藏的深层学习秘密。当然,这样的搜索空间需要高效的算法设计。
NAS和AutoML的这一新方向为人工智能社区提供了令人兴奋的挑战,也为科学领域的另一次突破提供了机会。
原文标题《Everything you need to know about AutoML and Neural Architecture Search》
作者:George Seif
译者:lemon
不代表云加社区观点,更多详情请查看原文链接
推荐阅读:
关注云加社区,回复 3 加读者群
更多技术干货,请点击阅读原文