Задача классификации векторов

Покажем, как линейные сети могут быть применены для решения задач классификации. Если используется процедура обучения train, то параметры сети настраиваются
с учетом суммарного значения функции ошибки. Это отличается от процедуры адаптации adapt, для работы которой характерна настройка параметров с учетом ошибки при представлении каждого вектора входа. Затем обучение применяется к скорректированной
сети, вычисляются выходы, сравниваются с соответствующими целями и вновь вычисляется ошибка обучения. Если достигнута допустимая погрешность или превышено максимальное число циклов (эпох) обучения, то процедура настройки прекращается. Алгоритм обучения и настройки сходится, если задача классификации разрешима.

Проиллюстрируем решение задачи классификации, ранее решенной с помощью персептрона. Используем для этого простейшую линейную сеть, представленную на рис. 5.1. Обучающее множество представлено следующими четырьмя парами векторов входов
и целей:

(5.9)

Определим линейную сеть с начальными значениями веса и смещения, используемыми по умолчанию, т. е. нулевыми; зададим допустимую погрешность обучения, равную 0.1:

p = [2 1 –2 –1;2 –2 2 1];

t = [0 1 0 1];

net = newlin([–2 2; –2 2],1);

% Инициализация линейной сети с двумя входами и одним выходом

net.trainParam.goal= 0.1;

[net, tr] = train(net,p,t);

TRAINWB, Epoch 0/100, MSE 0.5/0.1.

TRAINWB, Epoch 25/100, MSE 0.181122/0.1.

TRAINWB, Epoch 50/100, MSE 0.111233/0.1.

TRAINWB, Epoch 64/100, MSE 0.0999066/0.1.

TRAINWB, Performance goal met.

Пороговое значение функции качества достигается за 64 цикла обучения, а соответствующие параметры сети принимают значения

weights = net.iw{1,1}

bias = net.b(1)

weights = –0.061482 –0.21938

bias = [0.5899]

Выполним моделирование созданной сети с векторами входа из обучающего множества и вычислим ошибки сети:

A = sim(net, p)

err = t – sim(net,P)

A = 0.028173 0.96718 0.2741 0.432

err = –0.028173 0.03282 –0.2741 0.568

Заметим, что погрешности сети весьма значительны. Попытка задать большую точность в данном случае не приводит к цели, поскольку возможности линейной сети ограничены. Демонстрационный пример demolin4 иллюстрирует проблему линейной зависимости векторов, которая свойственна и этому случаю.

Обучение линейной нейронной сети иллюстрируется демонстрационной программой demolin2, которая возвращает значения весов и погрешность в процессе обучения. В связи с рассматриваемой проблемой классификации можно также обратиться к демонстрационной программе nnd10lc, в которой рассмотрена классическая задача классификации объектов при действии шумов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: