PureBasic

Forums PureBasic
Nous sommes le Mer 17/Juil/2019 3:39

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 
Auteur Message
 Sujet du message: Réseau de neurones artificiel basic: voiture sur un circuit
MessagePosté: Jeu 15/Fév/2018 0:03 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 14/Oct/2004 19:48
Messages: 1121
Ces voitures apprennent à conduire sur le circuit. Elles ont des télémtres laser (en quelque sorte) et chacune un reseau de neuron artificiel (2-3 couches selon comme on les compte)
L'algo génétique fonctionne bof, l'évaluation des voitures se base sur le temps pendant lequel elles restent sur la piste. Je les reproduit en moyennant les poids des synapse, pas sûr que ce soit très pertinent.

Quoiqu'il en soit, au bout de quelques dizaines de générations, une voiture devrait effectuer un tour complet.

On peut changer le nombre de laser (ça change le nombre de neurone aussi), la distance de détection et le taux de mutation avec les constantes.

La librairie élémentaire encore, permet de créer facilement des réseaux. Je vais m'atteler à rajouter la rétropropagation de gradiant pour l'apprentissage, maintenant.
A la fin de la dll, en commentaire un petit programme pour visualiser le réseau.


Code sur le forum anglais :
http://www.purebasic.fr/english/viewtop ... 16&t=70209

Edit: modification de l'algo génétique de sélection.
Edit2: ajout du bias aux neurones.

_________________
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 5.45LTS - 32 bits


Dernière édition par Fig le Lun 19/Fév/2018 0:27, édité 8 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Réseau de neurones artificiel basic: voiture sur un circ
MessagePosté: Jeu 15/Fév/2018 20:11 
Hors ligne

Inscription: Mer 21/Jan/2004 17:48
Messages: 5162
Je n'ai pas encore testé, mais c'est le genre de projet qui m'intéresse. Merci pour le partage, dès que je trouve du temps je me plonge dans le code.

_________________
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Réseau de neurones artificiel basic: voiture sur un circ
MessagePosté: Jeu 15/Fév/2018 22:31 
Hors ligne

Inscription: Mer 21/Jan/2004 17:48
Messages: 5162
ça commence bien , comment tu passes d'une dll à une lib ?

Dans un premier temps tu demandes de créer une dll à partir du premier code source
Save as Dll "NeuralNetLib"

Dans le second code source tu ouvres une lib ?
Import "NeuroNetLib.lib"

J'ai loupé un truc ?

[EDIT]

ok j'ai trouvé, il faut sauver sous le nom 'NeuroNetLib' et pas 'NeuralNetLib'

Je laisse le message pour les benêts comme moi qui appliquent scrupuleusement les instructions sans réfléchir

(la lib est créée en même temps que la dll)

Et maintenant ça marche !! à la 17e génération , pas mal , faut que j'analyse ça maintenant.

_________________
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Réseau de neurones artificiel basic: voiture sur un circ
MessagePosté: Ven 16/Fév/2018 17:51 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 14/Oct/2004 19:48
Messages: 1121
Bonjour Comtois,
J'ai corrigé le nom de la lib, j'ai inversé anglais et français.
17 genérations, tu as eu de la chance. L'algo génétique d'évolution et la fonction de fitness ne sont vraiment pas adaptés. Je vois des améliorations à faire, mais ce n'est pas le plus important dans l'immédiat (pas plus que les lourdeurs et les choses redondantes et inutiles qui sont dans le code des voitures) la retropropagation de gradient est le plus urgent. (à tester sur l'approximation d'une fonction XOR puis une reconnaissance de caractères manuscrites)

Ce n'est pas un code très didactique au sens où la mémoire n'est pas structurée clairement pour faciliter la lecture. Néanmoins, ce n'est guère complexe à suivre.

Ultimement, il faudrait traiter le réseau comme des matrices et utiliser un shader et opengl afin d'accélérer grandement le traitement d'un nombre faramineux de neurones. Pb nous permet d'écrire des shaders, nous verrons ...

_________________
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 5.45LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Réseau de neurones artificiel basic: voiture sur un circ
MessagePosté: Dim 08/Avr/2018 17:01 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 31/Juil/2004 22:32
Messages: 1140
Oh. Je suis intéressé. Très très TRES intéressé.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Réseau de neurones artificiel basic: voiture sur un circ
MessagePosté: Lun 09/Avr/2018 16:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 14/Oct/2004 19:48
Messages: 1121
Dans le sujet sur retropropagation de gradian XOR,AND,OR. Il y a la dernière version de la librairie. viewtopic.php?f=2&t=17169

Je suis actuellement bloqué sur les réseaux de convolution car je ne sais pas propager à l'envers à travers cette @$^¨!§ de couche de convolution. Dès que j'ai trouvé la solution, on s'attaque (vraiment) à la reconnaissance d'images.
Actuellement avec un réseau FC (full connected) et apprentissage supervisé, je n'obtiens que des résultats médiocres sur la reconnaissance de chiffres manuscrits (75% sur MNIST https://en.wikipedia.org/wiki/MNIST_database ).

_________________
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 5.45LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Réseau de neurones artificiel basic: voiture sur un circ
MessagePosté: Lun 09/Avr/2018 17:38 
Hors ligne

Inscription: Ven 29/Juin/2007 17:50
Messages: 3461
Bonjour Fig,

si tu n'avais pas jeté un oeil sur ce partage de MiLoo, je te le recommande.

MiLoo a intégré la notion d'échelonnement au sein de chaque neurone.

http://www.purebasic.fr/english/viewtopic.php?f=13&t=68406

_________________
Juste la 4G pour Smartphone


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye