[C++] réseau de neurone hopfield
Résolu
soumia
-
nnouhasabri Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
nnouhasabri Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
bonjour
je veux savoir comment programmer les reseau de neuone avec langage c++(le reseau de neurone de hopfield) s'il vous plait
merci saut
je veux savoir comment programmer les reseau de neuone avec langage c++(le reseau de neurone de hopfield) s'il vous plait
merci saut
A voir également:
- [C++] réseau de neurone hopfield
- Mot de passe reseau - Guide
- Opérateur de réseau mobile - Guide
- Le message n'a pas été envoyé car le service n'est pas activé sur le réseau - Forum Xiaomi
- Messenger en attente de réseau ✓ - Forum Facebook
- Partage reseau - Guide
16 réponses
Salut moi y'a na pas savoir parler et moi ya na toujours pas envie de bosser alors moi toujours exiger des autres des réponses toutes faites...
Non mais je rêve!...
Non mais je rêve!...
Helas, pour les documents, ca va etre chaud : je suis a l'etranger, et j'ai pas d'acces internet chez moi... Aucun moyen de te refiler les docs, donc.
De toutes facons, l'aide de Matlab fait partie de Matlab, donc ce serait illegal ;)
Explication pour l'approche matricielle
ATTENTION, ca ne marche qu'avec les reseaux a couches !!!
(en +, c'est de memoire -> risques d'erreurs)
La premiere "couche" recoit les valeurs d'entree, considerees comme un vecteur V de taille Nv.
Qd tu veux passer a la premiere couche utile (cachee ou de sortie), C1 de taille N1, tu vas considerer une matrice des poids P1 (N1 lignes, Nv colonnes), et tu auras P1*V + B1 = C1 (/!\ a l'ordre !) ou B1 est un vecteur de taille N1, qui correspond au "biais" (terme additif qui permet de trouver des resultats coherents)
Les valeurs trouvees sont justes les valeurs d'entree de la couche, il faut ensuite les faire passer par une fonction de transfert (identite ou une sigmoide) => vecteur C1' et tu recommence pour la couche suivante...
Je crois que j'ai pas ete tres clair...
Pour l'apprentissage de base, je me souviens plus tres bien, donc je prefere ne pas te dire de betises (et j'ai pas trop le temps de rechercher aujourd'hui...)
J'espere que ca t'aidera a demarrer !
De toutes facons, l'aide de Matlab fait partie de Matlab, donc ce serait illegal ;)
Explication pour l'approche matricielle
ATTENTION, ca ne marche qu'avec les reseaux a couches !!!
(en +, c'est de memoire -> risques d'erreurs)
La premiere "couche" recoit les valeurs d'entree, considerees comme un vecteur V de taille Nv.
Qd tu veux passer a la premiere couche utile (cachee ou de sortie), C1 de taille N1, tu vas considerer une matrice des poids P1 (N1 lignes, Nv colonnes), et tu auras P1*V + B1 = C1 (/!\ a l'ordre !) ou B1 est un vecteur de taille N1, qui correspond au "biais" (terme additif qui permet de trouver des resultats coherents)
Les valeurs trouvees sont justes les valeurs d'entree de la couche, il faut ensuite les faire passer par une fonction de transfert (identite ou une sigmoide) => vecteur C1' et tu recommence pour la couche suivante...
Je crois que j'ai pas ete tres clair...
Pour l'apprentissage de base, je me souviens plus tres bien, donc je prefere ne pas te dire de betises (et j'ai pas trop le temps de rechercher aujourd'hui...)
J'espere que ca t'aidera a demarrer !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Modéliste une neurone en objet d'après les règles de Hopfield,
faire une classe qui se charge de gérer les couches,
puis faire un programme qui va instancier plusieurs couches et lier les neurones entres elles.
C'est du génie logiciel de base.
Ta spec, c'est le modèle de hopfield.
A toi de réaliser...
faire une classe qui se charge de gérer les couches,
puis faire un programme qui va instancier plusieurs couches et lier les neurones entres elles.
C'est du génie logiciel de base.
Ta spec, c'est le modèle de hopfield.
A toi de réaliser...
Par contre, apres, il va falloir te taper tous les algos d'apprentissages (peut-etre qu'il y en a des simples, mais bon...)
Parce qu'un reseau de neurones qui n'apprend rien, c'est joli, mais limite...
d'ou mon conseil, si c'est juste pour UTILISER un reseau de neurones et si tu en as les moyens, y'a une boite a outils pas trop mal faite sous Matlab (par contre, la documentation est horrible !).
Parce qu'un reseau de neurones qui n'apprend rien, c'est joli, mais limite...
d'ou mon conseil, si c'est juste pour UTILISER un reseau de neurones et si tu en as les moyens, y'a une boite a outils pas trop mal faite sous Matlab (par contre, la documentation est horrible !).
Exact.
Il va également falloir faire apprendre le réseau.
Il te faudra donc construire des jeu d'apprentissage (avec tous les inputs + les sorties attendues).
Développer la back-propagation est assez pénible.
Si ton but n'est pas de développer toi-même des classes de réseaux de neurones mais de les utiliser, je te conseille d'utiliser des classes toutes prêtes.
La NASA a publié une bibliothèque sur les réseaux de neurones, gratuite et avec codes sources.
ça devrait largement te simplifier la tâche.
Il va également falloir faire apprendre le réseau.
Il te faudra donc construire des jeu d'apprentissage (avec tous les inputs + les sorties attendues).
Développer la back-propagation est assez pénible.
Si ton but n'est pas de développer toi-même des classes de réseaux de neurones mais de les utiliser, je te conseille d'utiliser des classes toutes prêtes.
La NASA a publié une bibliothèque sur les réseaux de neurones, gratuite et avec codes sources.
ça devrait largement te simplifier la tâche.
bon, j'ai developpé une librairie de reseaux de neurones en C++, mais je n'ai pas implementé les reseaux de hopfield (je n'ai implémenté pour le moment que le perceptron avec retropropagation avec momentum), par contre l'architecture est deja faite et il suffit juste d'implementer une classe abstraite, j'attends la fin de mes exams pour le peaufiner un peu plus et implémenter d'autres algos.
merci monsieur ,est ce que tu peux m'aider avec le peu que tu a fait avec le c++ "programmation du reseau de hopfield" merci
Ce que j'avais fait, c'était à l'université il y a un bout de temps, et on avait tout développé nous même (argleu).
Je ne crois pas avoir conservé les sources, désolé !
Je pense que tu trouvera des sources en Googlant.
Je ne crois pas avoir conservé les sources, désolé !
Je pense que tu trouvera des sources en Googlant.
Bonjour
Ta question est beaucoup trop génerale. Un réseau de Hopfied, c'est des unités reliées entre elles : les neurones. Don une approche naive est de creer des classes Neurones, Liens. Que mettre dedans comme code ? Ben ca dépend de ce que tu veut faire ton réseau. Tu veut analyser du son, de l'image ? J'ai travaillé avec tafiscobar sur le projet de réseau de neurone, il est spécialisé pour faire du traitement d'image. Et ce n'est pas un réseau de Hopfield mais un Perceptron.
Ta question est beaucoup trop génerale. Un réseau de Hopfied, c'est des unités reliées entre elles : les neurones. Don une approche naive est de creer des classes Neurones, Liens. Que mettre dedans comme code ? Ben ca dépend de ce que tu veut faire ton réseau. Tu veut analyser du son, de l'image ? J'ai travaillé avec tafiscobar sur le projet de réseau de neurone, il est spécialisé pour faire du traitement d'image. Et ce n'est pas un réseau de Hopfield mais un Perceptron.
Une autre idee, toujours en m'inspirant de Matlab :
Pour eux, un reseau de Hopfield n'est ni plus ni moins que du calcul matriciel : une succession d'additions et de multiplications de matrices, avec un calcul supplementaire pour chaque couche : le passage par la fonction de transfert.
Meme si tu dois coder ton propre reseau, tu peux toujours t'inspirer de cette approche...
N'hesite pas a demander + de renseignements...
Pour eux, un reseau de Hopfield n'est ni plus ni moins que du calcul matriciel : une succession d'additions et de multiplications de matrices, avec un calcul supplementaire pour chaque couche : le passage par la fonction de transfert.
Meme si tu dois coder ton propre reseau, tu peux toujours t'inspirer de cette approche...
N'hesite pas a demander + de renseignements...
salut monsieur merci beaucoup pour l'aide je travaile sur le reseau de hopfield ,j'ai besoin du documentation ,je vais utiliser ce reseau pour la classification des chromosomes humains c'est pour cette reseau je cherche à programmer ce reseau avec c++ merci
salut,monsieur javainaise,j'ai envoyé l'algorithme de hopfield comme vous avez demandé ,mais j'ai pas eu de répones jusqu'à maintenant merci