2021, Symbolic Regression via Neural-Guided Genetic Programming Population Seeding

Abstract

符号回归是指从黑箱过程中识别符合观测输出的数学表达式的过程。它是一个离散优化问题,一般认为是 NP-hard 问题。先前解决该问题的方法包括神经引导搜索 (neural-guided search)(例如:使用强化学习)和遗传规划 (genetic programming)。

在这项工作中,我们引入了一种混合神经引导/遗传规划方法来解决符号回归和其他组合优化问题。我们提出了一个神经引导组件(a neural-guided component),用于种子随机重启遗传编程组件的初始种群,逐步学习更好的初始种群。

在从数据集中恢复底层表达式的一些常见基准任务上,使用相同的实验设置,我们的方法比最近发布的性能最好的模型恢复了 65%的表达式。我们证明,在神经导向成分上运行许多不相互依赖的遗传编程代,比在两者耦合更强烈的替代公式中,对符号回归的表现更好。最后,我们介绍了一组新的22个符号回归基准问题,其难度比现有基准问题有所增加。源代码提供于:https://github.com/brendenpetersen/deep-symbolic-optimization

1 Introduction

符号回归涉及搜索数学表达式的空间,以使用比神经网络等更容易解释的方程来拟合数据集。与基于多项式或神经网络的回归相比,一个关键的区别在于我们寻求阐明产生数据的真实潜在过程。因此,符号回归的过程类似于物理学家如何推导出一套描述自然过程的基本表达式。例如,Tycho Brahe 细致地绘制了行星通过天空的运动,但正是J ohannes Kepler 后来创建了描述其运动规律的表达式。给定一个数据集 ( X , y ) (X , y) (X,y),其中每个点的输入为 X i ∈ R n X_i∈\Bbb{R}^n XiRn,输出为 y i ∈ R y_i∈\Bbb{R} yiR,符号回归旨在识别一个最适合该数据集的函数 f : R n → R f:\Bbb{R}^n→\Bbb{R} fRnR,其中 f f f 的函数形式是一个简短的闭式数学表达式。

数学表达式的空间在结构上是离散的(在功能形式上),但在参数空间(例如浮点常数)上是连续的。搜索空间随表达式长度呈指数增长,使得符号回归成为一个具有挑战性的机器学习问题。一般认为是 NP-hard [[Lu et al., 2016];但是,并不存在正式的证明。

考虑到组合搜索空间大,传统的符号回归方法通常使用进化算法,特别是遗传规划(GP)(Genetic Programming,GP) [ Koza , 1992 , Schmidt and Lipson , 2009 , Fortin et al , 2012 , Bäck et al , 2018]。基于 GP 的符号回归通过使用选择、交叉和变异等进化操作来维护一个由数学表达式 “个体” 组成的种群。适应度函数在多代中起到改善种群的作用。

神经网络也可以用于符号回归 [Kusner et al., 2017, Sahoo et al., 2018, Udrescu and Tegmark, 2020]。最近,人们提出使用神经引导搜索 (neural-guided search) [Petersen et al., 2021, Landajuela et al., 2021b].来解决符号回归问题。该方法通过使用循环神经网络(Recurrent Neural Network,RNN)随机产生成批的表达式作为一系列数学算子或 “tokens”。对表达式进行拟合优度评估,并使用训练策略来提高生成公式的质量。Petersen et al[2021]提出了一种风险寻求的策略梯度 (risk-seeking policy gradient) 策略 ,该策略过滤掉表现较差的,并在每一步训练中向 RNN 返回一个 “精英集” (“elite set”) 的表达式。约束可以用来修剪搜索空间,防止生成的表达式中出现荒谬或无关的语句。例如,可以避免求逆(例如 l o g ( e x ) ) log(e^x)) log(ex)) )和嵌套三角函数(例如 s i n ( 1 + c o s ( x ) ) sin(1+cos(x)) sin(1+cos(x)))。使用神经引导搜索获得的性能优于基于 GP 的方法,包括常用的商业软件。

遗传规划和神经引导搜索在机制上是不同的,但都被证明是符号回归的有效解决方案。或许可以将这两种方法结合起来,发挥各自的优势? GP中个体解的种群在结构上与RNN在神经引导搜索中发出的一批 samples 相同。原则上,它们可以通过允许GP个体流向RNN训练而正式接口,反之亦然。

