Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Algorithme NEAT — Wikipédia
Algorithme NEAT — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Algorithme NEAT
Type
AlgorithmeVoir et modifier les données sur Wikidata
Inventeur
Kenneth O. Stanley (en)Voir et modifier les données sur Wikidata

modifier - modifier le code - modifier WikidataDocumentation du modèle

L'algorithme NEAT (de l'anglais Neuroevolution of augmenting topologies) est un algorithme génétique utilisé pour la génération de réseaux de neurones artificiels développé par Ken Stanley en 2002 lorsqu'il était à l'Université du Texas à Austin[1]. L'algorithme consiste à modifier à la fois les paramètres de pondération et les structures des réseaux de neurones afin d'essayer de trouver un équilibre entre la performance des solutions obtenues et leur diversité. Il est basé sur trois techniques principales : 1. suivre les modifications réalisées sur chaque gène afin de permettre des croisements entre les différentes topologies, 2. appliquer des mutations (l'évolution des espèces) pour conserver les innovations, et 3. développer les topologies pas-à-pas à partir de structures initiales simples ("complexification").

Performance

[modifier | modifier le code]

Sur de simples tâches de contrôle, l'algorithme NEAT arrive souvent à des réseaux efficaces plus rapidement que d'autres techniques de neuro-évolution récentes et méthodes d'apprentissage par renforcement[2],[3].

Algorithme

[modifier | modifier le code]
Cette section ne cite pas suffisamment ses sources (novembre 2023). 
Pour l'améliorer, ajoutez des références de qualité et vérifiables (comment faire ?) ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Traditionnellement, la topologie du réseau de neurones est choisie expérimentalement par un humain et des valeurs efficaces des poids des connexions sont apprises grâce une procédure d'entrainement. Ceci entraîne une situation où un processus d'essai et d'erreur peut être nécessaire afin de déterminer une topologie appropriée. L'algorithme NEAT est un exemple d'une topologie et réseau de neurones à poids évolutifs qui essaie simultanément d'apprendre sur les valeurs des poids et d'une topologie appropriée pour un réseau de neurones.

Afin d'encoder le réseau dans un phénotype pour l'algorithme génétique, NEAT utilise un schéma d'encodage direct, ce qui signifie que chaque connexion et neurone est représenté explicitement. Cela est à mettre en contraste avec les schémas d'encodage indirect qui donnent les règles qui autorisent la construction du réseau, sans pour autant représenter explicitement chaque connexion et neurone, autorisant à une représentation plus compacte.

L'approche de NEAT commence de façon semblable à un perceptron avec un réseau de neurones à propagation avant qui ne comporte que des neurones d'entrée et de sortie. Comme l'évolution progresse par étapes, la complexité de la topologie du réseau peut évoluer soit en insérant un nouveau neurone sur le chemin de connexion ou en créant une nouvelle connexion entre des neurones (qui n'étaient pas précédemment connectés).

Conventions concurrentes

[modifier | modifier le code]

Le problème des conventions concurrentes apparaît lorsqu'il y a plus d'une façon de représenter l'information dans un phénotype. Par exemple, si un génome contient des neurones A, B et C qui sont représentés par [A B C], et si ce génome est croisé avec un génome identique (en termes de fonctionnalités) mais représenté par [C B A], le croisement peut donner un enfant avec des fonctionnalités manquantes, comme [A B A] ou [C B C]. L'algorithme NEAT résout ce problème en suivant l'historique des gênes par l'utilisation d'un nombre global d'innovation qui augmente à chaque fois que de nouveaux gênes sont ajoutés. Ainsi, quand un nouveau gêne est ajouté, le nombre d'innovation global est incrémenté et est assigné à ce nouveau gêne. Un nombre élevé assigné à un gêne signifie que celui-ci a été ajouté récemment. Pour une génération particulière, si deux mutations identiques ont lieu dans plus qu'une génome, elles obtiennent toutes deux le même nombre, mais au-delà le nombre de mutation restera inchangé indéfiniment.

Ces nombres d'innovation permettent à l'algorithme NEAT de faire correspondre les gênes qui peuvent être croisés entre eux[2].

Implémentation

[modifier | modifier le code]

