Классификация с Perceptron С 2 входами

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

Каждый из этих пяти вектор-столбцов в X задает входные векторы, с 2 элементами и вектор - строка 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);

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

Здесь PERCEPTRON создает новую нейронную сеть с одним нейроном. Сеть затем сконфигурирована к данным, таким образом, мы можем исследовать его начальный вес и сместить значения. (Обычно шаг настройки может быть пропущен, когда он автоматически сделан, АДАПТИРУЮТСЯ или TRAIN.)

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

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

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

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

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

АДАПТИРУЙТЕСЬ обновляет сеть в течение каждого такта в ряду и возвращает новый сетевой объект, который выполняет как лучший классификатор.

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

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

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

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

perceptron правильно классифицировал нашу новую точку (на красный) как категория "нуль" (представленный кругом) и не "один" (представленный плюс).

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