Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are evolutionary algorithms and neural networks used in the same domains?

Tags:

I am trying to get a feel for the difference between the various classes of machine-learning algorithms.

I understand that the implementations of evolutionary algorithms are quite different from the implementations 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've skimmed some articles that suggest using them in a complementary fashion. Is there a decent example of a use case for that?

like image 495
Joe Holloway Avatar asked Mar 09 '09 22:03

Joe Holloway


People also ask

Is a neural network an evolutionary algorithm?

Neuroevolution, or neuro-evolution, is a form of artificial intelligence that uses evolutionary algorithms to generate artificial neural networks (ANN), parameters, and rules. It is most commonly applied in artificial life, general game playing and evolutionary robotics.

Are evolutionary algorithms and genetic algorithms same?

A genetic algorithm is a class of evolutionary algorithm. Although genetic algorithms are the most frequently encountered type of evolutionary algorithm, there are other types, such as Evolution Strategy. So, evolutionary algorithms encompass genetic algorithms, and more.

Do neural networks and genetic algorithms have anything in common?

+1 for genetic algorithms (optimization) and neural networks (supervised learning) have almost nothing in common. The only common element is that they dynamically rearrange themselves as they approach a goal.

Where are evolutionary algorithms used?

Evolutionary algorithms are typically used to provide good approximate solutions to problems that cannot be solved easily using other techniques. Many optimisation problems fall into this category. It may be too computationally-intensive to find an exact solution but sometimes a near-optimal solution is sufficient.

What is an evolutionary algorithm in neural networks?

In this tutorial we’ll walk through training neural networks using an evolutionary algorithm, and we will use this technique to solve regression, classification, and policy problems. To do this, we will be using Python and the NumPy library. Evolutionary Algorithms are based on the premise of natural selection, and include a five-step process:

What is the difference between genetic algorithm and artificial neural network?

Thanks! A genetic algorithm is an optimization algorithm. An artificial neural network is a function approximator. In order to approximate a function you need an optimization algorithm to adjust the weights.

Can genetic algorithms be used for feature selection in neural network classifiers?

The authors describe experiments using a genetic algorithm for feature selection in the context of neural network classifiers, specifically, counterpropagation networks. They present the novel techniques used in the application of genetic algorithms.

Are evolutionary algorithms overlooked?

F or the past decade, deep learning has dominated the machine learning landscape, often to the exclusion of other techniques. As a data scientist, it’s important to have a variety of tools at your disposal, and one class of techniques that I feel is too-often overlooked is evolutionary algorithms.


1 Answers

Here is the deal: in machine learning problems, you typically have two components:

a) The model (function class, etc)

b) Methods of fitting the model (optimizaiton algorithms)

Neural networks are a model: given 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 -- fitting the model. Again, there are some canonical models that go with evolutionary algorithms: for example, evolutionary programming typically tries to optimize over all programs of a particular type. However, EAs are essentially a way of finding 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 crank to get a reasonable setting of parameters out.

Now, you could, for example, use evolutionary algorithms to train a neural network and I'm sure it's been done. However, the critical bit that EA require to work is that the crossover operation must be a reasonable thing to do -- by taking part of the parameters from one reasonable setting and the rest from another reasonable setting, you'll often end up with an even better parameter setting. Most times EA is used, this is not the case and it ends up being something like simulated annealing, only more confusing and inefficient.

like image 181
bsdfish Avatar answered Sep 24 '22 04:09

bsdfish