← Back to context

Comment by owls-on-wires

5 days ago

related: https://github.com/owls-on-wires/keplearn

A deterministic SR engine in Rust, written for SRBench. Happy to see the field getting some front-page attention!

Is your project limited in scope to physics equations? The coefficient snapping is interesting, but seems like it would not work well for problems like predator-prey (https://en.wikipedia.org/wiki/Lotka%E2%80%93Volterra_equatio...). I mainly worked with biology and life-sciences data. (real-world, separate from the synthetic benchmark data)

I introduced a new type of "constant" for well known values like this that sit between measured data and free parameters. I think I had some idea similar to your snapping, i.e. to look for places where free parameters could be replaced with const, but multiples of them was not part of that.

  • Physics and known-constant problems were definitely the focus. My ambition was to create a fast algorithm that could pull out a nice, “natural-looking” equation from (potentially noisy) data, if one existed. Model ranking and selection, coefficient snapping, noise robustness, and the search patterns were all designed to that end.

    For that reason, it does terribly on the SRBench black-box track (it doesn’t like to produce long, overfit models), but (to my knowledge) it scores the highest on exact symbolic recovery, and even with noise it can often find the answer in under 10s (single-thread, no GPU).

    • Does SRBench still run deterministic algorithms 30 times? A more useful measure than wall clock time is the number of equation evaluations and iterations it takes to get there. One of the benefits to deterministic algos is they only need to be run once, whereas you have to run the rng based algos 30+ times for statistical significance.

      My algorithm came from frustration at the lack of rigor in the field. There were no standard benchmarks, results were not reproducible, don't get me started on Korns lol

Is there a paper for your method? I'm always keen to see other deterministic algos for SR, it sounds interesting from what I can glean, but I don't read/write rust so may need an agent to help me decipher

I'll see about getting mine added to SRbench as well

  • Unfortunately no paper yet, but I’m considering publishing one here soon! As far as agents go, I just pointed Claude at the repo at asked it to explain, and it did a good job. It also helps that it’s not a ton of code, and a lot of it is structurally similar to patterns in training data (in this case, it can recognize a recursive beam-search).

    Would highly recommended submitting a PR for SRBench! The maintainers were very responsive, despite one necessary correction mine was merged within 2 weeks.

    • Well, you've inspired me to work on my revamp, get it benched, make some new additions, and check out your project in more detail.

      If you want to chat about papers or have me do a pre-review, I'm more than happy to. Contact methods can be found in my HN profile