Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between Neural Network and Evolutionary algorithm

I have a good basis on Evolutionary Algorithms, so now i started to read about Artificial Neural Networks. I come across this tutorial on http://www.ai-junkie.com/ann/evolved/nnt2.html, showing how to use a ANN to evolve Tanks that collect mines. It uses a GA to evolve the input weights on each Neuron.

I know i could use GA (without the ANN) to solve the same problem. I already created a Tetris Bot using only GA to optimize the weights in the grid evaluation function (check my blog http://www.bitsrandomicos.blogspot.com.br/).

My question is: what's the conceptual/practical difference between using a ANN + GA in a situation where i could use GA alone? I mean, is my Tetris Bot a ANN?(I don't think so).

There are several related questions about this, but i couldn't find a answer:

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

When to use Genetic Algorithms vs. when to use Neural Networks?

Thanks!

like image 890
Fernando Avatar asked Mar 25 '12 05:03

Fernando


People also ask

What is the difference between a neural network and genetic algorithms?

First of all, a genetic algorithms are search-based optimization algorithms used to find optimal or near-optimal solutions for search problems and optimization problems. Neural networks, on the other hand, are mathematical models that map between complex inputs and outputs.

What is the difference between evolutionary algorithm and genetic algorithm?

Evolutionary algorithms use only mutation as the reproduction strategy while genetic algorithms use both crossover and mutation for reproduction. Its as simple as that and is found in most of the evolutionary systems reported in the literature.

Are neural networks evolutionary?

Basic Algorithms. Figure 1: Evolving neural networks. Typically in neuroevolution, a population of genetic encodings of neural networks is evolved in order to find a network that solves the given task. Most neuroevolution methods follow the usual generate-and-test loop of evolutionary algorithms (Figure 1).

What are different evolutionary algorithms?

The main classes of EA in contemporary usage are (in order of popularity) genetic algorithms (GAs), evolution strategies (ESs), differential evolution (DE) and estimation of distribution algorithms (EDAs).


1 Answers

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. An ANN can be used for supervised learning (classification, regression) or reinforcement learning and some can even be used for unsupervised learning.

In supervised learning a derivative-free optimization algorithm like a genetic algorithm is slower than most of the optimization algorithms that use gradient information. Thus, it only makes sense to evolve neural networks with genetic algorithms in reinforcement learning. This is known as "neuroevolution". The advantage of neural networks like multilayer perceptrons in this setup is that they can approximate any function with arbitrary precision when they have a suffficient number of hidden nodes.

When you create a tetris bot you do not necessarily have to use an ANN as a function approximator. But you need some kind of function approximator to represent your bot's policy. I guess it was just simpler than an ANN. But when you want to create a complex nonlinear policy you could do that e. g. with an ANN.

like image 71
alfa Avatar answered Oct 02 '22 07:10

alfa