Les algorithmes évolutifs et les réseaux neuronaux sont-ils utilisés dans les mêmes domaines?

j'essaie de me faire une idée de la différence entre les différentes classes d'algorithmes d'apprentissage automatique.

je comprends que les implémentations d'algorithmes évolutifs sont très différentes des implémentations de réseaux neuronaux.

cependant, ils semblent tous deux être axés sur la détermination d'une corrélation entre les entrées et les sorties à partir d'un ensemble potentiellement bruyant de données de formation/historiques.

d'un point de vue qualitatif, y a-t-il des domaines problématiques qui sont de meilleures cibles pour les réseaux neuronaux par opposition aux algorithmes évolutifs?

j'ai lu quelques articles qui suggèrent de les utiliser de façon complémentaire. Est-il décent exemple d'un cas d'utilisation?

19
demandé sur Salvador Dali 2009-03-10 01:34:27

7 réponses

voici le deal: dans les problèmes d'apprentissage machine, vous avez généralement deux composants:

a) le modèle (classe de fonction, etc)

B) méthodes d'ajustement du modèle (algorithmes d'optimisation)

les réseaux neuronaux sont un modèle: avec une disposition et un réglage des poids, le réseau neuronal produit une certaine sortie. Il existe certaines méthodes canoniques pour l'installation de filets neuronaux, comme la rétropropagation, la divergence contrastive, etc. Cependant, le grand point de neuronal les réseaux, c'est que si quelqu'un vous donnait les "bons" poids, vous réussiriez bien sur le problème.

les algorithmes évolutifs traitent de la deuxième partie -- ajuster le modèle. Encore une fois, il y a quelques modèles canoniques qui vont avec les algorithmes évolutifs: par exemple, la programmation évolutive essaie typiquement d'optimiser sur tous les programmes d'un type particulier. Toutefois, les SAE sont essentiellement une façon de trouver les bonnes valeurs de paramètres pour un modèle particulier. Habituellement, vous écrivez les paramètres de votre modèle de manière à ce que l'opération de croisement soit une chose raisonnable à faire et à tourner la manivelle de L'EA pour obtenir un réglage raisonnable des paramètres.

Maintenant, vous pouvez, par exemple, utiliser des algorithmes évolutifs pour former un réseau neuronal et je suis sûr que c'est fait. Cependant, le point critique que L'évaluation environnementale exige pour fonctionner est que l'opération de transition doit être une chose raisonnable à faire -- en prenant une partie des paramètres à partir d'un réglage raisonnable et le reste à partir d'un autre réglage raisonnable., vous finirez souvent avec un paramétrage encore meilleur. La plupart du temps, EA est utilisé, ce n'est pas le cas et il finit par être quelque chose comme un recuit simulé, seulement plus confus et inefficace.

18
répondu bsdfish 2009-03-10 01:44:08

les problèmes nécessitant une "intuition" sont mieux adaptés aux Ann, par exemple la reconnaissance de l'écriture manuelle. Vous formez un réseau neuronal avec une énorme quantité d'entrées et le coter jusqu'à ce que vous avez terminé (cela prend beaucoup de temps), mais après vous avez un algorithme/système blackbox qui peut "devinez " l'écriture de la main, donc vous gardez votre petit cerveau et l'utilisez comme un module pendant de nombreuses années ou quelque chose. Parce que former une ANN de qualité pour un problème complexe peut prendre des mois, je suis le pire des cas, et chance.

la Plupart des autres algorithmes évolutionnaires "calculer

comme indiqué dans une autre réponse, une ANN peut "devinez" plus rapide que la plupart des autres algorithmes évolutionnaires peuvent "calculer". Toutefois, il faut être prudent, puisque L'ANN est juste "deviner" il peut être faux.

4
répondu Robert Gould 2009-03-10 01:37:24

regardez L'évolution neurologique. (NE)

les meilleures méthodes actuelles sont NEAT et HyperNEAT par Kenneth Stanley.

