Friday, March 26, 2010

What is computational intelligence?

While I was giving a presentation last week to my new research group (the Global Ecology Group at the University of Adelaide), I was asked by an ecologist, "What is computational intelligence?"

This is one of those questions that sound really simple, but is actually really hard to answer. At WCCI 2008 in Hong Kong, I attended a panel session on the future of computational intelligence. The panelists spent almost the entire time arguing over what computational intelligence is.

One answer is that computational intelligence is a sub-group of artificial intelligence. But classical AI tends to be more of a top-down approach, that is, the developer tells the machine what it needs to know to solve the problem. To me, computational intelligence is a bottom-up approach, where the algorithm learns what it needs to know to solve the problem.

There are, of course, many algorithms that learn from data, like the C4.5 algorithm for building decision trees, that most people would not consider to be computational intelligence, so I will extend the definition above to include bio-inspired algorithms. That is, algorithms that are inspired by biological processes such as living brains (artificial neural networks), evolution (evolutionary computation), flocking (particle swarm optimisation, which is often included in evolutionary computation) and path-following in ants (ant colony optimisation, which is also often included in evolutionary computation).

However, fuzzy rule-based systems are usually included in the definition of computational intelligence, despite their top-down approach and lack of biological inspiration (although there are ways of constructing fuzzy rules directly from data, like using backpropagation to train the rules and fuzzy membership functions).

The website of the IEEE Computational Intelligence Society (of which I am a member) defines the scope of the society as:

"The Field of Interest of the Society shall be the theory, design, application, and development of biologically and linguistically motivated computational paradigms emphasizing neural networks, connectionist systems, genetic algorithms, evolutionary programming, fuzzy systems, and hybrid intelligent systems in which these paradigms are contained."

Which is good enough for me. I don't think there will ever be a universally-accepted definition of what computational intelligence is, but that's probably a good thing, because it allows plenty of scope for the field to grow.