Ia:rn:vbperceptron : le code le + simple possible en vb6 & vb .net

Soyez le premier à donner votre avis sur cette source.

Vue 20 338 fois - Téléchargée 2 961 fois

Description

Versions 0.20 (VB6) et 0.53 (VB .Net) du 04/06/2005

Introduction : Le Perceptron multicouche
Un réseau de neurones (RN) du type Perceptron multicouche (MultiLayerPerceptron) est capable d'apprendre à peu près n'importe quoi : une porte logique XOR, une fonction sinus, les lettres de l'alphabet (OCR), les taches solaires, les résultats du loto, le CAC40...

Ce logiciel est, à l'origine (version 0.1), la traduction en Visual Basic du logiciel mlp en C++ de Sylvain BARTHELEMY : www.sylbarth.com

C'est un "apprentisseur" universel : il est capable d'apprendre une fonction de transfert entre un signal d'entrée et un signal de sortie de façon entièrement automatique grâce à la technique de la rétropropagation, cf. l'introduction au RN suivante : www.isib.be/Etudiant/eln3/intro.htm

Le réseau de neurones peut apprendre puis reconnaître des signaux très variés et prédire tout ce qui est plus ou moins cyclique !

A force d'améliorer le Perceptron, le code s'est étoffé, mais obscurcis. Pour que la programmation du Perceptron soit réutilisable facilement, j'ai entièrement repris l'essentiel des fonctionnalités de base, et enlevé le reste. J'ai fait aussi une version en VB .Net (finalement, 95% du code est automatiquement bien migré et directement fonctionnel, y compris le code de l'interface de l'application, pas mal !). Par ailleurs, ce code contient une implémentation successive de 5 fonctions d'activation différentes, ce qui est assez rare à trouver sur le web selon mes recherches. Pour cela, j'ai du démêler ce qui relevait de l'optimisation de l'implémentation, de l'algorithme générale du Perceptron, ce qui n'est pas forcément trivial (voir les remarques sur la dérivée de la fonction d'activation dans le code source).

La reprise de l'implémentation de la fenêtre glissante sera la prochaine étape, sinon le Perceptron ne sert pas à grand chose en fait !

voir aussi mon RN autoconfigurant :
Configuration d'un réseau de neurones avec un méta-réseau de neurones :
http://patrice.dargenton.free.fr/ia/ialab/rnautoconfigurant.html

patrice.dargenton@free.fr
http://patrice.dargenton.free.fr/ia/ialab/perceptron.html
http://patrice.dargenton.free.fr/index.html

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Oops un petit bug de découvert dans la version dotnet !
Il faut mettre : sFormater = rReel.ToString(sFormat)
Au lieu de : sFormater = String.Format(sFormat, rReel)
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Note sur VB6.CopyArray : j'avais même pas vu qu'il existait un Array.Clone(), on en découvre tous les jours :-)
Il faudrait mettre à jour l'assistant migration de code VB6 pour signaler que l'on peut convertir facilement un CopyArray en Clone, au moins en commentaire.
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Contrairement à ce que j'avais indiqué, c'est le SDK qui n'est disponible que pour Windows NT/XP, le runtime .NET lui est disponible pour Windows 9x :
Microsoft .NET Framework Redistribuables en français :
http://download.microsoft.com/download/NETFrameworkRedistributable/Install/1.0/W982KMexp/FR/dotnetredist.exe
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

Pourquoi VB6.XXX (par exemple VB6.GetPath) ne marche pas ?

Voilà comment il faut procéder :

1°) Ajoutez la référence à la solution (au projet) :
Microsoft.VisualBasic.Compatibility
Pour cela, recherchez "Microsoft Visual Basic .NET Compatibility Runtime" dans la liste des Component Name de type .NET

2°) Ajouter la ligne d'import :
Imports VB6 = Microsoft.VisualBasic.Compatibility.VB6
au tout début du programme : après "Option Explicit On" et avant le Namespace et le Public Class
(je ne comprend pas pourquoi parfois il n'y a pas besoin de cette ligne et parfois si ???)

Note : à terme, il vaut mieux se passer de cette interface de compatibilté avec VB6, je prépare une nouvelle version de mes logiciels .NET en pure .NET
Alan71
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004

arff, elles sont toutes de toi (mé je voyé bien double :) )

ya un truk ke G pas compris (G pris mé infos ;) ), C koi la fonction d'activation, ca représente koi ?

Et une otre kestion (j'oré du fer un msg), ca fé +sieurs jours ke je cherche, tu pouuré me fer le schéma d'un Not ? (C possible ?) Stp

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.