mon master2 ISIFAR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
mon master2 ISIFAR

ISIFAR
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 Devoir à rendre le 15 janvier 2006

Aller en bas 
AuteurMessage
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Devoir à rendre le 15 janvier 2006 Empty
MessageSujet: Devoir à rendre le 15 janvier 2006   Devoir à rendre le 15 janvier 2006 Icon_minitimeSam 5 Nov à 17:40

Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Devoir à rendre le 15 janvier 2006 Empty
MessageSujet: Re: Devoir à rendre le 15 janvier 2006   Devoir à rendre le 15 janvier 2006 Icon_minitimeJeu 8 Déc à 12:55

Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Devoir à rendre le 15 janvier 2006 Empty
MessageSujet: Re: Devoir à rendre le 15 janvier 2006   Devoir à rendre le 15 janvier 2006 Icon_minitimeMer 21 Déc à 14:28



Dernière édition par le Mar 17 Jan à 21:58, édité 3 fois
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Devoir à rendre le 15 janvier 2006 Empty
MessageSujet: Re: Devoir à rendre le 15 janvier 2006   Devoir à rendre le 15 janvier 2006 Icon_minitimeMar 10 Jan à 13:00



Dernière édition par le Mar 17 Jan à 17:55, édité 9 fois
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Devoir à rendre le 15 janvier 2006 Empty
MessageSujet: Re: Devoir à rendre le 15 janvier 2006   Devoir à rendre le 15 janvier 2006 Icon_minitimeMar 10 Jan à 14:04

#Generation de la fonction f(x) avec affichage

k=(-100:100);
x=k/100;

fx=0.5*sin(pi*x);

plot(x,fx,pch=19, col='cyan')


####################################################
####################################################
#initialisation
w=matrix(runif(4,-1,1),2,2); #matrice de poids
w0=w; #sauvegarde des conditions initiales (poids)
tmax=20; #nb d'iterations de l'algorithme d'apprentissage:tmax*N
alpha=0.1; #gain d'apprentissage
#tracew=matrix(rep(0,N*tmax*p),N*tmax,p); #tracabilite de l'evolution des poids


##fonction de transfert couche cachée a valeurs sur [0,1]
phi=function(x) (1+tanh(x))/2;
##derivee de la fonction de transfert couche cachée
phi_prime=function(x) (1-tanh(x)^2)

# X : base d'entree
# Y : base de sortie
# n1 : nb de neurones couche cachee
# num_reseau : numero d'identification du reseau
init_algo=function(X,Y,n1,num_reseau)
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Devoir à rendre le 15 janvier 2006 Empty
MessageSujet: Re: Devoir à rendre le 15 janvier 2006   Devoir à rendre le 15 janvier 2006 Icon_minitimeJeu 12 Jan à 21:04

0.7*cos (3*pi*x/2+pi/6)
0.5*sin(pi*x)

Code:
rm(list=ls())
########################################################################
############Initialisation##########
########################################################################
# Base d'apprentissage
# n cellules en entree et sortie, m cellules intermediaires
k=-100:100;
x=k/100;
fx=0.5*sin(pi*x);
#fx=0.7*cos (3*pi*x/2+pi/6);
#fx=abs(x)-0.5;
n=length(k);
m=2;
alpha=0.9; #parametre d'apprentissage
seuil=0.01;#on peut prendre un seuil tres petit
erreur=100


#initialisation aleatoire des poids reliant a la couche intermediaire
wEI=matrix(runif(m*n,-1,1),n,m);
wIS=matrix(runif(m*n,-1,1),m,n);

#initialisation des activités (aS et aI), des potentiels (vS et vI)
#des cellules intermediaires et de sortie (sous forme de vecteurs)
aI=rep(0,m);
vI=rep(0,m);
aS=rep(0,n);
vS=rep(0,n);

#initialisation des variables utiles pour la modification des poids
#lors de la rétropopagation (les "deltas")
deltawS=matrix(rep(0,m*n),n,m);
deltawI=matrix(rep(0,m*n),n,m);
deltaS=matrix(rep(0,n),n,1);
deltaI=matrix(rep(0,m),m,1);


# fonction sigmoide on prend ici une pas forcement positive
phi<-function(y){ y<-tanh(y); }

#dérivée de la fonction sigmoide
dphi<-function(y){ y <- 1-tanh(y)^2; }



########################################################################
#######Algorithme d'apprentissage#######
########################################################################
while (erreur>seuil){
 #les potentiels intermédiaires
 for (i in 1:m){
  vI[i]=sum(wEI[,i]*x);
 };

 #les activites intermédiaires
 for (i in 1:m){
  aI[i]=phi(vI[i]);
 }

 #les potentiels de sortie
 for (i in 1:n){
  vS[i]=sum(wIS[,i]*aI);
 };

 #les activites de sortie (correspond "aux y")
 for(i in 1:n){
  aS[i]=phi(vS[i]);
 };


 #calcul de l'erreur residuelle
 erreur=0.5*sum((fx-aS)^2);


 #calcul du terme de gradient d'erreur sur la derniere couche
 for(i in 1:n){
  deltaS[i]=dphi(vS[i])*(aS[i]-fx[i]);
 };

 #retropropagation de ce terme de gradient sur la couche intermediaire
 for(i in 1:m){
  deltaI[i]=dphi(vI[i])*sum(wIS[i,]*deltaS);
 };

 #mise a jour des poids du reseau
 wIS=wIS-alpha*t(deltaS%*%aI);
 wEI=wEI-alpha*t(deltaI%*%t(x));
};



########################################################################
#######Representation de la retropropagation#######
########################################################################
plot(x,fx,xlim=c(-1,1),ylim=c(-0.8,0.8), ylab="f(x)", type="l", col='red',lwd=3,
    main="Simulation de f(x)=0.7 cos (3*pi x/2 + pi/6)
      par l'algorithme de retro-propagation");    
points(x,aS,col='black');
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Contenu sponsorisé





Devoir à rendre le 15 janvier 2006 Empty
MessageSujet: Re: Devoir à rendre le 15 janvier 2006   Devoir à rendre le 15 janvier 2006 Icon_minitime

Revenir en haut Aller en bas
 
Devoir à rendre le 15 janvier 2006
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
mon master2 ISIFAR :: 1er semestre :: Data Mining : Apprentissage-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser