Bonjour,
Je suis en train de réaliser un agent artificiel contrôlant un tank dans un environnement 2D, grâce à un réseau de neurones.
J'aimerais avoir l'avis de personnes expérimentées dans le domaine des réseaux de neurones, notamment en ce qui concerne le format des données d'entrée du réseau, et comment interpréter les valeurs en sortie.
Pour les entrées : Est-il préférable de normaliser les valeurs ? Par exemple, pour la "santé" actuelle du tank, mieux vaut-il donner le rapport SANTE_ACTUELLE/SANTE_MAX ou bien SANTE_ACTUELLE directement ? En gros, est-ce mieux de formater toutes les entrées entre 0 et 1, plutôt que d'en avoir qui vont jusqu'à 500, tandis que d'autres peuvent varier entre -2 et 0.5 ?
Pour les sorties : La technique que j'utilise actuellement est d'avoir défini des actions scriptées, et faire exécuter au tank une de ces actions si le neurone de sortie correspondant donne une valeur supérieure ou égale à 1.0. Est-ce une bonne technique ? Mieux vaut-il considérer en valeurs de sorties des grandeurs continues comme l'angle du chassis à atteindre, l'angle de la tourelle à atteindre, de combien de mètres avancer, etc... Plutôt que des déclencheurs d'actions scriptées ?
Merci beaucoup pour vos réponses sur le sujet
PS : Pour information, ces agents artificiels sont placés dans le cadre d'une optimisation des poids par essaim particulaire, en les entrainant contre un tank totalement scripté. Si quelqu'un a déjà travaillé sur un tel concept, je serais heureux d'obtenir d'éventuels conseils ^^.
Partager