ThoughtStorms Wiki

ProgrammingLanguages for ArtificialIntelligence / MachineLearning

PythonLanguage is the big one, because it's a "glue-language" for putting together fast CLanguage libraries.

Quora Answer : Is LISP the first and only AI language that includes features intended to help with programs that perform simple problem solving actions?

Feb 17, 2016

As Eero Nevalainen says, straight Lisp doesn't seem particularly optimized for problem solving.

Obviously, as Lisp is a high level language, in which it's possible to express complex things elegantly, and with a special talent for DSLs, it's been possible for people to add things like problem solvers and provers, and Prolog-like inference engines (Racklog: Prolog-Style Logic Programming ) fairly easily.

But unlike Prolog itself, which you can argue was designed as an "AI language". Lisp is just a good language in which it's possible to do many things, including AI.

Of course, as I wrote in Phil Jones (He / Him)'s answer to Why are Lisp dialects (like Common Lisp and Scheme) so highly regarded for machine learning and artificial intelligence programming? Lisp is a good match for "traditional AI" that involves building, pruning and collapsing tree-shaped data-structures with a lot of recursion. Traditional Lisps aren't really much better than Fortran for doing the kind of matrix maths you need for neural networks or other statistics-based AI. (Though today I'm sure there are Lisp wrappers for important libraries for these things.)

Quora Answer : Is Prolog the most useful language to learn for AI programming?

Jan 8, 2016

AI is becoming a very large topic.

So the answer is ... it depends what part of AI.

The big division is between

a) rules based programming, and

b) statistical / machine learning.

For a) I'm sure knowing Prolog is still very useful. But in practice, you might find yourself using some kind of higher level "expert system", package to encode rules.

But certainly, Prolog will give you huge insight into the field.

For b), things further subdivide ... are you interested in implementation or use?

Implementation (of matrix maths, neural networks etc.) still needs to be efficient, so C is probably still important. And then techniques like parallelism ... can you write CUDA on GPUs for example. Even FPGAs I suspect are going to be important for this.

OTOH, if it's mainly about USING recurrent networks, or support vector machines or whatever the current algorithm of the moment is, then you can do this from almost anything that has the libraries ... today it seems that Python, Julia, R, Javascript (as always), Ruby, Lua are all being used to marshal data for sending to these libraries. And it's far more important to understand the techniques and algorithms and when to use them, than any particular programming language.

Backlinks (1 items)