对于基于强化学习的训练目标,如 Petersen et al. [2021] 中使用的目标,这种耦合方式在RNN侧产生了分布不均匀问题。标准的政策外方法,如重要性抽样[Glynn and Iglehart, 1989],在这里不适用,因为GP分布是难以解决的。然而,值得注意的是,将策略梯度的机制解释为最大化与个体适应度成比例的对数似然仍然是有效的。另一方面,对于基于最大似然估计在选定样本子集上训练备选方案,如交叉熵方法[De Boer et al., 2005]或优先队列训练[Abolafia et al., 2018],不存在样本为"在策略"的假设,因此可以无缝应用。在这项工作中,我们探索了三种不同的RNN训练方法:两种基于强化学习的训练方法(无政策外修正)和优先级队列训练方法。

2 Related Work

Deep learning for symbolic regression. 最近的一些方法利用深度学习进行符号回归。AI Feynman [Udrescu and Tegmark, 2020] 提出了符号回归的问题简化工具。他们使用神经网络来识别数据集(如乘法可分性、平移对称性等)中的简化属性,并利用它递归地定义可以使用任何符号回归算法处理的简化子问题。在 GrammarVAE 中,Kusner et al. [2017] 针对附着于预先给定语法的离散对象开发了一个生成模型,然后在潜在空间中对其进行优化。他们证明这可以用于符号回归;然而,该方法很难精确地恢复表达式,生成的表达式并不总是句法有效的。Sahoo et al. [2018] 利用激活函数为符号算子的神经网络开发了符号回归框架。虽然这种方法实现了一个端到端的可微系统,但通过除法或对数等激活函数的反向传播需要作者对搜索空间进行一些简化,最终排除了学习某些简单的表达式,如 x \sqrt{x} x s i n ( x / y ) sin(x/y) sin(x/y)

Genetic programming/policy gradient hybrids. GP与基于梯度的方法结合的整体思想大体上预示着深度学习时代的到来 [Igel and Kreutz, 1999, Topchy and Punch, 2001, Zhang and Smart, 2004, Montastruc et al., 2004, Wierstra et al., 2008] ,对深度强化学习(DRL)的不满并非全新的 [Kurenkov, 2018]。最近,一些方法将GP和强化学习(RL)相结合。在这些工作中,RL被用来改变或增强GP过程,例如通过调整执行不同遗传操作的概率。另外,GP用于增强神经网络的创建或运行。[ Such et al , 2018 , Chang et al , 2018 , Gangwani and Peng , 2018 , Chen et al , 2019 , Stanley et al , 2019 , Real et al , 2019 , Miikkulainen1 et al , 2019 , Sehgal et al , 2019 , Tian et al , 2020 , Chen et al , 2020a , b]

Sample population interchanging methods. 我们确定了一个广泛的现有方法,可以通过使用序列生成器 (sequence generator) 中的样本并将这些样本与GP种群进行交换来表征。序列生成器 (sequence generator) 可以是创建令牌序列的任何离散分布或生成过程,例如循环神经网络或转换器。然后,序列生成器中的样本与GP生成的种群可互换。因此,序列发生器样本可以插入到GP的种群中,GP样本可以用来更新序列发生器。在某些情况下,序列生成器可能没有可学习的参数。

问题段: 在这一类方法中,Pourchot and Sigaud [2019] and Khadka and Tumer [2018] 使用可替换的神经网络控制器来解决倒立摆或月球车等物理连续控制问题。它们的方法类似于神经进化的 [Stanley and Miikkulainen, 2002, Floreano et al., 2008, Lüders et al., 2017, Risi and Togelius, 2017],因为这两种技术都是基于使用深度确定性策略梯度(DDPG) [Lillicrap et al., 2016],并利用GP和RL组件之间的同步共享行为体池。Khadka and Tumer [2018] 提出了ERL方法,将RL和GP参与者样本集合到一个循环重放缓冲区中。这个单一的缓冲区要么是种子GP步骤,要么是帮助更新演员-评论家模型。GP和RL同步工作,种群是可互换的。普尔绍和Sigaud [ 2019 ]引入了CEM - RL,以类似的方式解决了同一类问题。最显著的区别是共享种群不是直接输入到GP中,而是用来更新一个分布,从中抽取一个种群。

