Message Boards Message Boards

[WSC18] Predicting the Halting Problem with Machine Learning

Attachments:
POSTED BY: Euan Ong
3 Replies

This was a great project. I was wondering, since the general impression is that typical behaviors are already found in simple rules, how the machine learning compares to simple statistics. For example, a quick test for halting might be to examine a few steps and see if the expression grows quickly or if it already halts. Of course, not a perfect test, but how the machine learning compares to this sort of crude test.

POSTED BY: Todd Rowland

Thanks for taking the time to look at my Wolfram Summer Camp project - I'm glad you enjoyed it :)

Analysing statistics is a great idea - I looked at a few statistical features very briefly (like what percentage of a sample combinators of a given size halt after n steps - graphs are in the post) but never tried to explicitly use those (or things like growth rate) as features for halting classification.

I'm currently working on a few improvements to the method (one of which being an expansion of the machine learning model to predict halting for combinators of arbitrary size, albeit with lower accuracy) and correcting one or two minor errors - hopefully this should be done soon.

After these, I might give classification with 'crude' statistical tests a go at some point, as well as using features like growth rate / depth of combinator to train e.g. a logistic regression classifier on the combinators. There is a chance that the neural network might only be detecting things like growth rate when looking at rasterised images of combinators, but I'm hopeful that it might be detecting more 'complex' features of combinator structure, particularly as a halt/no halt classifier trained only on initial combinator expressions (represented as strings) managed to achieve ~70% accuracy.


On a similar but tangential note (a few rambling thoughts):

Speaking of "[examining] a few steps and [seeing] if the expression grows quickly or if it already halts", Lathrop proved that

"it is possible to compute some value K where for some arbitrary predetermined confidence (1-?) and accuracy (1-?), a program that does

A. Input a Turing machine M and program I.

B. Simulate M on I for K steps.

C. If M has halted then print 1, else print 0.

D. Halt.

has a probability greater than (1-?) of having an accuracy (when predicting whether or not a program will halt) greater than (1-?)" (https://www.ics.uci.edu/~rickl/publications/1996-icml.pdf).

So in a way, this type of statistical analysis of (combinators / turing machines) is possible, and would be more accurate than a modern 'machine learning' algorithm if k is set high enough - however, if k is large this would entail evaluating the combinator for many steps which would be computationally intensive and impractical. In this case a machine learning model trained on a dataset labelled using a large value of k could potentially deliver much faster results, albeit with a (slightly lower) accuracy.

That said, one of the aims of this project is to see if there are other features of a combinator which might make it more / less likely to halt without having to manually evaluate the combinator - in this regard the machine learning approach is less of practical importance but more a proof-of-concept demonstrating that there may be features of (the initial combinator expression / its initial growth) that suggest whether or not it will halt. With this in mind, analysing specific statistical features could well prove useful in trying to determine which features suggest whether or not an expression will halt.

Please do let me know if you have any further thoughts on any of the above - I'd be very interested to hear what you have to say.

Kind regards,

Euan

POSTED BY: Euan Ong

enter image description here - Congratulations! This post is now a Staff Pick as distinguished by a badge on your profile! Thank you, keep it coming!

POSTED BY: Moderation Team
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract