139 votes

Quand dois-je utiliser les algorithmes génétiques plutôt que les réseaux neuronaux ?

Existe-t-il une règle empirique (ou une série d'exemples) pour déterminer quand utiliser les algorithmes génétiques plutôt que les réseaux neuronaux (et vice-versa) pour résoudre un problème ?

Je sais qu'il existe des cas où les deux méthodes peuvent être combinées, mais je cherche une comparaison de haut niveau entre les deux méthodes.

3 votes

Il convient de préciser qu'il existe deux types de réseaux neuronaux : supervisés et non supervisés. Les réseaux supervisés reçoivent des données d'apprentissage d'un humain, tandis que les réseaux non supervisés s'auto-évaluent et ressemblent davantage à des AG à cet égard.

3 votes

Je ne pense pas du tout que ce soit une "liste". Les réponses comparent deux méthodes et précisent quand utiliser l'une ou l'autre.

0 votes

Réponse courte : utilisez GA lorsque la fonction à modéliser est non-continue/discrète, ou lorsque l'ensemble de données est astronomiquement élevé. Utilisez les réseaux neuronaux ou GA (ou un autre modèle) pour le reste en fonction de ce qui vous donne les meilleurs résultats. Pour plus d'informations, voir ma réponse ici : stackoverflow.com/a/49684833/1121352

132voto

Dawie Strauss Points 1576

De wikipedia :

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

et :

Réseaux neuronaux sont des outils de modélisation statistique non linéaire des données. Ils peuvent être utilisés pour modéliser des relations complexes entre les entrées et les sorties ou pour trouver des modèles en données.

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

Lorsque vous avez un certain nombre d'articles dans des classes différentes, une réseau de neurones peuvent "apprendre" à classer des éléments qu'il n'a pas "vus" auparavant. (Par exemple, la reconnaissance des visages, la reconnaissance vocale).

Les temps d'exécution doivent également être pris en compte. Un algorithme génétique prend beaucoup de temps pour trouver une solution acceptable. Un réseau neuronal prend beaucoup de temps pour "apprendre", mais il peut ensuite classer presque instantanément les nouvelles entrées.

13 votes

Je veux juste ajouter un peu à la définition de l'AG. Parfois, les gens pensent que l'espace de solution d'un problème d'AG est un ensemble d'états ou de valeurs. Par exemple, "Trouvez toutes les façons dont un ensemble de quatre pièces d'échecs pourrait être disposé sur un échiquier pour créer un échec et mat". Cependant, l'espace de solution peut également être un ensemble d'algorithmes. C'est là que la véritable puissance des algorithmes génétiques entre en jeu. Ils vous aident à répondre à une question comme "Trouver une séquence de mouvements avec un ensemble donné de pièces d'échecs qui aboutira à un échec et mat".

46voto

zenna Points 2903

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

Les réseaux neuronaux sont utiles pour la reconnaissance des schémas . Ils suivent un modèle simpliste du cerveau et, en modifiant un certain nombre de poids entre eux, tentent de prédire les sorties en fonction des entrées.

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

24 votes

Les réseaux neuronaux ne sont qu'une technique d'interpolation, en fait. :)

3 votes

+1 pour les algorithmes génétiques (optimisation) et les réseaux neuronaux (apprentissage supervisé) n'ont presque rien en commun.

2 votes

Le seul élément commun est qu'ils se réorganisent dynamiquement à l'approche d'un objectif.

40voto

Steven A. Lowe Points 40596

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

Les NN classent (ou reconnaissent) des modèles existants sur la base des données d'entraînement que vous leur fournissez.

Les GA permettent de rechercher efficacement un grand espace d'état de solutions et de converger vers une ou plusieurs bonnes solutions, mais pas nécessairement vers la "meilleure" solution.

Les NN peuvent apprendre à reconnaître des modèles (via l'apprentissage), 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 réutiliser ces connaissances dans d'autres (non-NN).

28voto

bayer Points 4202

Vous comparez deux choses totalement différentes ici.

Les réseaux neuronaux sont utilisés pour la régression/classification - étant donné un ensemble d'exemples (x, y), vous voulez 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).

10 votes

En effet. Il s'agit en fait de techniques "orthogonales". Vous pouvez utiliser un AG pour trouver les poids et/ou l'architecture d'un réseau neuronal.

0 votes

Les qualifier de "totalement différentes" ou "orthogonales" semble un peu excessif au vu des autres réponses fournies sur ce fil et d'autres fils sur le sujet.

23voto

Unknown Points 22789

Il y a de nombreuses similitudes entre eux, je vais donc essayer d'en décrire les grandes lignes. différences .

Réseaux neuronaux

Sont capables d'analyser des schémas en ligne (ceux qui changent dans le temps). En général, il s'agit d'un échantillon qui varie dans le temps et qui doit être apparié et prédit.

Exemples :

  • Extrapolation de graphiques
  • Reconnaissance faciale

Algorithmes génétiques

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

Exemples :

  • Programmation des avions/expéditions
  • 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X