AI: Neural Nets Win, Functional Programming Loses October 4, 2016

Today, we might be considered to be in the heady early days of AI commercialization. We have pretty decent speech recognition, and pattern recognition in general. We have engines that analyze big data and produce conclusions in real time. We have recommendations engines; while not perfect, they seem to be to be profitable for ecommerce companies. And we continue to hear the steady drumbeat of self-driving cars, if not today, then tomorrow.

I did graduate work in AI, in the late 1980s and early 1990s. In most universities at the time, this meant that you spent a lot of time writing Lisp code, that amazing language where everything is a function, and you could manipulate functions in strange and wonderful ways. You might also play around a bit with Prolog, a streamlined logic language that made logic statements easy, and everything else hard.

Later, toward the end of my aborted pursuit of a doctorate, I discovered neural networks. These were not taught in most universities at the time. If I were to hazard a guess as to why, I would say that they were both poorly understood and not worthy of serious research. I used a commercial neural network package to build an algorithm for an electronic wind sensor, and it was actually not nearly as difficult as writing a program from scratch in Lisp.

I am long out of academia, so I can’t say what is happening there today. But in industry, it is clear that neural networks have become the AI approach of choice. There are tradeoffs of course. You will never understand the underlying logic of a neural network; ultimately, all you really know is that it works.

As for Lisp, although it is a beautiful language in many ways, I don’t know of anyone using it for commercial applications. Most neural network packages are in C/C++, or they generate C code.

I have a certain distrust of academia. I think it came into full bloom during my doctoral work, in the early 1990s, when a professor stated flatly to the class, “OSI will replace Ethernet in a few years, and when that happens, many of our network problems will be solved.”

Never happened, of course, and the problems were solved anyway, but this tells you what kind of bubble academics live in. We have a specification built by a committee of smart people, almost all academics, and of course it’s going to take over the world. They failed to see the practical roadblocks involved.

And in AI, neural networks have clearly won the day, and while we can’t necessarily follow the exact chain of logic, they generally do a good job.

Update: Rather than functional programming, I should have called the latter (traditional) AI technique rules-based. We used Lisp to create rules that spelled up what to do with combinations of discrete rules.