suplabel - matlab subplot title



Erklärung des neuronalen Netzwerkcodes (1)

Trainingsdaten sind [0 0; 0 1; 1 0; 1 1] in der anderen Ansicht ist jede Reihe ein Satz von Trainingsdaten wie folgt

    >> input

input =

 0     0
 0     1
 1     0
 1     1

und Ziel ist

   desired_out =

 0
 1
 1
 1

bitte denke an sure_out das sind deine etiketten .. jede reihe in trainingsdaten ( eingabe ) hat einen spezifischen ausgang (label) im binärsatz {0,1} (weil dieses beispiel für die implementierung der OR logic circuit.

In Matlab können Sie zum weiteren Verständnis wie folgt verwenden oder funktionieren:

    >> or(0,0)

    ans =

        0

    >> or(1,0)

    ans =

        1

    >> or(0,1)

   ans =

       1

   >> or(1,1)

   ans =

       1

Beachten Sie, dass Ihr Code keinen Trainingstest hat und dieser Code nur versucht, Gewichte und andere Parameter von perceptron zu erhalten, aber Sie können Ihrem Code nur durch ein kleines Programm einen Trainingstest hinzufügen

    NumDataTest  =  10 ;
    test=randi( [0 , 1] , [ NumDataTest , 2]) ...
       +(2*rand(NumDataTest,2)-1)/20;

Daher werden die Testdaten wie folgt aussehen

     test =

    1.0048    1.0197
    0.0417    0.9864
   -0.0180    1.0358
    1.0052    1.0168
    1.0463    0.9881
    0.9787    0.0367
    0.9624   -0.0239
    0.0065    0.0404
    1.0085   -0.0109
   -0.0264    0.0429

Zum Testen dieser Daten können Sie Ihr eigenes Programm mit folgendem Code verwenden:

    for i=1:NumDataTest
        y = bias*weights(1,1)+test(i,1)*weights(2,1)+test(i,2)*weights(3,1);
        out(i) = 1/(1+exp(-y));
    end

und schlussendlich:

     table(test(:,1),test(:,2),out,'VariableNames',{'input1' 'input2' 'output'})

Ausgabe ist

         input1       input2       output 
        _________    _________    ________

          1.0048       1.0197     0.99994
          0.041677      0.98637     0.97668
         -0.017968       1.0358     0.97527
          1.0052       1.0168     0.99994
          1.0463      0.98814     0.99995
          0.97875     0.036674      0.9741
          0.96238    -0.023861     0.95926
          0.0064527     0.040392    0.095577
          1.0085    -0.010895     0.97118
         -0.026367     0.042854    0.080808

Codeabschnitt:

    clc
    clear
    input = [0 0; 0 1; 1 0; 1 1];
    numIn = 4;
    desired_out = [0;1;1;1];
    bias = -1;
    coeff = 0.7;
    rand('state',sum(100*clock));
    weights = -1*2.*rand(3,1);

    iterations = 100;

    for i = 1:iterations
    out = zeros(4,1);
        for j = 1:numIn
           y = bias*weights(1,1)+input(j,1)*weights(2,1)+input(j,2)*weights (3,1);
           out(j) = 1/(1+exp(-y));
           delta = desired_out(j)-out(j);
           weights(1,1) = weights(1,1)+coeff*bias*delta;
           weights(2,1) = weights(2,1)+coeff*input(j,1)*delta;
           weights(3,1) = weights(3,1)+coeff*input(j,2)*delta;
        end
   end
   %% Test Section
   NumDataTest  =  10 ;
   test=randi( [0 , 1] , [ NumDataTest , 2]) ...
      +(2*rand(NumDataTest,2)-1)/20;
   for i=1:NumDataTest
       y = bias*weights(1,1)+test(i,1)*weights(2,1)+test(i,2)*weights(3,1);
       out(i) = 1/(1+exp(-y));
   end
    table(test(:,1),test(:,2),out,'VariableNames',{'input1' 'input2' 'output'})

Ich hoffe, das hilft und entschuldigt mein Englisch, wenn es schlecht ist

Das Folgende ist eine Implementierung eines einfachen Perceptron in einem Blog zur Verfügung gestellt .

input = [0 0; 0 1; 1 0; 1 1];
numIn = 4;
desired_out = [0;1;1;1];
bias = -1;
coeff = 0.7;
rand('state',sum(100*clock));
weights = -1*2.*rand(3,1);

iterations = 10;

for i = 1:iterations
     out = zeros(4,1);
     for j = 1:numIn
          y = bias*weights(1,1)+...
               input(j,1)*weights(2,1)+input(j,2)*weights(3,1);
          out(j) = 1/(1+exp(-y));
          delta = desired_out(j)-out(j);
          weights(1,1) = weights(1,1)+coeff*bias*delta;
          weights(2,1) = weights(2,1)+coeff*input(j,1)*delta;
          weights(3,1) = weights(3,1)+coeff*input(j,2)*delta;
     end
end

Ich habe folgende Fragen,

(1) Wer trainiert hier Daten?

(2) Welches sind hier Testdaten?

(3) Welches sind die Etiketten hier?





perceptron