L’implémentation originale de Ken Stanley a été publiée sous GPL. L’implémentation est basée sur Guile, un interpréteur GNU basé sur Scheme. Cette implémentation de NEAT est un point de départ conventionnel des implémentations de l'algorithme NEAT[4].

Extensions

[modifier | modifier le code]

rtNEAT

[modifier | modifier le code]

En 2003, Stanley a conçu une extension de NEAT qui permet à l'évolution de se produire en temps réel plutôt que par l'itération de générations comme le font la plupart des algorithmes génétiques. L'idée de base est de soumettre la population à une évaluation constante à l'aide d'un compteur de "durée de vie" pour chaque individu de la population. Lorsque la minuterie d'un réseau expire, sa mesure d'aptitude actuelle est examinée pour voir si elle se situe près du bas de la population, et si c'est le cas, elle est éliminée et remplacée par un nouveau réseau issu de deux parents très aptes. Une minuterie est fixée pour le nouveau réseau et il est placé dans la population pour participer aux évaluations en cours.

La première application de rtNEAT est un jeu vidéo appelé Neuro-Evolving Robotic Operatives. Dans la première phase du jeu, les joueurs déploient chacun de leur côté des robots dans un "bac à sable" et ils les forment à une certaine doctrine tactique souhaitée. Une fois qu'une collection de robots a été entraînée, une deuxième phase du jeu permet aux joueurs d'opposer leurs robots à des robots entraînés par les autres joueurs, afin de voir si leurs régimes d'entraînement ont bien préparé leurs robots au combat.

Élagage progressif

[modifier | modifier le code]

Une extension du NEAT de Ken Stanley, développée par Colin Green, ajoute un élagage périodique des topologies de réseau des solutions candidates pendant le processus d'évolution. Cet ajout répond à la crainte qu'une croissance automatisée illimitée ne génère une structure inutile.

HyperNEAT

[modifier | modifier le code]
Article détaillé : HyperNEAT.

HyperNEAT est spécialisé dans l'évolution des structures à grande échelle. Il était à l'origine basé sur la théorie des réseaux de production de motifs compositionnels et constitue un domaine de recherche actif.

cgNEAT

[modifier | modifier le code]

cgNEAT permet de faire évoluer le contenu de jeux vidéo en fonction des préférences de l'utilisateurs. Le premier jeu vidéo à mettre en œuvre cgNEAT est Galactic Arms Race, un jeu de tir spatial dans lequel les particules des armes évoluent de façon unique en fonction des statistiques d'utilisation du joueur[5].

odNEAT

[modifier | modifier le code]

odNEAT est une version en ligne et décentralisée de NEAT conçue pour les systèmes multi-robots[6]. odNEAT est exécuté à bord des robots eux-mêmes pendant l'exécution de la tâche afin d'optimiser en permanence les paramètres et la topologie des contrôleurs à base de réseaux de neurones artificiels. De cette façon, les robots exécutant odNEAT ont la possibilité de s'adapter à des conditions changeantes et d'apprendre de nouveaux comportements pendant l'exécution de leurs tâches. Le processus d'évolution en ligne est mis en œuvre selon un modèle d'îlot physiquement distribué. Chaque robot optimise une population interne de solutions candidates (variation intra-île), et deux robots ou plus échangent des solutions candidates lorsqu'ils se rencontrent (migration inter-île). De cette façon, chaque robot est potentiellement autosuffisant et le processus évolutif capitalise sur l'échange de contrôleurs entre plusieurs robots pour une synthèse plus rapide de contrôleurs efficaces.

Notes et références

[modifier | modifier le code]
  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Neuroevolution of augmenting topologies » (voir la liste des auteurs).
  1. ↑ « Evolving Neural Networks through Augmenting Topologies », sur direct.mit.edu (consulté le 17 novembre 2023)
  2. ↑ a et b (en) Kenneth O. Stanley et Risto Miikkulainen, « Evolving Neural Networks Through Augmenting Topologies », Evolutionary Computation, vol. 10, no 2,‎ 2002, p. 99-127
  3. ↑ (en) Matthew E. Taylor, Shimon Whiteson et Peter Stone, « Comparing Evolutionary and Temporal Difference Methods in a Reinforcement Learning Domain », Proceedings of the Genetic and Evolutionary Computation Conference,‎ 2006
  4. ↑ « NNRG Software - NEAT C++ Original », sur nn.cs.utexas.edu (consulté le 17 novembre 2023)
  5. ↑ (en) Erin J. Hastings, Ratan K. Guha et Kenneth O. Stanley, « Automatic Content Generation in the Galactic Arms Race Video Game », IEEE Transactions on Computational Intelligence and AI in Games, vol. 4, no 1,‎ 2010, p. 245-263
  6. ↑ Fernando Silva, Paulo Urbano, Luís Correia et Anders Lyhne Christensen, « odNEAT: An Algorithm for Decentralised Online Evolution of Robotic Controllers », Evolutionary Computation, vol. 23, no 3,‎ 15 septembre 2015, p. 421–449 (PMID 25478664, DOI 10.1162/evco_a_00141, hdl 10071/10504 Accès libre, S2CID 20815070)