les Algorithmes génétiques ne trouvent qu'une sorte de génome; c'est génial de créer le génome d'un réseau neuronal, parce que vous obtenez la nature réactive du réseau neuronal, plutôt que juste un tas de gènes statiques.

il n'y a pas beaucoup de limites à ce qu'il peut apprendre. Mais cela prend du temps bien sûr. La topologie neurale doit être evolué par la mutation habituelle et le crossover, ainsi que les poids mis à jour. Il ne peut y avoir de propagation arrière.

vous pouvez également l'entraîner avec une fonction fitness, qui est donc supérieure à la propagation arrière lorsque vous ne savez pas ce que la sortie devrait être. Parfait pour apprendre un comportement complexe pour des systèmes pour lesquels vous ne connaissez pas de stratégies optimales. Le seul problème est qu'il va apprendre un comportement que vous n'aviez pas prévu. Souvent, ce comportement peut être très étranger, bien qu'il ce pour quoi vous l'avez récompensé dans la fonction fitness. Ainsi, vous utiliserez autant de temps dérivant des fonctions de fitness que vous auriez créer des ensembles de sortie pour la rétropagation: P

2
répondu Benjamin Fedder Jensen 2011-04-08 07:07:55

des algorithmes évolutifs, ou plus généralement génétiques, et des réseaux neuronaux peuvent tous deux être utilisés pour des objectifs similaires, et d'autres réponses décrivent bien la différence.

cependant, il existe un cas précis où les algorithmes évolutifs sont plus indiqués que les réseaux neuronaux: lorsque l'espace de solution n'est pas continu / discret.

en effet, les réseaux neuronaux utilisent la descente par gradient pour apprendre de la rétropropagation (ou algorithme similaire). Le calcul de un gradient s'appuie sur des dérivés, qui ont besoin d'un espace continu, c'est-à-dire que l'on peut passer progressivement d'une solution à l'autre.

si votre espace de solution est discret (c'est-à-dire que vous pouvez choisir la solution A, ou B, ou C, mais rien au milieu comme 0.5% A + 0.5% B), alors vous essayez d'adapter une fonction non continue, et alors les réseaux neuronaux ne peuvent pas fonctionner.

Dans ce cas, les algorithmes évolutionnaires sont parfaits, on pourrait même dire un dieu envoyer, car il peut "sauter" d'une solution à l'autre sans aucun problème.

il est également intéressant de mentionner que les algorithmes évolutifs ne sont pas soumis à la malédiction de la dimensionnalité autant que tout autre algorithme d'apprentissage automatique, y compris les réseaux neuronaux.

ceci fait des algorithmes évolutifs un outil très polyvalent et générique pour aborder naïvement n'importe quel problème, et l'un des très peu d'outils pour traiter soit des fonctions non-continues ou avec des données dimensionnelles.

2
répondu gaborous 2018-04-06 03:29:42

en termes de domaines problématiques, je compare les réseaux neuronaux artificiels formés par la rétropropagation à un algorithme évolutif.

un algorithme évolutif déploie un beamsearch aléatoire, ce qui signifie que vos opérateurs évolutifs développent des candidats à tester et à comparer par leur condition physique. Ces opérateurs sont généralement non déterministe et vous pouvez les concevoir de sorte qu'ils puissent à la fois trouver des candidats à proximité et les candidats qui sont plus loin dans le espace de paramétrage pour surmonter le problème de se coincer dans les optimas locales.

cependant, le succès d'une approche D'évaluation environnementale dépend grandement du modèle que vous développez, qui est un compromis entre un potentiel d'expression élevé (vous pourriez vous surestimer) et la généralité (le modèle pourrait ne pas être en mesure d'exprimer la fonction cible).

