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);
perceptron должен правильно классифицировать эти четыре входных вектора на X в эти две категории, заданные Т. Персептронсом, имеют нейроны HARDLIM. Эти нейроны способны к разделению входного пространства прямой линией в две категории (0 и 1).
Здесь PERCEPTRON создает новую нейронную сеть с одним нейроном. Сеть затем сконфигурирована к данным, таким образом, мы можем исследовать его начальный вес и сместить значения. (Обычно шаг настройки может быть пропущен, когда он автоматически сделан, АДАПТИРУЮТСЯ или ОБУЧАЮТСЯ.)
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;