RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Aide: rétropropagation du gradient

Forum : INTELLIGENCE ARTIFICIELLE ( IA ) - ALGO GÉNÉ.
Sous Catégorie : Algo géné.
Type du sujet : Sujet Normale
FAQ : FAQ INTELLIGENCE ARTIFICIELLE ( IA ) - ALGO GÉNÉ.

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM INTELLIGENCE ARTIFICIELLE ( IA ) - ALGO GÉNÉ.

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
sunmat
Membre MP
Avatar de sunmat
Inscrit : 17/05/2005
Messages : 201
Message
#93939
Posté le 16/04/06 à 13:45
Bonjour à tous,
je cherche en ce moment à créer un template de réseau de neurone, mais je ne parviens pas à programmer la fonction d'apprentissage du perceptron.
Est-ce que quelqu'un pourrais me donner le principe de cet apprentissage (rétropropagation du gradient) ?

A titre d'info, voici mon programme actuel (en ruby) :


#===================================================== # initialisation des constantes : #===================================================== STEPS = 0 #renvoie uniquement 1 ou 0 SIGMOIDE = 1 #renvoie des valeurs réelles entre 0 et 1 TANHYP = 2 #renvoie des valeurs réelles entre -1 et 1 GAUSS =3 #renvoie des valeurs réelles entre 0 et 1 #====================================================== # déclaration d'un neurone #====================================================== class Neurone attr_accessor :weight #tableau des poids dendritiques attr_accessor :entry #tableau des entrées dentritiques attr_accessor :out #sauvegarde de la sortie sur l'axone attr_accessor :type #type de fonction seuil à utiliser #nbe est le nombre d'entrées (de dendrites) du neurone #le type de seuillage à effectuer (STEPS, SIGMOIDE, TANHYP, GAUSS) def initialize(nbe,type = STEPS) @type = type @weight = Array.new(nbe,1) end #fonction de seuillage de la sortie #x constitue la somme des entrées pondérées de leur poids respectif def seuil(x) case @type when STEPS if @type < 0 return 0 else return 1 end when SIGMOIDE return (1/(1 + Math::exp(-x))) when TANHYP return (2 / (1 + Math::exp(-x)) - 1) when GAUSS return (Math::exp(-(x**2))) end end #calcule de la sortie def exit(entry) @entry = entry wx = 0 for i in 0...@weight.size wx += @entry[i]*@weight[i] end @out = seuil(wx) #la variable @out permet de garder une trace de la dernière sortie du neurone return @out end end #====================================================== # déclaration d'une couche #====================================================== class Layer attr_accessor :entry #entrée de la couche attr_accessor :neurone #tableau des neurones de la couche attr_accessor :type #type de traitement des neurones de la couche attr_accessor :out #tableau de sauvegarde de la dernière sortie de la couche #initialisation de la couche #nbn est le nombre de neurones, nbe est le nombre d'entrées, et type le type de seuillage des neurones def initialize(nbn,nbe,type = STEPS) @neurone = Array.new(nbn, Neurone.new(nbe, type)) @type = type end #fonction de calcule de la sortie de la couche def exit(entry) @out = Array.new(@neurone.size) @entry = entry for i in 0...@neurone.size @out[i] = @neurone[i].exit(@entry) end return @out end end #==================================================== # déclaration d'un perceptron multi-couche #==================================================== class Perceptron attr_accessor :entry #entrée du perceptron attr_accessor :layer #tableau des couches du perceptron attr_accessor :out #sortie du perceptron #initialisation du perceptron #structure est la structure interne en couches et neurones du perceptron #exemple : [4,2,1] est un perceptron à trois couches de respectivement 4, 2 et 1 neurone #soe est le nombre de dendrites par neurones en première couche (soe = size of entry) def initialize(soe, structure,type = STEPS) @layer = Array.new(structure.size) @layer[0] = Layer.new(structure[0],soe,type) for i in 1...structure.size @layer[i] = Layer.new(structure[i],structure[i-1],type) end end #fonction de calcule de la sortie du perceptron def exit(entry) @entry = entry e = entry for i in 0...@layer.size e = @layer[i].exit(e) end @out = e return @out end end


En esperant une réponse,
@+
__________________________
Gné !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

thedub2001
Nouveau membre
Inscrit : 07/05/2006
Messages : 3
Message
#96089
Posté le 07/05/06 à 14:24
je prefererai un dessin pour comprendre ton prog... :(): Smiley Smiley

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 


    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.