How to Build an AI in a Day?
AI systems are thought to be very complex. Some of the popular ones have been in the works for more than a decade. But, AI systems can actually be very simple as well. While someday there will be an all-purpose sentient intelligence, today, design of effective AI systems should answer the following questions:
- Purpose: What is the AI going to be used for? This question has the biggest impact on everything else in the system.
- Learning Rules: What and how will the AI learn, and how is that learning encoded? This is the trickiest part. The best tip would make it flexible and modular because typically this goes through multiple iterations.
- Business Rules: How does the machine decide based on some inputs? These rules can be learned or be provided by humans, esp. for priming the engine. It is also important to identify an unknown answer from the wrong answer and report it as such.
- Learning Corpus: What information, and in what format, should the machine consume to take through its Learning Rules. While this is the easiest part, in practice it could take the most time to make the right readers, APIs, ETLs, etc.
To elaborate on #2 vs. #3, let’s say you are designing a system to predict whether an apple is ripe or not. You have designed a probe that takes the apple through some spectral analysis and gives a result. Or maybe you have an algo to study the patterns on the Apple’s skin and predict the state of ripeness with some confidence. Either of these would be Learning Rules.
Let’s say you initially prime the system and feed in that Red Apples are ripe, while Green Apples are raw. These would be Business Rules. Now the machine will rely on these for all red and green apples, but if a yellow apple comes up, it would be kicked up to Learning Rules. Over time the machine should be able to write a new Business Rule about the Yellow Apples. Ideally, we want the machine to write all Business Rules.
As you can see, the choice of language, algorithm, OS, database, etc. all depends on what you decide on the above. As an example, Coseer’s systems, made for near-real-time applications in enterprises, run on Java + Mongo + Linux EC2 or equivalent. If you are designing some IoT system residing on small chips, you may want to use C or Assembly, and algos with limited compute intensity and small memory footprint. For real-time systems, you may want to use servers with huge memory and load everything up there.
On the same lines if you are thinking a batch process with few gigs of data, maybe you can start with Python on your Windows desktop, and get something up and running in a day. Example — Let’s say you have all the GPS and battery charge data for a lot of trips made on electric cars, and you want to make a system which tells you if your car needs a charge on its way to the destination. As per above:
- Purpose: Decide whether the car needs a charge to reach a given destination.
- Learning Rules: Translate all the data from GPS and battery usage to a simple formula per model based on elevation, miles through city, mile on highway, time of day and traffic patterns. Add margin of error, and learn simple correlations.
- Business Rules: Written by above. Primarily correlating percentage of battery remaining and distance that can be safely travelled, and distance that can potentially be travelled under the right conditions, for each car model.
- Learning Corpus: Google map APIs and the data, which is presumably in a Big Table kind of place.
A very simple neural network can implement these learning rules. You can make them write business rules like “At 5% charge for Model S, 15 miles is always safe, 20 miles if its downhill” (This is illustrative only, please dont try to drive 20 miles on 5% battery). As new trips are made and new models launched, your learning rules can keep writing these business rules. Your Personal Charge Advisor is ready to go.
Once you have the right data, an AI of this kind should not take more than 24 hours to build.
Originally published on Coseer Blog in 2015.