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

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

Каждый из этих четырех вектор-столбцов в 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 object. The axes object with title Vectors to be Classified contains 4 objects of type line.

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

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

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

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

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

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

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

Здесь вход и целевые данные преобразованы в последовательные данные (массив ячеек, где каждый столбец указывает на такт), и скопировал три раза, чтобы сформировать серию 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});

Figure contains an axes object. The axes object 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 object. The axes object with title Vectors to be Classified contains an object of type line.

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

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

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

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