v · m
Apprentissage automatique et exploration de données
Paradigmes
  • Apprentissage supervisé
  • Auto-supervisé
  • Semi-supervisé
  • Non supervisé
  • Apprentissage par renforcement
  • Transfert
  • Incrémental
Problèmes
  • Classement
  • Clustering
  • Détection d'anomalies
  • Optimisation en ligne
  • Modèle génératif
  • Régression
  • Règle d'association
  • Réduction de dimensions
    • Analyse factorielle
    • Sélection de caractéristique
    • Extraction de caractéristique
Supervisé
Classement
  • Arbre de décision
  • k-NN
  • U-matrix
  • CRF
  • Régression logistique
Régression
  • Modèle linéaire généralisé
    • Régression linéaire
    • Régression de Poisson
    • Modèle probit
  • Analyse discriminante linéaire
  • Machine à vecteurs de support
Prédiction structurée
  • Modèle graphique
    • Classification naïve bayésienne
    • Réseau bayésien
    • Modèle de Markov caché
Réseau de neurones
artificiels
  • Récurrents
    • Rétropropagation à travers le temps
    • Calcul par réservoir
  • à action directe
    • Rétropropagation du gradient
    • Apprentissage profond
    • Perceptron
    • Perceptron multicouche
    • Réseau neuronal convolutif
    • Attention
  • Réseau de neurones à impulsions
Non supervisé et
auto-supervisé
Découverte de structures
  • Clustering
    • Regroupement hiérarchique
    • K-moyennes
    • Algorithme espérance-maximisation
    • DBSCAN
    • OPTICS
  • Règle d'association
Réduction de dimensions
  • ACP
  • ACP à noyaux
  • Analyse en composantes indépendantes
  • Analyse canonique des corrélations
  • Analyse canonique à noyaux
  • t-SNE
  • Réseau de neurones artificiels
    • Auto-encodeur
IA générative
et modèle génératif
  • Réseau de neurones artificiels
    • Réseaux antagonistes génératifs
      • Classique
      • de Wasserstein)
    • Auto-encodeur variationnel
    • Réseau de Hopfield
    • Machine de Boltzmann restreinte
    • Cartes de Kohonen
    • Transformeur
Métaheuristique
d'optimisation
  • Stratégie d'évolution et génétique
    • NEAT
    • HyperNEAT
  • Essaims
  • Apprentissage ensembliste
    • Forêts aléatoires
    • Boosting
Théorie
  • Apprentissage PAC
  • Complexité de Rademacher
  • Dilemme biais-variance
  • Hypothèse de la variété
  • Théorie de Vapnik-Chervonenkis
    • Pulvérisation
    • Dimension de Vapnik-Chervonenkis
  • Théorème de Cover
Logiciels
  • Keras
  • Microsoft Cognitive Toolkit
  • Scikit-learn
  • TensorFlow
  • Theano
  • Weka
  • PyTorch
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail de l'informatique théorique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Algorithme_NEAT&oldid=217840445 ».
Catégorie :
  • Réseau de neurones artificiels
Catégories cachées :
  • Page utilisant P31
  • Page utilisant des données de Wikidata à traduire de l'anglais
  • Page utilisant P61
  • Article à illustrer Méthode scientifique
  • Article utilisant l'infobox Méthode scientifique
  • Article utilisant une Infobox
  • Article manquant de références depuis novembre 2023
  • Article manquant de références/Liste complète
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Informatique théorique/Articles liés
  • Portail:Mathématiques/Articles liés
  • Portail:Sciences/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id