Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MACHINE LEARNING] Réseau de neurones artificiels

    5 mars 2018 à 18:36:53

    Bonsoir :) 

    J'ai un exercice de réseau de neurones à faire et je suis bloqué depuis plusieurs jours. Je me suis inspiré du cours de Coursera.

    Dans cet exemple, mon input layer a deux entrées, 5 neurones cachés et 2 sorties possibles (0 ou 1).

    Voici le code que j'ai sous octave:

    function [E, v,w] = costFunction(X, y,alpha1,alpha2)
    
    
    [m n] = size(X);
    
    E = 1;
    
    
    v = 2*rand(5,3)-1;
    w = 2*rand(2,6)-1;
    
    grad_v=zeros(size(v));
    grad_w=zeros(size(w));
    
    K = 2;
    
    E = 2;
    
    while E> 1
    		a1 = [ones(m,1) X];
    		z2 = a1 * v';
    		a2 = sigmoid(z2);
    		a2 = [ones(size(a2,1),1),a2];
    		z3 = a2 * w';
    		h = sigmoid(z3);
    
    		cost = sum((-y.*log(h)) - ((1-y).*log(1-h)),2);
    		E = (1/m)*sum(cost);
    
    		Delta1=0;
    		Delta2=0;
    
    		for t = 1:m
    			a1 = [1;X(t,:)'];
    			z2 = v * a1;
    			a2 = sigmoid(z2);
    			a2 = [1;a2];
    			z3 = w * a2;
    			a3 = sigmoid(z3);
    
    			d3 = a3 -  y(t,:)';
    
    			d2 = (w(:,2:end)'*d3).*sigmoidGradient(z2);
    
    			Delta2 += (d3*a2');
    			Delta1 += (d2*a1');
    		end
    
    		grad_v = (1/m) * Delta1;
    		grad_w = (1/m) * Delta2;
    		
    		v -= alpha1 * grad_v;
    		w -= alpha2 * grad_w;
    	end
    end

    Je ne suis pas sensé faire le while (E>1) mais j'ai juste voulu voir si au bout d'un certain temps l'erreur diminuait..

    Je précise que X est un vecteur de taille 51x2 et y 51x1

    J'ai pas mal cherché sur internet, je cherche donc une solution concrète à mon problème :) 

    Merci à vous

    -
    Edité par Keith78 5 mars 2018 à 22:33:19

    • Partager sur Facebook
    • Partager sur Twitter
      6 mars 2018 à 15:22:55

      Coucou!
      Peut-être que j'ai rien suivi, mais ... c'est quoi ton problème? :/
      • Partager sur Facebook
      • Partager sur Twitter

      « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »

        6 mars 2018 à 16:47:22

        Et bien mon code ne me donne tout simplement pas de résultat cohérent, si j'essaye de prédire y je ne tombe pas sur les bonnes valeurs ce qui est embêtant.. Je pense que le problème vient uniquement de mon implémentation du premier message, peut-être y vois-tu une coquille ?

        Je n'ai pas fait la régularisation mais cela est sensé marcher sans.

        Merci !

        • Partager sur Facebook
        • Partager sur Twitter

        [MACHINE LEARNING] Réseau de neurones artificiels

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown