参与:Joni、侯韵楚、高振 让机器具备生物一样的进化能力一直是计算机科学的一个热门研究领域,今年三月份,谷歌的多位研究者提出了一种图像分类器的大规模进化方法,机器之心也曾报道过这项研究,参阅:《深度 | 谷歌和 OpenAI 新研究:如何使用达尔文进化论辅助设计人工智能算法?》。研究发布之后,机器之心的技术分析师又对这项重要研究进行了更加深度细致的解读。 论文:图像分类器的大规模进化(Large-Scale Evolution of Image Classifiers)
https://arxiv.org/pdf/1703.01041.pdf 摘要:神经网络已被证明可以有效地解决难题,但它们的架构设计起来颇具挑战性,即便只是图像分类问题也如此。进化算法(evolutionary algorithms)提供了一种能够自动发现这类网络的技术。尽管其计算需求显著,但是设计出能与大型人工设计的架构相媲美的进化模型如今已非天方夜谭。我们以空前的规模采用了简单的进化技术,并从平凡的初始条件出发,来发现可用于 CIFAR-10 和 CIFAR-100 数据集的模型。为此,我们使用直观的新型变异算子(mutation operators)来导航大型搜索空间。我们认为,演化一旦开始,其输出就应当是一个经过完整训练的模型,不需任何人进行参与。这项研究尤其重要的是结果的可重复性、可变性以及计算要求。 解读 不论是在学术研究还是产业应用方面,神经网络都展现了强大的能力。为了解决不同的实际问题,多种网络架构可根据特定的任务而建立。然而如今所创建的有效架构均为人工设计的成果,因此本文为解决神经网络图像分类方面的架构优化问题提出了新的方法。在进化算法中,所提出的方法通过操控直观突变,来自动适应最优的网络架构。此外,整个优化过程并不需要人为干预来获得经过完整训练的模型。为了深入了解,我们将会介绍神经网络中应用演化算法的细节,并将其与之前发表的论文进行比较。最后将会对本研究的整体质量进行简要评估。 在图像分类领域,只要拥有足够的训练数据,神经网络对于多个困难任务而言便是十分成功的分类器,但只有经过研究人员与工程师多年的研究和分析,才能实现表现出色的网络模型。因而以自动方式设计神经网络架构成为热议。若要实现架构的自动设计,一种直观的方法便是「搜索」。因此我们应用了进化算法的思想:受到生物演化机制的启发,算法将候选解决方案作为大群体中的个体,而后定义适应度函数,以度量每个候选解决方案的质量。我们还应用了迭代选择过程,其中相对最优的个体将作为「父代」进行繁殖,通过变异和重组在群体中产生新的后代。通过重复上述操作,子代会继承父代的优势,而突变则进一步提供了群体多样性。依次,我们终将搜索出最佳解决方案。 为了协助优化神经网络,神经演化最初仅用于进化神经网络的连接权重。以 NEAT(增强拓扑的神经演化)算法(Stanley 和 Miikkulainen)为例,它需要改变权重、增加现有节点之间的权重连接以及分割现有连接时插入节点这三种变异,在超参数搜索中也应用了其他类似的方法。但与如今广泛使用的神经网络(如 AlexNet 与 VGGnet)相比,上述方法仅适用于相当小规模的网络。这些传统方法侧重于演化过程的效率而非规模,故而不适于最先进的网络优化。另一方面,非演化性神经发现方法则更适合如今的「深度」网络。因此我们使用了其他替代方法(如贝叶斯优化和强化学习)来优化深度模型,尽管它们的缺陷很明显——网络层数仍需由研究人员证明,而非算法本身。故而所提出的研究强调了在没有人为干涉的条件下,其在研究网络架构的大规模搜索与基本初始条件方面的新颖性。实验比较如下:
表 1. 与人工设计的架构相对比。「C10+」和「C100+」这两列分别表示经过数据增强的 CIFAR-10 和 CIFAR-100 数据集的测试精度。「Reachable?」这一列则表示给定的人工设计的模型是否位于搜索空间内。「-」表示 Huang 等人的论文(2016b)未报告该值(并非原作者)。这张表大部分基于 Huang 等人的论文(2016a)。
表 2. 与自动发现的架构相对比。「C10+」和「C100+」分别包含经过数据增强的 CIFAR-10 和 CIFAR-100 数据集的测试精度。「-」表示该信息未报告或不为我们所知。请参考表 1 包括先进技术的人工设计结果。「离散参数」表明只能从少量值中挑选出参数(如从 {1,2,4} 中进行选择)。 由表 1 和表 2 可得,根据所提出的演化方法,C10+以及 C100+的分类性能超过了人工方法和其他自动发现的架构,并不需经过后处理阶段。 下文将对大规模演化方法做出详细阐述。 (责任编辑:本港台直播) |