web-dev-qa-db-fra.com

Quand devrais-je utiliser des algorithmes génétiques par opposition aux réseaux de neurones?

Existe-t-il une règle de base (ou un ensemble d'exemples) permettant de déterminer quand utiliser des algorithmes génétiques par opposition aux réseaux de neurones (et inversement) pour résoudre un problème?

Je sais qu'il existe des cas dans lesquels vous pouvez combiner les deux méthodes, mais je recherche une comparaison de haut niveau entre les deux méthodes.

132
Neil N

De wikipedia:

A algorithme génétique (GA) est une technique de recherche utilisée en informatique pour trouver exacte ou approximative solutions aux problèmes d'optimisation et de recherche.

et:

Les réseaux de neurones sont des outils de modélisation de données statistiques non linéaires. Ils peuvent être utilisés pour modéliser des relations complexes entre les entrées et les sorties ou pour rechercher des modèles dans les données.

Si vous avez un problème qui vous permet de quantifier la valeur d’une solution, un algorithme génétique peut effectuer une recherche dirigée . de l'espace de solution. (Par exemple, trouver l'itinéraire le plus court entre deux points)

Lorsque vous avez plusieurs éléments dans différentes classes, un réseau de neurones peut "apprendre" à classifier éléments qu'il n'a pas "vu" auparavant. (Reconnaissance du visage, reconnaissance vocale, par exemple)

Les temps d'exécution doivent également être pris en compte. Un algorithme génétique met longtemps à trouver une solution acceptable. Un réseau de neurones met longtemps à "apprendre", mais il peut alors classer presque instantanément de nouvelles entrées.

122
Dawie Strauss

Un algorithme génétique (malgré son nom sexy) est, dans la plupart des cas, une technique d'optimisation. Cela se résume principalement à un certain nombre de variables et à la recherche de la meilleure combinaison de valeurs pour ces variables. Il emprunte juste des techniques de l'évolution naturelle pour y arriver.

Les réseaux de neurones sont utiles pour reconnaître des motifs. Ils suivent un modèle simpliste du cerveau et, en modifiant un certain nombre de facteurs de pondération, tentent de prédire les résultats en fonction des intrants.

Ce sont deux entités fondamentalement différentes, mais parfois les problèmes qu’elles sont capables de résoudre se chevauchent.

41
zenna

Les GA génèrent de nouveaux modèles dans une structure que vous définissez.

Les NN classifient (ou reconnaissent) les modèles existants en fonction des données de formation que vous avez fournies.

Les GA réussissent bien à rechercher efficacement un grand espace de solutions et à converger vers une ou plusieurs bonnes solutions, mais pas nécessairement la "meilleure" solution.

Les NN peuvent apprendre à reconnaître des modèles (via la formation), mais il est notoirement difficile de comprendre ce qu’ils ont appris, c’est-à-dire d’en extraire les connaissances une fois qu’ils ont été formés et de les réutiliser dans un autre (non-NN).

37
Steven A. Lowe

Vous comparez deux choses totalement différentes ici.

Les réseaux de neurones sont utilisés pour la régression/classification - étant donné un ensemble d'exemples (x, y), vous souhaitez régresser l'inconnu y pour un x donné.

Les algorithmes génétiques sont une technique d'optimisation. Étant donné une fonction f (x), vous voulez déterminer le x qui minimise/maximise f (x).

25
bayer

Il y a beaucoup de similitudes entre eux, donc je vais seulement essayer de souligner leurs différences .

Les réseaux de neurones

Sont capables d'analyser les modèles en ligne (ceux qui changent avec le temps). En règle générale, il s'agit d'un échantillon variant dans le temps qui doit être mis en correspondance et prédit.

Exemples:

  • Extrapolation de graphique
  • La reconnaissance faciale

Algorithmes génétiques

Utilisé lorsque vous pouvez coder des attributs qui, selon vous, peuvent contribuer à un problème spécifique inchangé. L'accent est mis sur la possibilité de coder ces attributs (vous savez parfois ce qu'ils sont) et sur le fait que le problème est dans une large mesure invariable (sinon les évolutions ne convergent pas).

Exemples:

  • Planification des avions/expédition
  • Horaires.
  • Trouver les meilleures caractéristiques pour un agent simple dans un environnement artificiel
  • Rendu d'une approximation d'une image avec des polygones aléatoires
22
Unknown

Vous pouvez utiliser des algorithmes génétiques comme alternative à l'algorithme de rétropropagation pour mettre à jour les poids dans les réseaux de neurones. Pour un exemple, reportez-vous à: http://www.ai-junkie.com/ann/evolved/nnt1.html .

14
Amro

Les algorithmes génétiques travaillent (généralement) sur des données discrètes (énums, plages entières, etc.). Une application typique des GA consiste à rechercher dans un espace discret une solution "suffisamment bonne" lorsque la seule alternative disponible est une recherche par force brute (évaluation de toutes les combinaisons).

Les réseaux de neurones, par contre, travaillent (généralement) sur des données continues (flotteurs, etc.). Une application typique des NN est l'approximation de fonction, où vous avez un ensemble X d'entrées et un ensemble Y de sorties associées, mais la fonction analytique f: X → Y.

Bien sûr, il existe des milliers de variantes des deux versions, ce qui rend la ligne un peu floue.

7
LumpN

Il n'y a pas de règle de base. Dans de nombreux cas, vous pouvez formuler votre problème pour utiliser l'un ou l'autre. L'apprentissage automatique est encore un domaine de recherche actif et le modèle d'apprentissage à utiliser peut être discuté.

Les GA prennent les langages sexy de l'évolution mais vous attendez que votre ordinateur tombe sur une solution par un processus aléatoire. Étudiez vos données, faites de bonnes hypothèses, essayez de savoir ce que vous voulez et choisissez une approche qui puisse les utiliser à bon escient. Si votre premier choix donne de piètres résultats, sachez pourquoi et améliorez l'algorithme lui-même ou choisissez-en un meilleur.

5
tilish