Happy Monday all, and welcome to another episode of Monday Musings! This is a weekly event in which I talk about the technology I use in my books and how they relate to the real world. This week, I’d like to talk about one of my personal obsessions: Artificial Intelligence. As usual, we need to spend a little time defining our terms. When most authors say “Artificial Intelligence,” they’re talking about fully autonomous, artificial personalities like those in I, Robot (along with others by Azimov), the droids in Star Wars, SkyNet, the house and deputy in Eureka, and my characters “Miranda” and “George” in Steel Souls, Book 1: Life in the Machine. In “reality,” Artificial Intelligence is a pretty broad term covering anything that can be considered “intelligent software and machines.” These can range from the path-finding algorithms found in most GPS devices, to human-interaction software like Siri and Google Now, to the algorithms which govern how computer characters respond in Massively Multiplayer games like World of Warcraft, WildStar, and Firefall. Let’s jump past the break to explore this fascinating science some more!
In my opinion, Artificial Intelligence is the most interesting branch of Computer Science. There are some things that computers do really well: computing large numbers (of course), performing repetitive, sequential tasks very quickly, and keeping track of large numbers of discrete objects. Unfortunately, computers have a very difficult time dealing with things that are not structured exactly the way they’re used to. Abilities that we humans take for granted, like real-time speech and image recognition, are almost impossible for computers to achieve. This is partially because of the way computers do things. Whereas we humans do a lot of things in parallel, computers do one thing at a time. Yes, even the “multi-core” processors can only do up to 8 things at once, and the software still isn’t designed to take advantage of that. By contrast, a human brain has billions of neurons, which are all capable of working on a problem simultaneously (or at least 10% of them are, if the well-known rule of thumb is correct).
The study of Artificial Intelligence is all about overcoming the weaknesses inherent in our computer design. Although other advancements are being made – more processing power and cores, new programming languages that work better in parallel, etc. – designing more intelligent software is essential to taking advantage of those advancements and moving computers more into the “real” world. To me, this means that the software must be able to learn. That is, it must be able to identify when it makes a mistake, and ensure that mistake is not repeated. My phone actually has an excellent app called “SwiftKey” which is really good at this. Initially, it looked at all my texts, facebook posts, emails, and the like, to figure out patterns in my typing. But it didn’t stop there. As I type each word, it gives me its three best guesses, and depending on which one I choose, that word is more likely to pop up the next time I type something like that. So, its guesses get more and more accurate as time goes on. Now that’s intelligent!
But what does a keyboard app for a phone have to do with the kind of Artificial Intelligence we see in fiction? Well, not much, to be honest. My two artificial characters are so advanced that they would be really close to passing the infamous “Touring Test.” George can understand and respond to general commands, and even succeed on the battlefield. Miranda has a personality of her own, and routinely participates in general conversation. This is one of those situations where the “real world” technology is woefully behind our imaginations. However, each little baby step moves us just that much closer to being able to actually talk to our computers – which is a dream of mine that is actually getting really close to reality. Look at the work that Google is doing on Google Now with their Google Glass, and you’ll see what I mean. Exciting things coming, folks! What are you looking forward to?