Search code examples
classificationevolutionary-algorithm

What is the Difference between evolutionary computing and classification?


I am looking for some comprehensive description. I couldn't find it via browsing as things are more clustered on the web and its not in my scope currently.


Solution

  • Classification and evolutionary computing is comparing oranges to apples. Let me explain:

    Classification is a type of problem, where the goal is to determine a label given some input. (Typical example, given pixel values, determine image label).

    Evolutionary computing is a family of algorithms to solve different types of problems. They work with a "population" of candidates (imagine a set of different neural networks trying to solve a given problem). Somehow you evaluate how good each candidate is in the given task (typically using a "fitness function", but there are other methods). Then a new generation of candidates is produced, taking the best candidates from the previous generation as a model, and including mutations and cross-over (that is, introducing changes). Repeat until happy.

    Evolutionary computing can absolutely be used for classification! But there are examples where it is used in different ways. You may use evolutionary computing to create an artificial neural network controlling a robot (in this case, inputs are sensor values, outputs are commands for actuators). Or to create original content free of a given goal, as in Picbreeder.

    Classification may be solved using evolutionary computation (maybe this is why you where confused in the first place) but other techniques are also common. You can use decision trees, or notably deep-learning (based on backpropagation).

    Deep-learning based on backpropagation may sound similar to evolutionary computation, but it is quite different. Here you have only one artificial neural network, and a clear rule (backpropagation) telling you which changes to introduce every iteration.

    Hope this helps to complement other answers!