1.30 演化学习调研
演化学习是基于演化算法来处理机器学习面临的优化问题的研究方向。演化算法源于 20 世纪 60 年代,随着计算设备的出现,研究者设计了在计算机中模拟生物进化过程的算法,包括遗传算法、演化规划算法、演化策略算法等,并发现这样的算法具有一定的优化能力,并且对优化目标函数的限制很少,可以用于目标函数不可导、不连续,甚至写不出目标函数的情况。 随着时间的发展,这些最初的算法以及之后设计的变种现在可以统称为演化算法(Evolutionaryalgorithms),因为这些算法有相近的算法结构,只是在参数选取、算子设计等实现上有所不同。机器学习任务中常常涉及到复杂的优化问题,例如学习模型的参数优化、监督学习中复杂损失函数的优化、聚类分析中样本划分的优化等。因此尝试使用演化算法来处理机器学习任务中的优化问题,就成为很自然的选择。
演化学习的思想可以追溯到计算机科学之父 AlanTuring 关于如何设计“智能机器”的设想[1] ,在他的设想中,机器需要通过学习,从“儿童机器”成长为有智能的机器,而这样一种“儿童”机器的设计,则是通过借鉴自然进化的原理进行设计。在演化算法出现后,演化算法的先驱也对处理机器学习问题颇有兴趣[2] 。而演化学习蓬勃发展,则是在 20 世纪 90 年代。
随着以 BP 算法为代表的神经网络方法的兴起,神经网络的优化成为受关注的问题,由于多层神经网络模型的总体性能与其权值关系复杂,对权值的优化目标函数存在大量局部最优解,传统基于梯度的优化方法往往受局部最优解所困,而神经网络结构的优化则是更为困难的问题。在这个时期,借助演化算法的通用优化能力,涌现出一批演化神经网络的工作,例如机器学习顶级会议 NIPS 上就有不少相关工作[3-5] ,在人工智能顶级会议 IJCAI’99 和 IJCAI’01 上都有专门的演化算法分组报告,IJCAI’03 上则是演化算法与神经网络结合的分组报告。然而,此后随着统计学习在机器学习中份量的增加与神经网络的衰退, 以及演化算法本身的一些不足,演化算法在上述会议的身影也暗淡下来。
本文受邀对演化学习在近 5 年的顶级会议上的发展进行调研,为此我们翻阅了 IJCAI(国际人工智能联合大会)、AAAI(美国人工智能协会会议)、ICML(国际机器学习会议),以及 NIPS(神经信息处理系统进展会议)上发表的论文,其中 IJCAI 和 AAAI 一般认为是人工智能领域顶级国际会议,ICML 和 NIPS 一般认为是机器学习领域的顶级国际会议。这里需要说明的是,演化学习更多的论文发表在演化计算领域很好的期刊和会议上,包括 IEEE Transactions on EvolutionaryComputation、Evolutionary Computation journal、PPSN、GECCO 等,IJCAI、AAAI、ICML、NIPS 会 议上的论文并不能反映出演化计算和演化学习发展的全貌。然而从人工智能和机器学习会议的角度,也许更能反映出演化计算对领域之外的影响和外领域对演化
计算的认识。还需要说明的是,由于文章查阅量较大,虽然笔者已尽力细致阅读,但难免会有疏漏。在这四个会议上,演化学习的相关论文可以被分为三类:理论基础、算法改进,以及算法应用 。
● 在理论基础方面,AAAI’11 短文 [6] 对一种演化算法的收敛性进行了分析;AAAI’12 论文 [7] 对演化算法在一类 NP 难问题上的参数时间复杂度进行了分析;IJCAI’15 论文 [8] 对演化算法在二值约束问题上的近似性能进行了分析。从分析的指标来看,由收敛性、时间复杂度到近似性能,说明理论基础方面的研究越来贴近实际应用的需求;从分析的问题来看,从具体问题到更一般的问题,可以覆盖的应用越来越广。
● 在算法改进方面,AAAI’10 论文 [9] 针对 TSP问题设计了更高效的树形解表示方法和相应的算子;AAAI’11 论文 [10] 在收敛性理论指导下改进了蚁群算法并用于寻找多个最优解;IJCAI’11 论文 [11] 使用近似度来指导多目标优化;AAAI’12 短文 [12] 在 SAT 问题上为 CMA-ES 算法引入重组算子;AAAI’14 论文 [13]针对一种游戏设计了大规模演化算法。相对于演化算法初期对算法改进的启发性,可以发现上面这些改进都更针对优化问题的性质,也更倾向于理论的指导。
● 在算法应用方面的论文数量最多,包括在人工智能系统中的应用[14-15] 、在生物信息学上的应用 [16-17] 、在算法调参上的应用[18] ,而更多的则是与机器学习任务的结合。在与机器学习任务的结合中,最为显著的是在离散选择问题和强化学习任务上。离散选择问题上,AAAI’15 论文 [19] 在非监督特征选取中使用了演化算法;AAAI’15 论文 [20] 在模型选取时使用了演化算法;NIPS’15 论文 [21] 研究了基于演化算法的特征选择并分析了其理论性质。强化学习任务上,NIPS’13论文 [22] 将基于函数近似动态规划类别的强化学习方法在 Tetris 游戏上首次做到有效,其方法中包含了演化算法步骤;另外还有在机器人足球[23] 、路径积分的策略提升方法[24] 、高致信度策略提升方法 [25] 、机器人自动编程[26] 、多目标强化学习 [27]等任务上结合进了演化算法。究其原因,离散选择直接对应了难以处理的 NP 难问题,而强化学习中的滞后反馈导致其优化问题的搜索空间巨大,传统优化方法在这两类问题上难以奏效,因此成为了演化算法的用武之地。除此之外,在排序学习[28] 、社交网络 [29] 、规则学习 [30]等方面也有结合演化算法的工作。另外一类有趣的应用,是在其他的优化算法中使用到了演化算法,例如NIPS’11 论文 [31] 中贝叶斯优化的内层优化使用了演化算法、NIPS’14 论文 [32] 中后验估计使用了演化算法,AAAI’15 论文 [33] 则是结合了演化算法中的算子。可见演化算法可以在许多方面与机器学习任务结合并发挥作用。
还有论文中称受到了演化算法的启发[34] ,然而这样论文我们并没有记入演化学习相关论文中。图 1 显示了论文数量与年份的关系。从大体趋势上可以发现,最近几年演化学习的研究呈现了上升的势头,2015 年的论文数量有明显增加。
另外一些论文也对演化学习算法的现状指出了不足之处,例如论文 [35] 指出目前演化学习算法的理论基础不足、缺乏理论保障;论文 [36] 指出演化学习算法难以处理大规模问题;论文 [37] 指出演化算法由于优化的盲目性使得效率有限。这些不足之处恰恰是演化学习进一步发展的重要方向:建立完善的理论基础,发展大规模演化学习方法,结合具体问题的性质以提高效率。
在这些论文中,也出现了国内研究者的身影,例如论文 [8,20-22] 由南京大学 LAMDA 组独立完成、论文 [38] 来自中山大学、论文 [30] 来自哈尔滨工业大学、论文 [28] 来自山东大学。
近期机器学习的发展显示出研究者对凸优化的兴趣逐渐转向了非凸优化,例如 IJCAI’15 的两篇Distinguish Paper 均与非凸优化有关,NIPS’15 的论文题目中出现非凸优化的就有 3 篇,并且 NIPS’15 上还召开了非凸优化的 Workshop,深度神经网络的蓬勃发展也预示着复杂的网络模型需要更有效的优化方法。演化学习还处在萌芽阶段,随着对演化学习理论基础的完善与效率的改进,可以预见演化学习将保持上升势头,未来机器学习任务中的非凸优化能得到更好的解决。