2010-11-13 3 views
0

Je dois implémenter un perceptron monocouche en utilisant Matlab. Le problème auquel je suis confronté est que quand j'ai couru mon programme il m'a donné la sortie pour chaque entrée (il montre des résultats 4 fois), mais je veux revenir au premier index de la matrice, après quand il a atteint le quatrième, et je ne peux pas savoir comment je retourne au premier indice de la matrice.comment revenir au premier index des matrices

Je veux former mon programme afin qu'il produise le même résultat que dans b en itérant la matrice dans chaque boucle.

Ceci est mon code actuel:

a = [ 1 1 
     1 -1 
    -1 1 
    -1 -1 ]; 
b = [1 
    -1 
    -1 
    -1]; 
disp(a); 
disp(b); 
x = a(:,1); 
disp(x); 
y = a(:,2); 
disp(y) 
learningrate = 0.1; 
maxiteration = 10; 
weight(1)=0.1; 
weight(2)=0.1; 
weight(3)=0.1; 
count = length(x); 
for p = 1:count 
    s = (x(p) * weight(1))+ (y(p) * weight(2))+ weight(3); 
    if s >= 0 
     result = 1; 
     if result ~= b(p) 
      weight(1) = weight(1)+learningrate*(b(p)-result)*x(p); 
      weight(2) = weight(2)+learningrate*(b(p)-result)*y(p); 
      weight(3) = weight(3)+learningrate*(b(p)-result); 
      disp(result); 
      disp(x(p)); 
      disp(y(p)); 
      disp(weight(1)); 
      disp(weight(2)); 
      disp(weight(3)); 
     end 
    else 
     if s <= 0 
      result = -1; 
      disp(result); 
      if result ~= b(p) 
       weight(1)=weight(1)+learningrate*(b(p)-result)*x(p); 
       weight(2)=weight(2)+learningrate*(b(p)-result)*y(p); 
       weight(3)=weight(3)+learningrate*(b(p)-result); 
       disp(x(p)); 
       disp(y(p)); 
       disp(weight(1)); 
       disp(weight(2)); 
       disp(weight(3)); 
      end   
     end 
    end 
end 
+1

Jetez un coup d'œil à http://stackoverflow.com/questions/3455660/matlab-single-layer-neural-network – zellus

Répondre

1

@Amro a posté un answer élaboré sur la mise en œuvre d'une seule couche perceptron avec Matlab. Son article n'est pas seulement utile pour «obtenir du code», mais aussi pour résoudre un problème technique. Il commence par une représentation graphique du perceptron montrant le flux du signal, la description du problème. Et continue avec d'excellents commentaires dans le code, dans le cadre de la solution. Le simple remplacement des variables a et b dans votre code par des noms significatifs pourrait faire une grande différence.

Questions connexes