Sunday, May 04, 2014

A new kind of literacy...

There is a distinction that needs to be made that will become more and more important to understand. Consider it a form of literacy for a completely new way of thinking about computing. Your Grandchildren will understand this intuitively. You will look at them strangely and probably miss what they are talking about - exactly the same way your Grandparents looked at you when you tried to explain the Internet.

The computer you are sitting in front of is almost certainly a Von Neumann architecture, which is a form of a Universal Turing Machine. Wikipedia has an excellent rundown of each if you want to understand them in depth.

In the simplest possible terms, the type of computing you are used to is no more complicated than following some very basic instructions on a paper tape - compare, store, and jump. Everything from a digital watch, to the computers that run Facebook do nothing more than compare, store, and jump. Alan Turing proved that compare, store, and jump are all you need to - quite literally - compute the universe (assuming the universe can be boiled down to algorithms).

There is only one problem with a Universal Turing Machine. It only works by instructions. So if you want a UTM to do your laundry, your dishes, drive you to work, or write a joke, you have to program in every possibility in advance.

This is highly impractical, and is the reason why the computers you see today cannot, "think".

There is an alternative architecture that works by... "intuition". Only we do not call it "intuition" because that sounds too "human". It works by approximations, best guesses, and feedback. This type of computing is very inexact and prone to doing irrational things, but is quite good at accomplishing tasks that are not fully defined. It is called "Neural Computing". All animal brains work via Neural Computing, and it turns out that this is the key to doing true AI - a.k.a. "thinking machines" - in silicon.

Thus the new form of literacy everyone needs to get used to is the distinction between Turing Computing and Neural Computing. It would be false to assume that one is going to eliminate the other. Both are very important, and one complements the other quite nicely.