SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2111.00053 · NeurIPS · 2021

Symbolic Regression via Neural-Guided Genetic Programming Population Seeding

Mikel Landajuela, Brenden Petersen, Claudio Santiago, Ruben Glatt, T Mundhenk, Daniel Faissol

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 12 functions out of this paper's own repositories and ran 11 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
brendenpetersen/deep-symbolic-optimization canonical 10 of 10
brendenpetersen/deep-symbolic-regression canonical 1 of 2
FunctionStatusWhere it lives
ancestors Ran brendenpetersen/deep-symbolic-optimization/dso/dso/subroutines.py
code served (permissive licence) · get_code("3eea232ae123a570")
build_tree Ran brendenpetersen/deep-symbolic-optimization/dso/dso/program.py
code served (permissive licence) · get_code("badc643b83f2a81c")
expneg Ran brendenpetersen/deep-symbolic-optimization/dso/dso/functions.py
code served (permissive licence) · get_code("8822871a45f951ca")
get_samples Ran brendenpetersen/deep-symbolic-optimization/dso/dso/memory.py
code served (permissive licence) · get_code("fa4716b703136678")
jit_parents_siblings_at_once Ran brendenpetersen/deep-symbolic-optimization/dso/dso/subroutines.py
code served (permissive licence) · get_code("06f868b7d6d08367")
load_batch Ran brendenpetersen/deep-symbolic-optimization/dso/dso/memory.py
code served (permissive licence) · get_code("b7cae67defd7ffaf")
logabs Ran brendenpetersen/deep-symbolic-optimization/dso/dso/functions.py
code served (permissive licence) · get_code("6b8d1788316b1a60")
make_const_optimizer Ran brendenpetersen/deep-symbolic-optimization/dso/dso/const.py
code served (permissive licence) · get_code("5faf005c8eea017e")
make_regression_metric Ran brendenpetersen/deep-symbolic-regression/dso/dso/task/regression/regression.py
code served (permissive licence) · get_code("e9e4cb651442fe28")
n3 Ran brendenpetersen/deep-symbolic-optimization/dso/dso/functions.py
code served (permissive licence) · get_code("903f4dea3d222a10")
parents_siblings Ran brendenpetersen/deep-symbolic-optimization/dso/dso/subroutines.py
code served (permissive licence) · get_code("d5ec98854f5f221a")
recursive_inversion Not yet run brendenpetersen/deep-symbolic-regression/dso/dso/task/regression/polyfit.py
code served (permissive licence) · get_code("cad59c464d3b59e1")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Symbolic regression is the process of identifying mathematical expressions that fit observed output from a black-box process. It is a discrete optimization problem generally believed to be NP-hard. Prior approaches to solving the problem include neural-guided search (e.g. using reinforcement learning) and genetic programming. In this work, we introduce a hybrid neural-guided/genetic programming approach to symbolic regression and other combinatorial optimization problems. We propose a neural-guided component used to seed the starting population of a random restart genetic programming component, gradually learning better starting populations. On a number of common benchmark tasks to recover underlying expressions from a dataset, our method recovers 65% more expressions than a recently published top-performing model using the same experimental setup. We demonstrate that running many genetic programming generations without interdependence on the neural-guided component performs better for symbolic regression than alternative formulations where the two are more strongly coupled. Finally, we introduce a new set of 22 symbolic regression benchmark problems with increased difficulty over existing benchmarks. Source code is provided at www.github.com/brendenpetersen/deep-symbolic-optimization.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2111.00053")
get_code_for_paper("2111.00053")
have("2111.00053")

Connect an agent — have() is free.