与我们工作关系最为密切的是,Ahn et al. [2020] 开发了遗传专家引领学习 (GEGL)。在 GEGL 中,使用基于随机RNN的序列生成器生成样本,并添加到最大奖励优先队列(MRPQ)中。然后,GP组件对MRPQ中的每个项进行变异和/或交叉操作。值得注意的是,MRPQ 中每个样本只应用了一代进化算子。因此,不存在选择算子的概念。相反,我们证明了选择算子和执行多代进化对于最大化GP的收益是至关重要的。执行一代GP后,产生的种群被添加到第二个MRPQ中。然后,从基于GP的MRPQ和基于RNN的MRPQ的并集中的样本用于训练RNN。相比之下,我们发现优先权队列不是必要的,可能会阻止充分的探索。与ERL和CEM - RL一样,GEGL的进化和训练步骤是一对一的,即每个训练步骤后面恰好有一个GP生成。此外,GP从样本种群的持久内存中提取,它与神经网络组件共享。这种强耦合使得进化组件在神经网络上的相互依赖程度更高。

3 Methods

我们的整体算法包括两个主要部分:(1)序列生成器 (a sequence generator) (具有可学习的参数) 和 (2)遗传编程部分。在下面的章节中,我们首先讨论预备知识,然后分别描述每个组件,最后描述两个组件如何相互作用

Preliminaries. 任何数学表达式 f f f 都可以用代数表达式树来表示,其中内部节点为算子 (e.g. × , sin),终端节点为输入变量 (如 x x x) 或常数 [Petersen et al., 2021].。我们将 τ = [ τ 1 , . . . , τ ∣ τ ∣ ] τ = [ τ_1 , ... , τ_{|τ |}] τ=[τ1,...,ττ] 作为这种表达式树的前序遍历。值得注意的是,表达式树与其前序遍历(详见 Petersen et al. [2021] 等)之间存在一一对应关系。每个 τ i τ_i τi 是从可能的标记库中选择的一个操作符、输入变量或常数,例如。 [ + , − , × , ÷ , s i n , c o s , e x p , l o g , x ] [+ , - , × , ÷ , sin , cos , exp , log , x] [+,,×,÷,sin,cos,exp,log,x]. 一个前序遍历 τ τ τ 可以实例化为相应的数学表达式 f f f,并根据其对数据集的适应度进行评估。具体地,我们考虑度量归一化均方根误差(NRMSE),定义如下。给定一个前序遍历 τ τ τ 和一个大小为 N N N ( X , y ) (X , y) (X,y) 对数据集,其中 X ∈ R n X∈\Bbb{R}^n XRn y ∈ R y∈\Bbb{R} yR,我们定义 N R M S E ( τ ) = 1 σ y 1 N ∑ i = 1 N ( y i − f ( X i ) ) 2 NRMSE (τ) =\frac{1}{\sigma_y} \sqrt{\frac{1}{N}\sum_{i=1}^N{(y_i - f(X_i))^2}} NRMSE(τ)=σy1N1i=1N(yif(Xi))2 ,其中 f : R n → R f:\Bbb{R}^n→\Bbb{R} fRnR 是由 τ τ τ 表示的实例化数学表达式, σ y σ_y σy y y y 的标准差. 最后,适应度函数或奖励函数由 R ( τ ) = 1 / ( 1 + N R M S E ( τ ) ) ) R(τ) = 1/(1 + NRMSE(τ))) R(τ)=1/(1+NRMSE(τ))) 给出。我们交替使用"适合度"和"奖励",前者在GP语境中更为典型,后者在 RL 语境中更为常见。

Sequence generator. 序列发生器是数学表达式上的参数化分布, p ( τ ∣ θ ) p(τ|θ) p(τθ)。通常选择一个模型,使得一个表达式关于参数 θ θ θ 的似然是可处理的,允许一个可微的损失函数反向传播。一个常见的模型选择是自回归 RNN,其中第 i i i 个 token (记为 τ i τ_i τi) 的似然在给定前一个 tokens τ 1 , . . . , τ ( i − 1 ) τ_1,. . .,τ_{(i-1)} τ1...τ(i1) 的情况下是条件独立的。即 P ( τ i ∣ τ j ≠ i , θ ) = P ( τ i ∣ τ j < i , θ ) P(τ_i | τ_{j ≠ i} , θ) = P( τ_i | τ_{j < i} , θ) P(τiτj=i,θ)=P(τiτj<i,θ)。我们沿用 Petersen et al. [2021] 中使用的序列生成器:一个包含 32 个隐藏节点的单层 LSTM 的自回归 RNN。为了表示简单,下面我们假设使用 RNN 作为序列生成器。

