2016-12-26 9 views
-1

Что происходит в следующем коде?Код Perceptron code

function [ errors sepplane ] = perceptron (pclass , nclass) 
    sepplane = rand (1 , columns (pclass) + 1) - 0.5; 
    tset = [ ones (rows (pclass), 1) pclass ; 
      - ones (rows (nclass), 1) -nclass 
      ]; 
    i = 1; 
    do 
     misind = tset * sepplane ' < 0; 
     correction = sum (tset (misind , :), 1)/sqrt (i); 
     sepplane = sepplane + correction; 
     ++ i; 
    until (norm (sepplane) * 0.0005) - norm (correction) > 0 || i > 1000; 

    errors = mean (tset * sepplane ' < 0); 
    dzeros = tvec (tlab == 1 , :); 
    dones = tvec (tlab == 2 , :); 
    perceptron (dzeros , dones) 
end 

(0) Почему этот код так сильно отличается от this one?

(1) Почему положительные и отрицательные классы отдельно передаются в 1-м месте? Тогда в чем смысл классификации?

(2) Что такое sepplane?

(3) Что такое misind?

(4) Что является обоснованием расчета correction?

+0

Основываясь на ваших последних парах вопросов, я настоятельно рекомендую вам сделать еще несколько фоновых чтений о персептронах. Страница Википедии ссылается на [книжную главу] (http://page.mi.fu-berlin.de/rojas/neural/chapter/K3.pdf), которая выглядит полезной. Как только вы понимаете теорию, этот код является прямой реализацией. – Cecilia

+0

@Cecilia, да. Но ваш ответ только спас меня почти 24 часа. – anonymous

+0

Это не код MATLAB – excaza

ответ

1

(0) Почему этот код настолько сильно отличается от другого?

Этот персептрон можно модифицировать, чтобы быть мультиклассовым. Другой - строго для двоичной классификации.

(1) Почему положительные и отрицательные классы отдельно передаются в 1-м месте? Тогда в чем смысл классификации?

Это обучение шаг персептрона, так что вам нужно положительные и отрицательные примеры, чтобы узнать вес

(2) Что такое sepplane?

Разделительная гиперплоскость, которую учит персептрон.

(3) Что такое misind?

1, если пример был правильно классифицирован и -1 в противном случае.

(4) В чем обоснование расчета коррекции?

Если я неправильно классифицирую пример, я хочу настроить вес, чтобы он был правильно классифицирован в следующий раз, когда я запускаю его через персептрон.