Parce que réseaux de neurones sont généralement multicouches l'espace paramétrique n'est pas convexe et contient des optimums locaux, les algorithmes de descente par gradient pourraient se coincer dans. La descente par gradient est un algorithme déterministe, qui cherche à travers la proximité. C'est pourquoi les réseaux neuronaux sont généralement initialisés au hasard et c'est pourquoi vous devriez former plus d'un modèle.

en outre, vous savez que chaque nœud caché dans un réseau neuronal définit un hyperplan que vous pouvez concevoir un réseau neuronal afin qu'il s'adapte bien à votre problème. Il y a des techniques pour empêcher les réseaux neuronaux de se surpasser.

dans l'ensemble, les réseaux neuronaux pourraient être formé rapidement et obtenir des résultats raisonnables avec peu d'efford (essayez juste quelques paramètres). En théorie, un réseau neuronal suffisamment grand est capable d'approcher toutes les fonctions de la cible, ce qui, de l'autre côté, le rend vulnérable à la surrection. Les algorithmes évolutifs exigent que vous fassiez beaucoup de choix de conception pour obtenir de bons résultats, le plus difficile étant probablement quel modèle optimiser. Mais EA sont capables de rechercher à travers des espaces de problèmes très complexes (d'une manière que vous définissez) et d'obtenir de bons résultats rapidement. AEs même peut rester efficace lorsque le problème (la fonction cible) change au fil du temps.

la Machine D'apprentissage de Tom Mitchell: http://www.cs.cmu.edu/~tom/mlbook.html

1
répondu 2009-06-05 08:09:32

les algorithmes évolutifs (EAs) sont lents parce qu'ils s'appuient sur un apprentissage non supervisé: on dit aux EAs que certaines solutions sont meilleures que d'autres, mais pas comment pour les améliorer. Les réseaux neuronaux sont généralement plus rapides, étant une instance d'apprentissage supervisé: ils savent améliorer une solution en utilisant la descente par gradient dans un espace de fonction sur certains paramètres; cela leur permet d'atteindre une solution valide plus rapidement. Les réseaux neuronaux sont souvent utilisés quand il n'y a pas assez connaissance du problème pour d'autres méthodes de travail.

1
répondu gersh 2012-04-04 12:31:00

les algorithmes évolutifs (EA) représentent une manière d'entraîner un modèle, où les réseaux neuronaux (NN) sont un modèle. La plupart du temps dans la littérature, vous trouverez que les NNs sont formés à l'aide de l'algorithme de rétropropagation. Cette méthode est très attrayante pour les mathématiciens, mais il exige que vous pouvez exprimer le taux d'erreur du modèle en utilisant une formule mathématique. C'est le cas pour les situations dans lesquelles vous connaissez beaucoup de valeurs d'entrée et de sortie pour la fonction que vous essayez de approximatif. Ce problème peut être modélisé mathématiquement, comme la minimisation d'une fonction de perte, qui peut être atteint grâce au calcul (et c'est pourquoi les mathématiciens aiment).

mais les réseaux neuronaux sont également utiles pour modéliser des systèmes qui tentent de maximiser ou de minimiser certains résultats, dont la formule est très difficile à modéliser mathématiquement. Par exemple, un réseau neuronal pourrait contrôler les muscles d'un cyborg pour atteindre la course. À chaque intervalle de temps, le modèle doit établir combien de tension devrait être présent dans chaque muscle du corps du cyborg, basé sur l'entrée de divers capteurs. Il est impossible de fournir de telles données d'entraînement. Les SAE permettent la formation en ne fournissant qu'une façon d'évaluer le modèle. Pour notre exemple, nous punirions la chute et récompenserions la distance parcourue à travers une surface (dans un délai fixe). EA sélectionnerait simplement les modèles qui font de leur mieux dans ce sens. Les premières générations sucer mais, étonnamment, après quelques centaines de de génération en génération, ces individus réalisent des mouvements très "naturels" et parviennent à courir sans tomber. Ces modèles peuvent aussi être capables de traiter des obstacles et des forces physiques externes.

1
répondu Radu Simionescu 2016-10-13 09:44:00