Rechercher : dans
Par :

[C++] réseau de neurone hopfield

Dernière réponse le 28 aoû 2009 à 16:30:32 soumia, le 24 mai 2004 à 09:55:46 
 Signaler ce message aux modérateurs

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

1

sebsauvage, le 24 mai 2004 à 12:53:24

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...

Répondre à sebsauvage

2

Franky*, le 24 mai 2004 à 17:05:40

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 !).

Répondre à Franky*

3

sebsauvage, le 24 mai 2004 à 17:17:44

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.

Répondre à sebsauvage

4

tafiscobar, le 24 mai 2004 à 20:35:10

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.

Répondre à tafiscobar

16

desa.itm, le 6 mai 2008 à 10:58:50

Bonjour,
Pouvez - vous m'aider à mettre en ouvre une bibliothèque de réseau de neurones en C++, j'ai besoin de cette bibliothèque pour mon projet de desa.

Merci par avance

Répondre à desa.itm

5

soumia, le 24 mai 2004 à 23:17:48

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

Répondre à soumia

6

sebsauvage, le 25 mai 2004 à 09:36:08

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.

Répondre à sebsauvage

7

Alex SwartzKaiser, le 27 mai 2004 à 11:24:46

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.

Répondre à Alex SwartzKaiser

8

Franky*, le 27 mai 2004 à 12:16:06

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...

Répondre à Franky*

11

bellouti, le 5 jun 2004 à 12:21:16

Mr;
aprés avoir vu votre commentaire sur les reseau de neurones et leur application en matlab
j'aimerai bien savoir comment faire la procédure d'apperentissage et si c'est possible m'envoyer des programmes déja fait
je te remerci a l'avance
merci

Répondre à bellouti

13

Franky*, le 7 jun 2004 à 09:14:36

Salut,

Alors pour la procedure d'apprentissage, je vais regarder ca chez moi (ce soir si je peux, mais je ne te promets rien...), par contre, les "programmes dejas faits" font partie de matlab, donc je ne peux pas y acceder...

Il faudra te debrouiller avec des explications formelles...

A+

Répondre à Franky*

15

Franky*, le 10 jun 2004 à 13:00:24

Apres verification, l'aide parle beaucoup moins des algorithmes d'apprentissage que dans mon souvenir (ou alors j'ai pas retrouve la bonne page).

Le mieux serait que tu trouves un bouquin avec des algos precis, quitte a les modifier apres... Ca doit surement exister !

Répondre à Franky*

9

noura, le 27 mai 2004 à 18:56:47

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

Répondre à noura

10

Franky*, le 28 mai 2004 à 09:20:24
  • +1

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 !

Répondre à Franky*

12

noura, le 6 jun 2004 à 12:04:48

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

Répondre à noura

14

soumia, le 10 jun 2004 à 12:42:20

Salut programmation du reseau de hopfield avec c++ builder

Répondre à soumia

17

Bsophi, le 17 mai 2008 à 10:58:22

BOUNJOUR
j'ai besoin d'un aide pour programer un reseau de neurons à couche, mais je veux des programmes en c++ builder

Répondre à Bsophi

18

Bsophi, le 17 mai 2008 à 11:09:52

Bonjour
donnée moi les programme des réseau de neurones en c++ le plus vite possible .merci

Répondre à Bsophi

19

 bilede, le 28 aoû 2009 à 16:30:32
  • +4

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!...

Répondre à bilede