序列生成器通常使用强化学习或相关方法进行训练。在这个视角下,序列生成器可以看作是一种强化学习策略,我们通过采样一批 N N N 个表达式 T T T,在奖励函数 R ( τ ) R(τ) R(τ) 下评估每个表达式,并在损失函数上执行梯度下降来寻求优化。在这项工作中,我们探索了三种训练 RNN 的方法:

  • Vanilla policy gradient (VPG):使用著名的 REINFORCE 规则 [Williams, 1992],在批次 T T T 上进行训练,得到损失函数: L ( θ ) = 1 ∣ T ∣ ∑ τ ∈ T ( R ( τ ) − b ) ∇ θ l o g p ( τ ∣ θ ) \mathcal{L}(θ) = \frac{1}{|T|}\sum_{τ\in T}(R(τ) - b)∇_θlogp(τ|θ) L(θ)=T1τT(R(τ)b)θlogp(τθ) 其中 b b b 是 baseline term or control variate,,例如 exponentially-weighted moving average (EWMA) of rewards.

  • Risk-seeking policy gradient (RSPG): Petersen et al. [2021] 发展了一个替代 VPG 的方法来优化最优情形而不是平均报酬: L = 1 ε ∣ T ∣ ∑ τ ∈ T ( R ( τ ) − R ~ ε ) ∇ θ l o g p ( τ ∣ θ ) 1 R ( τ ) > R ~ \mathcal{L} =\frac{1}{ε|T|} \sum_{τ \in T}(R(τ) - \widetilde{R}_ε )∇_θlogp(τ|θ)1_{R(τ) >\widetilde{R}} L=εT1τT(R(τ)R ε)θlogp(τθ)1R(τ)>R ,其中 ε ε ε 是控制风险寻求程度的超参数, R R R T T T 的报酬的经验 ( 1 − ε ) (1-ε) (1ε) 分位数。

  • Priority queue training (PQT): Abolafia et al. [2018] 引入非RL方法也意在专注于优化最佳情况下的性能。每个批次的样本被添加到一个持久的最大奖励优先队列 (MRPQ) 中,并使用监督学习目标对MRPQ中的样本进行训练: L ( θ ) = 1 k ∑ τ ∈ M R P Q ∇ θ l o g p ( τ ∣ θ ) \mathcal{L}(θ) = \frac{1}{k}\sum_{τ\in MRPQ}∇_θlogp(τ|θ) L(θ)=k1τMRPQθlogp(τθ),其中 k 是MRPQ的大小。

注意,我们的方法对训练过程不敏感;可以考虑附加的步骤,例如与 PQT 密切相关的交叉熵方法[De Boer et al., 2005]。在我们的公式中,像通常一样,我们在损失函数中增加了一个与序列 [Bello et al., 2016, Abolafia et al., 2018, Petersen et al., 2021, Landajuela et al., 2021b]. 上每个位置分布的熵成正比的项。

Genetic programming. 遗传规划( GP )从一组表达树(“individuals”)的(“population”)开始,记为 TGP。在标准 GP 中,这些个体是随机产生的;然而,我们在后面的部分讨论了这在我们的算法中是如何不同的。GP算法的单次迭代或 “generation” 由若干直接改变当前种群的 “进化操作” 组成。变异算子为个体引入随机变异,例如将一个子树替换为另一个随机生成的子树。交叉算子涉及两个个体之间交换内容,例如交换一个个体的一个随机子树和另一个个体的另一个随机子树。选择算子用于选择当前种群中哪些个体持续到下一个种群。一种常见的选择算子是锦标赛选择[ Koza , 1992],即从种群中随机抽取 k 个候选个体组成的集合,选择适应度最高的个体。在每一代 GP 中,每个个体都有一个发生变异的概率和一个发生交叉的概率;进行选择,直到新一代的种群与当前一代的种群具有相同的规模。GP 没有像序列生成器那样有明确的目标函数,但它确实倾向于将种群向更高的适应度 [Such et al., 2018] 移动。

对于GP组件,我们从 DEAP[Fortin et al., 2012] 的一个标准制定开始,介绍几个关键的变化

  1. 通常只使用均匀变异。相反,我们以等概率选择均匀、节点替换、插入或收缩变异。
  2. 我们引入了来自 Petersen et al. [2021] 的约束 (例如, 约束嵌套三角函数,如 s i n ( 1 + c o s ( x ) ) ) sin(1+cos(x))) sin(1+cos(x)))。如果一个遗传操作将导致一个违反任何约束的个体,则该遗传操作被还原。即子表达式反而成为父表达式的副本。该过程保证所有个体满足所有世代的约束。
  3. 样本种群从来不是随机初始化的。相反,初始种群总是由来自 RNN 的样本播种。(详见下一节。)

