как вернуться к первому индексу матриц - PullRequest
0 голосов
/ 13 ноября 2010

Мне нужно реализовать однослойный персептрон с использованием Matlab.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускал свою программу, она давала мне вывод для каждого ввода (он показывает результаты 4 раза), но яЯ хочу вернуться к первому индексу матрицы, после того, как он достиг четвертого, и я не могу узнать, как мне вернуться к первому индексу матрицы.

Я хочу обучить свою программу так, чтобы она давала тот же результат, что и в b, повторяя матрицу в каждом цикле.

Это мой текущий код:

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 Ответ

1 голос
/ 13 ноября 2010

@ Amro опубликовал подробный ответ о реализации однослойного персептрона с MATLAB.Его пост не только важен с точки зрения «получения кода», но и о том, как техническая проблема должна быть решена.Он начинается с графического представления персептрона, показывающего поток сигналов, описание проблемы.И продолжает с отличными комментариями в коде, как часть решения.

Простая замена переменных a и b в вашем коде значимыми именами может иметь большое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...