Efficient Constant Optimization for Symbolic Regression with GPU-Accelerated Tree-Based Genetic Programming
GPU-accelerated tree-based genetic programming for symbolic regression constant optimization, achieving 9.9x throughput improvement.
Key Findings
Methodology
This paper presents a GPU-resident batched Levenberg-Marquardt solver for constant optimization in symbolic regression. It uses reverse-mode automatic differentiation to construct the Jacobian for each tree in one backward sweep, making the dominant per-iteration cost independent of the number of constants per tree. The method achieves constant optimization across a structurally heterogeneous population with a fixed number of CUDA launches per iteration.
Key Results
- The solver sustains up to 5.1×10^5 trees per second on an NVIDIA A100 for early-generation populations.
- In a GPU-saturated benchmark configuration, it delivers roughly 9.9× the throughput of Operon running on a 64-core EPYC 7763.
- Integrated into EvoGP, the solver recovers governing equations on 10 of 18 constructed problems, compared to 0 for stock EvoGP.
Significance
This research significantly enhances the efficiency of constant optimization in symbolic regression, especially in GPU-accelerated frameworks. By implementing batched constant optimization on the GPU, it addresses the performance bottleneck between constant optimization and structural search in traditional methods. This advancement enables more complex models to be optimized in reasonable time, promoting scientific discovery and interpretable machine learning.
Technical Contribution
The technical contribution lies in fully bringing batched second-order constant optimization onto the GPU and integrating it into EvoGP, allowing constant optimization to run entirely on the GPU within each generation. The use of reverse-mode automatic differentiation and a double-precision delivery guard ensures the precision and efficiency of optimization results.
Novelty
This is the first work to fully bring batched second-order constant optimization onto the GPU for symbolic regression. Compared to existing CPU methods, this approach shows significant efficiency improvements when handling heterogeneous populations.
Limitations
- GPU memory may become a bottleneck when handling very large datasets.
- The algorithm's reliance on GPU hardware may limit its application on other hardware.
Future Work
Future research directions include optimizing the algorithm to support larger datasets and exploring its potential application on other hardware architectures.
AI Executive Summary
Symbolic regression is a method for discovering closed-form expressions from data, but the computational cost of constant optimization often leads modern GPU frameworks to omit this process. This paper presents a GPU-resident batched Levenberg-Marquardt solver that optimizes constants across a structurally heterogeneous population of expression trees. By using reverse-mode automatic differentiation to construct the Jacobian matrix, the cost per iteration is independent of the number of constants per tree. Experimental results show that the method processes up to 5.1×10^5 trees per second on an NVIDIA A100, delivering roughly 9.9× the throughput of Operon on a 64-core EPYC 7763. Integrated into EvoGP, the solver recovers governing equations on 10 of 18 constructed problems, compared to 0 for stock EvoGP. This research significantly enhances the efficiency of constant optimization in symbolic regression, promoting scientific discovery and interpretable machine learning. Future research directions include optimizing the algorithm to support larger datasets and exploring its potential application on other hardware architectures.
Deep Analysis
Background
Symbolic regression discovers closed-form expressions from data by jointly searching over both the structure and numerical parameters of candidate models. Tree-based genetic programming is the dominant approach, evolving a population of expression trees through fitness-based selection and genetic operators. However, genetic operators are ineffective at fine-tuning real-valued constants, leading to poor fitness for structurally correct expressions with suboptimal coefficients. Constant optimization addresses this by solving a continuous nonlinear least-squares subproblem for each fixed tree, typically using the Levenberg-Marquardt method.
Core Problem
The computational cost of constant optimization often leads modern symbolic regression systems to omit or restrict it. While GPU-accelerated frameworks improve evaluation throughput, they lack support for constant optimization, leaving a gap between structural search and the precision needed to recover governing equations.
Innovation
This paper designs a GPU-resident batched Levenberg-Marquardt solver purpose-built for the heterogeneous constant optimization workload in TGP-based symbolic regression, integrating it directly into EvoGP so that constant optimization runs entirely on the GPU within each generation. The use of reverse-mode automatic differentiation and a double-precision delivery guard ensures the precision and efficiency of optimization results.
Methodology
- �� Design a GPU-resident batched LM solver for heterogeneous population constant optimization.
- �� Use reverse-mode automatic differentiation to construct the Jacobian matrix for each tree, independent of constant count.
- �� Implement each iteration with a fixed number of CUDA launches, using a double-precision delivery guard to ensure result precision.
Experiments
Experiments were conducted on an NVIDIA A100 using synthetic populations calibrated to snapshots from real EvoGP runs. Benchmark tests used synthetic targets with known near-global optima, allowing direct assessment of solution quality and fair throughput comparisons. Populations ranged from 10^3 to 2.56×10^5 trees, with 100 to 10,000 data points per tree. All methods received the same trees, data, and initial constants.
Results
The solver sustains up to 5.1×10^5 trees per second on an NVIDIA A100 for early-generation populations. In a GPU-saturated benchmark configuration, it delivers roughly 9.9× the throughput of Operon running on a 64-core EPYC 7763. Integrated into EvoGP, the solver recovers governing equations on 10 of 18 constructed problems, compared to 0 for stock EvoGP.
Applications
The method can be applied to symbolic regression tasks in scientific discovery and interpretable machine learning, particularly where complex models need optimization. Its efficient constant optimization capability makes it suitable for applications requiring rapid iteration and high precision.
Limitations & Outlook
While the method performs excellently on GPUs, GPU memory may become a bottleneck when handling very large datasets. Additionally, the algorithm's reliance on GPU hardware may limit its application on other hardware. Future research directions include optimizing the algorithm to support larger datasets and exploring its potential application on other hardware architectures.
Plain Language Accessible to non-experts
Imagine a factory with many machines, each responsible for producing a type of product. To improve product quality, we need to adjust each machine's settings. Traditional methods require adjusting one machine at a time, which is time-consuming and inefficient. Our new method is like equipping the factory with a supercomputer that can adjust all machines' settings simultaneously, ensuring that each adjustment results in no worse outcomes than before. This is what we do in symbolic regression, using GPU-accelerated batch optimization to quickly and accurately optimize the constants of each expression tree.
ELI14 Explained like you're 14
Imagine you're playing a game where you need to adjust your character's gear to defeat enemies. Traditional methods are like adjusting one piece of gear at a time, which is inefficient. Our new method is like giving you a super gear adjuster that can adjust all your gear simultaneously, ensuring that each adjustment results in no worse outcomes than before. This is what we do in symbolic regression, using GPU-accelerated batch optimization to quickly and accurately optimize the constants of each expression tree.
Glossary
Symbolic Regression
A method for discovering closed-form expressions from data, involving joint search over model structure and numerical parameters.
Used in this paper to discover governing equations from data.
Tree-Based Genetic Programming
An evolutionary algorithm that evolves expression trees through fitness-based selection and genetic operators.
The main method used for symbolic regression in this paper.
Levenberg-Marquardt Method
An optimization algorithm for nonlinear least-squares problems, combining the advantages of Newton's method and gradient descent.
Used to optimize constants for each tree.
Reverse-Mode Automatic Differentiation
A technique for computing derivatives by backpropagation, suitable for many-input single-output scenarios.
Used to construct the Jacobian matrix for each tree.
CUDA
A parallel computing platform and programming model developed by NVIDIA, allowing computation-intensive tasks to be executed on GPUs.
Used to implement batched constant optimization.
Open Questions Unanswered questions from this research
- 1 How to effectively apply this method to larger datasets remains to be explored.
- 2 The applicability of this method on other hardware architectures is not yet clear.
Applications
Immediate Applications
Scientific Discovery
This method can be used in symbolic regression tasks in scientific research, helping researchers quickly find governing equations from data.
Long-term Vision
Interpretable Machine Learning
By improving the efficiency of symbolic regression, this method is expected to promote the development of interpretable machine learning, making the interpretation of complex models easier.
Abstract
Constant optimization refines the numerical coefficients of candidate expressions in tree-based genetic programming for symbolic regression. But its per-generation cost has led modern GPU-accelerated frameworks to omit it or restrict it to lightweight forms. We present a GPU-resident, batched Levenberg--Marquardt solver that optimizes constants across a structurally heterogeneous population of expression trees using a fixed number of population-wide CUDA launches per iteration. Reverse-mode automatic differentiation assembles the per-tree Jacobian in one backward sweep, making the dominant per-iteration cost independent of the number of constants per tree, and a double-precision delivery guard guarantees that returned constants are never worse than their initial values. On early-generation populations, the solver sustains up to $5.1{\times}10^{5}$ trees per second on an NVIDIA A100; at a GPU-saturated benchmark configuration it delivers roughly $9.9{\times}$ the throughput of Operon running on a 64-core EPYC 7763, while matching fp64-reference quality. Integrated in-process into EvoGP, the solver enables end-to-end search to recover governing equations on $10$ of $18$ constructed problems versus 0 for stock EvoGP. Our code is at https://github.com/TensorConv/CuSR.