Neural-guided genetic programming population seeding. 虽然完全基于RNN的方法(即深度符号回归 [Petersen et al., 2021])和完全基于GP的方法(即.基于GP的符号回归 [Koza, 1992] )都涉及生成表达式的 “batches” 或 “populations”,但它们到达表达式的方式非常不同。也就是说,我们观察到 RNN可以在只给定参数 θ θ θ 的情况下从头生成表达式;相比之下,GP则需要现有的 population 来操作。更具体地说,给定参数 θ θ θ,RNN 可以用来采样一批表达式 TRNN;相反,GP 的第 i i i 代以表达式 T G P ( i ) T^{(i)}_{GP} TGP(i) 的种群开始,应用第 i i i 代 GP 产生一个新的、增广的种群 T G P ( i + 1 ) T^{(i+1)}_{GP} TGP(i+1)

因此,我们提出一个自然的点来连接神经引导搜索和 T G P ( 0 ) T^{(0)}_{GP} TGP(0) 是 GP 的起始种群。具体来说,我们提出直接使用来自 RNN 的最近一批样本作为GP的初始种群: T G P ( 0 ) = T R N N T^{(0)}_{GP} = T_{RNN} TGP(0)=TRNN. 这样,我们可以对GP执行 S S S 代操作,得到最终的 GP 种群 T G P ( S ) T^{(S)}_{GP} TGP(S)。最后,我们可以从表现最好的GP样本中选择一个"elite set",并将这些样本包含在梯度更新中,用于神经引导搜索( e.g. VPG、RSPG、PQT)。这个过程构成了我们算法的一个步骤,并重复进行,直到达到最大数量的总表达式评估。因此,GP作为一个内部优化循环,在基于梯度的神经引导搜索的外部循环中。

注意,对于来自RNN的每一批新样本,GP过程都会重新启动;因此,该过程类似于随机重启的GP;我们提出的算法的关键区别在于每次重新启动时的GP起始种群随着RNN通过目标函数学习而变化。因此,从GP的角度来看,RNN提供了越来越好的初始种群。经验上,我们发现这种混合方法相对于单纯的神经引导搜索也允许更大的学习率。

假设这种神经引导搜索和GP的混合方法将利用每个单独方法的优势。GP是无状态的,没有学习步骤,而神经引导搜索是有状态的(通过RNN参数 θ θ θ),通过一个定义良好的、可微的损失函数从数据中学习。虽然神经引导搜索容易陷入局部最优,但GP可以在种群中产生较大的变异,导致 “fresh” 的样本从RNN诱导的分布中基本脱离分布。我们在讨论中对此做进一步讨论。

我们在算法1中为我们的算法提供了伪代码,并在图1中进行了说明。虽然本文的工作主要针对符号回归任务,但我们的方法适用于任何带有黑盒奖励函数的符号优化任务。

Reference

Mundhenk T N, Landajuela M, Glatt R, et al. Symbolic regression via neural-guided genetic programming population seeding[J]. arXiv preprint arXiv:2111.00053, 2021.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
symbolic regression是一种机器学习技术,旨在发现指定输入和输出之间的函数关系。这本书系统地介绍了symbolic regression的原理、算法和应用。首先,书中详细解释了symbolic regression的基本概念和数学原理,包括遗传编程、基因表达式编程等常用的算法。其次,书中还介绍了symbolic regression在不同领域的应用,如生物信息学、金融、工程等,并且结合了大量的案例分析和实际问题求解,使读者更好地理解和应用symbolic regression。最后,书中还介绍了symbolic regression的发展趋势和未来可能的研究方向,为读者提供了更广阔的学术视野。 这本书不仅适合机器学习领域的研究人员和学生阅读,也适合工程技术人员、数据分析师等实际应用人员阅读。因为symbolic regression作为一种功能强大的机器学习技术,可以在实际工程和科学研究中发挥重要作用,帮助人们发现隐藏在数据背后的规律和规则。通过阅读这本书,读者可以系统地了解symbolic regression的理论和方法,掌握如何应用symbolic regression解决实际问题,从而提升自己的机器学习和数据分析能力。同时,这本书还可以作为相关领域研究者的参考书,为他们的研究提供新思路和灵感。总之,这本书是一本全面介绍symbolic regression的权威之作,对于想深入了解和应用symbolic regression的读者来说,是一本不可多得的好书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值