You may want to take a look at this article . The article is both entertaining and well written, and here are its core ideas:
- KNOTS AS WORDS IN A LANGUAGE
First core idea is to leverage the representation of knots as phrases in a suitable language. This is the cool part of the article, and actually a good recap of the fundamentals of Knot Theory, so I shall say no further. Have fun!
- KNOT WORD EMBEDDING
There are many tools available for handling languages in deep learning. The key point is that one can learn how to embed words, phrases, documents into a vector space, in such a way as to preserve its contextual meaning.
The first and most famous is word2vec, which is a shallow embedding. But now there is an entire artillery of nural tools which do the embedding at the appropriate level of sofistication, for instance BERT. This step is needed because, after all, deep learner can "eat" only tensors of numbers. Moreover, the embedding, if done right, reduces the dimensionality of the input, and third because the good embedding preserves some contextual information, which can then be leveraged by the downstream classifier
- CLASSIFYING KNOTS
At this point every knot is a low dim vector, and you want to classify it. As far as I understand, only basic classification is attempted, namely between knots that can be unknotted and the others (though I think this machinery can be expanded much further).
In the article a Reinforcement Learning paradigm which requires creating a suitable set of examples of the two categories is chosen for the binary classification task. My thought is that one should also explore Adversarial Neural Networks o the same purpose (basically one is the Unknotter and the other is the Cheater, he sends knots that look like they are unknottable but they are not)
Don't know of any concrete implementation, but I would be surprised if something out of this paper is not to be found in github.