What are the basic layers on an Artificially Intelligent program and what skills and concept are required to work on this field. Total newbie interested in AI.


The term "artificially intelligent program" doesn't really mean anything, because it can mean so many different things. There are a lot of different techniques and approaches that fall under the overall rubric of "artificial intelligence".

That said, if you were going to try to classify the aspects of AI at a VERY broad (possibly too broad) level, you might say the following:

You have two broad approaches - symbolic (logic based) AI, and probabilistic AI (machine learning).

Within the scope of symbolic AI would be most things you hear associated with the phrase GOFAI (Good Old Fashioned AI). This includes things like logic programming in Prolog, expert systems, production rule systems (OPS5, etc.). "Cognitive architectures" would probably also fall here, so things like ACT-R, SOAR, CLARION, etc. And then you have automated planning systems, automated theorem provers, etc. Skills needed to work here include a good handle on logic - probably first order logic, but possibly higher order logics as well. Set theory, model theory, things of that nature come into play. Lisp, Prolog, or OPS5 might be commonly used programming languages.

In the area of "probabilistic learning" are things like neural networks, bayesian belief networks, and other "machine learning" algorithms. Random forests, decision trees and what-not are usually lumped in here as well. Skills needed to work in this area include some calculus (backpropagation in neural networks, for example, is heavily rooted in the chain rule from calculus), linear algebra, statistics and probability. Bayesian statistics is especially useful. Lots of programming languages are used to build these kinds of systems, but popular ones include Python, C++, R, Java and their ilk.

Then you have a few things that don't classify real neatly. Genetic Algorithms, for example. Those usually get put into machine learning, but GA's are really more of an optimization strategy. So you might, for example, use GA's as part of a strategy for training an ANN.

Net-net, "Artificial Intelligence" is a BIG field and you'll probably need to zoom in a little bit and ask more pointed questions to really get anywhere. You might want to read a relatively comprehensive overview like "Artificial Intelligence - A Modern Approach" by Russell & Norvig to get a good picture of what's going on.


The basic layers of AI aren't that interesting at the highest level. In the most abstract sense, AI is simply a function f(x) which is given input x and returns an output. This isn't that exciting, so let's break it down a bit more.

AI can be broken by 2 different aspects. AI can be Online or Offline. AI can be Supervised or Unsupervised.

AI is Offline if it learns the function f before being released into the real world at which point it doesn't update f.

AI is Online if it is put in the real world immediately and must learn f on-the-fly during operation.

AI is Supervised if it is given the correct answer after guessing. This is used to update f.

AI is Unsupervised if the correct answer is not given. This could mean that some indication of how well the AI did is returned (such as in reinforcement learning) or nothing at all.

Choosing 1 of each aspect gives 1 of 4 categories, such as Unsupervised Online learning. AlphaGo which beat on if the worlds best Go players is an example of an Unsupervised Online learning system.

All of these types of AI require representing the input x and choosing an output. Both of which involve statistics, math, and some programming experience. Anyone wanting to work in AI should have these skills and be able to think critically about them (mostly to diagnose the bugs that are bound to happen).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.