Benoit a écrit :S M A
Tiens tiens....
Y aurait il plusieurs agents dans ce code ?
Salut Benoit, deuxième réponse car la première ne me convient pas.
C'était un projet pour un cours sur les systèmes multi-agents.
C'est un tout petit réseau d'une seule couche.
Chaque neurone est en compétition avec les autres pour être le vainqueur.
C'est le vainqueur si sa sortie est plus élevée que celle des autres.
Il y a 4 neurones en sortie qui se battent, un pour chaque direction.
Concernant l'apprentissage :
Si le serpent mange la pomme, je renforce le neurone vainqueur. (Je fais tendre sa sortie vers 1.0). Apprentissage inductif.
Si le serpent se cogne ou tourne en rond, j'affaiblis le neurone vainqueur (je fais tendre sa sortie vers 0.0f). De telle sorte que lorsque l'on lui représentera le même pattern, motif, il ne gagne pas, et le réseau change de décision. (à terme). Apprentissage déductif.
J'ai utilisé cet algorithme sur des neurones à combinaisons linéaires avec comme sortie la sigmoïde.
Ça ne marche plus dès que le réseau a plusieurs couches (MLP).
J'aurais dû utiliser un réseau neuronal topologique, dont l'entrée est une distance et non une combinaison linéaire.
J'ai eu 16, alors que le réseau choisi n'était pas le bon, en plus, mon rapport était truffé d'erreurs mathématiques.
Ce n'est pas un apprentissage supervisé, il développe tout seul son comportement. Je ne lui donne que les clauses, mais je ne lui dis pas comment les atteindre. C'est l’intérêt de ce projet.