+8 votes
1 view
in Machine Learning by (12.5k points)

I’m learning the difference between the various machine learning algorithms.  

I understand that the implementations of evolutionary algorithms are quite different from the implementation of neural networks.

However, they both seem to be geared at determining a correlation between inputs and outputs from a potentially noisy set of training/historical data.  

From a qualitative perspective, are there problem domains that are better targets for neural networks as opposed to evolutionary algorithms?

I skimmed some articles that suggest using them in a complementary fashion.  Is there a decent example of a use case for that?

2 Answers

+6 votes
by (32.6k points)
selected by
 
Best answer

Evolutionary algorithms are a heuristic-based approach to solving problems that cannot be easily solved in polynomial time, such as classically NP-Hard problems, and anything else that would take far too long to exhaustively process. These algorithms perform crossover and mutation on data given to them, to perform the best-optimized search. E.g. “Did you mean” function in Google if we type the incorrect word in a query, google corrects the world for us by using previous data and evolutionary algorithms.

Neural networks are algorithms modeled from the human brain. They can take input, adjust bias according to the training data and give output based on the hypothesis provided to them.

Evolutionary algorithms can be used with or without neural networks. Evolutionary algorithms are more expensive to use than neural networks.

Evolutionary algorithms are used with neural networks to perform powerful optimizations.

For example, Generative Adversarial Networks(GANs) are a current trending example of combination Neural Networks and Genetic Algorithms(a class of evolutionary algorithms). GANs can generate a picture of humans, these human doesn't even exist. It is a very interesting use of GANs.

Evolutionary algorithms are meta machine learning algorithms used for optimization. Neural networks are used for model training. That's why they share the same domain to perform powerful computations

0 votes
by (42.1k points)

Evolutionary algorithms and neural networks can both be used for similar domains for powerful computations because evolutionary algorithms are meta machine learning algorithms used for optimization and neural networks are used for model training.

In machine learning problems, you typically have two components:

a) The model (function class, etc)

b) Methods of fitting the model (optimization algorithms)

The neural network is a model in which we provide a layout and a setting of weights, the neural net produces some output. There exist some canonical methods of fitting neural nets, such as backpropagation, contrastive divergence, etc. However, the big point of neural networks is that if someone gave you the 'right' weights, you'd do well on the problem.

Evolutionary algorithms address the second part i.e. fitting the model. Again, there are some canonical models that go with evolutionary algorithms: for example, evolutionary programming typically tries to optimize overall programs of a particular type. However, they are responsible for finding a way to the right parameter values for a particular model. Usually, you write your model parameters in such a way that the crossover operation is a reasonable thing to do and turn the EA to get a set of parameters.

...