We build multiple AI systems to solve various challenges for our customers. What we have realized is that while someday there will be an all purpose sentient intelligence, today, design of effective AI systems should answer the following questions:
1. Purpose - What is the AI going to be used for? This question has the biggest impact on everything else in the system.
2. Learning Rules - What and how will the AI learn, and how is that learning encoded? This is the trickiest part. The best tip would be make it flexible and modular, because typically this goes through mulitple iterations.
3. Business Rules - How does the machine decide based on some inputs? These rules can be learnt or be provided by humans, esp. for priming the engine. It is also important to identify an unknown answer from wrong answer, and report it as such.
4. 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.
Let me elaborate on #2 vs. #3. Lets 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 may be 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.
Lets 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. If yours is a batch process with few gigs of data, maybe you can start with Python on your Windows desktop, because getting something up and running is much quicker. If you are designing some IoT system residing on small chips, you may want to use C/ 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.
As an example, Coseer's systems, made for near-real time applications in enterprises, run on Java + Mongo + linux EC2 or equivalent. Our modules, in most cases, have proprietary, scalable and linear/sub-linear algos. The final deployed model is combination of these modules trained to a very specific corpus.
Source - Quora
0 Comments
Please make a comment of your query/suggestion or FeedBack