Классификация с двумя-входным перцептроном

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

Каждый из четырёх векторов-столбцов X задает двухэлементные векторы входа и вектора-строки T задает целевые категории вектора. Мы можем построить график этих векторов с помощью PLOTPV.

X = [ -0.5 -0.5 +0.3 -0.1;  ...
      -0.5 +0.5 -0.5 +1.0];
T = [1 1 0 0];
plotpv(X,T);

Figure contains an axes. The axes with title Vectors to be Classified contains 4 objects of type line.

Перцептрон должен правильно классифицировать четыре входных вектора в X в две категории, определенные T. Перцептроны, имеют HARDLIM нейроны. Эти нейроны способны разделять входное пространство с прямой линией на две категории (0 и 1).

Здесь PERCEPTRON создает новую нейронную сеть с одним нейроном. Сеть затем конфигурируется к данным, поэтому мы можем изучить ее начальный вес и значения смещения. (Обычно шаг строения может быть пропущен, так как он автоматически выполняется ADAPT или TRAIN.)

net = perceptron;
net = configure(net,X,T);

Входные векторы повторяются с начальной попыткой нейрона классификации.

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

plotpv(X,T);
plotpc(net.IW{1},net.b{1});

Figure contains an axes. The axes with title Vectors to be Classified contains 5 objects of type line.

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

ADAPT обновляет сеть для каждого временного интервала в серии и возвращает новый сетевой объект, который работает как лучший классификатор.

XX = repmat(con2seq(X),1,3);
TT = repmat(con2seq(T),1,3);
net = adapt(net,XX,TT);
plotpc(net.IW{1},net.b{1});

Figure contains an axes. The axes with title Vectors to be Classified contains 6 objects of type line.

Теперь SIM используется для классификации любого другого входного вектора, такого как [0,7; 1.2]. График этой новой точки с исходным набором обучающих данных показывает, как работает сеть. Чтобы отличить его от набора обучающих данных, окрашивайте его в красный цвет.

x = [0.7; 1.2];
y = net(x);
plotpv(x,y);
point = findobj(gca,'type','line');
point.Color = 'red';

Figure contains an axes. The axes with title Vectors to be Classified contains an object of type line.

Включите «hold», чтобы предыдущий график не стирался, и постройте график набора обучающих данных и линии классификации.

Перцептрон правильно классифицировал нашу новую точку (в красном) как категорию « нуль» (представленную кругом), а не «единицу» (представленную плюсом).

hold on;
plotpv(X,T);
plotpc(net.IW{1},net.b{1});
hold off;

Figure contains an axes. The axes with title Vectors to be Classified contains 6 objects of type line.