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

Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 25.02.2015
Размер файла 4,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Проверка работоспособности предложенного алгоритма обучения ИНС Кохонена производилась с помощью табличной модели Excel, описанной в следующих главах. Слой нейронов Кохонена включал 30 нейронов, взаимодействующих между собой таким образом, чтобы топологически они образовывали 5 независимых одномерных решеток (клеточных автоматов) по 6 нейронов в каждой. Учебные образы (всего 4000 шт.) равномерно распределялись в окрестности Вороного четвертого нейрона каждого из одномерных обучающих КА.

Результаты обучения одномерной сети Кохонена в течение трех эпох приведены на рис.3.4а и полностью подтверждают теоретические выводы, иллюстрируемые рис.3.4б.

К достоинствам предложенного алгоритма обучения ИНС Кохонена с помощью непрерывного клеточного автомата относятся:

- его детерминированность, обусловленная тем, что конечное состояние КА зависит только от начального состояния (положения) нейронов, числа шагов работы автомата (итераций) и скорости обучения, которая остается фиксированной и имеет ясный физический смысл;

- отсутствие эвристических параметров обучения, таких как зависящая от времени функция "меры соседства", монотонно убывающий обучающий сомножитель и др.;

- автоматически решается проблема "мертвых" нейронов.

Рис.3.4. Состояние нейронов сети Кохонена:

а) начальное; б) после 1-ой эпохи обучения; в) после 2-х эпох обучения; г) после 3-х эпох обучения

3.3 Блок схема нейронной сети

Блок-схема является вариантом формализованной записи алгоритма или процесса. Каждый шаг алгоритма в данном представлении изображается в виде блоков различной формы, которые соединены между собой линиями. В блок-схеме можно отобразить все этапы решения любой задачи, начиная с ввода исходных данных, обработки операторами, выполнения цикличных и условных функций, и заканчивая операциями вывода результирующих значений.

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

1. Загрузка выборки векторов из выборки данных;

2. Введение произвольного набора данных для последующей кластеризации;

3. Считывание введенных данных для распознавания из выборки в программу;

4. Преобразование данных из двоичного представления в табличный массив 0 и 1;

5. Подсчет конгруэнтной промежуточной нейронной матрицы;

6. Подсчет диверсивной промежуточной нейронной матрицы;

7. Подсчет пассивной промежуточной нейронной матрицы;

8. Подсчет итоговой симбиозной нейронной матрицы, основанной на характеристиках матриц слоев;

9. Выявление характеристик симбиозных матриц и вычисление итоговых значений на выходах;

10. Выявление наибольшего значения из выходов симбиозных матриц, определение его кода и ассоциирование с поступившим на вход классом;

11. Корректировка сумматорной матрицы (без учителя) в случае высокой погрешности;

12. Переход к шагу 2, пока величина погрешности не будет удовлетворяющей.

Блок схема соответствующего алгоритма будет иметь следующий вид:

Искусственная самоорганизующаяся нейро-матричная сеть (ИСНМС), построена по следующей схеме (рис. 3.5): на вход нейронной сети подаетсявыборка данных, вход можно представить, как матрицу рецепторов, а выборка может быть представлена в виде последовательности 0 и 1, где 0 - незакрашенные ячейки, а 1 - закрашенные ячейки. Информация из матрицы рецепторов подается, и трансформируются на второй уровень - класс нейронных матриц представителей и критериев оценок для каждого класса базы данных, после этого подсчитываются промежуточные веса и применяются критерии отбора элементов, которые также прописаны в матричном виде - третий уровень.

Рис. 3.5 Условный граф матричной нейронной самоорганизующейся сети

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

На основе построенной принципиально новой искусственной нейронной схемы с независимыми нейронами и применения вероятностно-статистических анализов были получены высокие результаты распознавания. Данный граф показывает структурную схему построенной искусственной самоорганизующейся нейронной сети (ИСНС) для кластеризации данных.

Ниже приводится более детализированная блок-схема нейронной сети.

Рис. 3.6. Блок схема работы нейронной сети

Алгоритм обучения сети Кохонена выглядит следующим образом:

1. Инициировать матрицу весов малыми случайными значениями (на отрезке [-1,1]).

2. Построить очередь из элементов входного множества, расположив их в случайном порядке, пометить их все как необработанные.

3. Выбрать первый необработанный элемент x из очереди.

4. Для каждого выхода j вычислить расстояние dj (1) между его вектором весов wj и входным вектором x:

x) (3.3)

5. Найти номер выходного нейрона jm с минимальным расстоянием dj:

(3.4)

6. Вычислить изменение весов ДW = {Дwu} для всех нейронов u выходного слоя:

(3.5)

где c - номер (пара индексов) нейрона победителя jm в двумерной решетке второго слоя;

и - номер (пара индексов) нейрона с вектором весов wu в двумерной решетке второго слоя;

wи - вектор весовых коэффициентов связи входного слоя и выходного нейрона номер и;

x - текущий вектор входов сети;

h(и,c,t) - значение функции окрестности для нейрона номер u в момент времени t;

з - коэффициент скорости обучения;

7. Скорректировать матрицу весов:

W:=W -?W (3.6)

8. Пометить элемент входной очереди x как обработанный если в очереди остаются не обработанные точки, то переход на п.3, если критерий остановки обучения не достигнут то переход на п.2

9. Конец.

В качестве критериев останова процесса обучения можно использовать следующие:

- Количество полных циклов обучения ограничено константой, например количество циклов равно количеству элементов во входном множестве.

- Выход сети стабилизируется, т.е. входные вектора не переходят между кластерными элементами.

- Изменения весов становятся незначительными.

3.4 Создание табличной модели нейронной сети Кохонена

Псевдокод алгоритма обучения искусственной нейронной сети Кохонена с помощью клеточного автомата в cnt-ой итерации имеет вид:

Переменные алгоритма:

Cnt // счетчик итераций

nNums // число нейронов в слое Кохонена

smplNums // число учебных образов в выборке

D // размерность пространства учебных образов

sk={x1(k), x2(k),…,xD(k)} // вектор состояния k-го учебного образа

wi={w1(i), w2(i),…,wD(i)} // вектор состояния i-го нейрона

dwk // вектор приращения состояния i-го нейрона за эпоху

Функции алгоритма:

IsWinner(i) // логическая функция, возвращающая значение True, если // i - нейрон-победитель или связанный с ним нейрон // окружения, иначе функция возвращает значение False

Псевдокод алгоритма:

ieCnt= ОСТАТ(cnt;smplNums) // текущая итерация эпохи

For i=1 to nNums

Процедура получения координат k-ого учебного образа

// Найти новый вектор состояния i-го нейрона (i-ой ячейки КА)

If fix Then

wi=wi

Else

If start=1 Then

If (ieCnt<=smplNums)&(ieCnt=0) Then

wi=wi+IIF(IsWinner(i);dwi;0)

Else

wi=wi

End If

Else

wi=wiнач

End If

End If

// Расстояние между k-ым учебным образом и i-ым нейроном

(3.7)

// Найти нейрон-победитель rp=min(rki)

// расстояние между k-ым учебным образом и нейроном-

// победителем, p - порядковый номер нейрона-победителя

Next

For i=1 to nNums

Процедура вычисление компонент вектора приращения dwi состояния i-го нейрона за эпоху

Next

Книга Excel с табличной моделью ИНС Кохонена, реализующей этот алгоритм обучения, содержит три рабочих листа: Выборки, Обучение и AuxData.

3.4.1 Рабочий лист "Выборки"

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

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

На рабочем листе Выборки рис.3.7 производится активация интересующей пользователя нормированной выборки учебных образов из имеющегося набора выборок.

Рис. 3.7. Рабочий лист выборки

Каждая выборка может содержать до 8000 учебных образов в четырехмерном пространстве. Заметим, однако, что простым приравниванием к нулю части отдельных координат учебных образов пользователь может определять, как частные случаи, выборки учебных образов и в пространствах с одним, двумя и тремя измерениями.

На рабочем листе Выборки используются следующие формулы;

1. [F3]:=СЧЁТЕСЛИ(dataType;0) число учебных образов

2. [F4]:=СЧЁТЕСЛИ(dataType;2) число исключенных образов

3. [F5]:=R[-2]C+R[-1]C всего образов в активной выборке

4. [E15:H15]:= =МИН(СМЕЩ(E$21;0;0;$F$3;1))минимальные координаты образов активной выборки

5. [E16:H16]:=МАКС(СМЕЩ(E$21;0;0;$F$3;1)) максимальные координаты образов активной выборки

6. [E17:H17]:=ЕСЛИ(И(МИН(E21:E8020)=0;МАКС(E21:E8020)=0);0;1) флаг включения координаты в пространство активной выборки

7. [E18:H18]:=СРЗНАЧ(СМЕЩ(E$21;0;0;$F$3;1))среднее значение координат образов активной выборки

8. [I21:I8020}:=ЕСЛИ(Slct=1;P21;ЕСЛИ(Slct=2;X21;ЕСЛИ(Slct=3;AH21;ЕСЛИ(Slct=4;AP21;ЕСЛИ(Slct=5;AX21;BE21))))) нормированный класс образов активной выборки

9. [J21:J8020}:=ЕСЛИ(Slct=1;Q21;ЕСЛИ(Slct=2;Y21;ЕСЛИ(Slct=3;AI21;ЕСЛИ(Slct=4;AQ21;ЕСЛИ(Slct=5;AY21;ЕСЛИ(Slct=6;BF21;BM21)))))) тип образа в активной выборке.

10.[E21:E8020}:=ЕСЛИ(Slct=1;L21;ЕСЛИ(Slct=2;T21;ЕСЛИ(Slct=3;AD21;ЕСЛИ(Slct=4;AL21;ЕСЛИ(Slct=5;AT21;ЕСЛИ(Slct=6;BA21;BH21))))))*scale;

[F21:F8020}:==ЕСЛИ(Slct=1;M21;ЕСЛИ(Slct=2;U21;ЕСЛИ(Slct=3;AE21;ЕСЛИ(Slct=4;AM21;ЕСЛИ(Slct=5;AU21;ЕСЛИ(Slct=6;BB21;BI21))))))*scal;

[G21:G8020}:=ЕСЛИ(Slct=1;N21;ЕСЛИ(Slct=2;V21;ЕСЛИ(Slct=3;AF21;ЕСЛИ(Slct=4;AN21;ЕСЛИ(Slct=5;AV21;ЕСЛИ(Slct=6;BC21;BJ21))))))*scale;

[H21:H8020}:=ЕСЛИ(Slct=1;O21;ЕСЛИ(Slct=2;W21;ЕСЛИ(Slct=3;AG21;ЕСЛИ(Slct=4;AO21;ЕСЛИ(Slct=5;AW21;ЕСЛИ(Slct=6;BD21;BK21))))))*scale

нормированные координаты образов активной выборки

Любые изменения на рабочем листе Выборки контролируются процедурой Worksheet_Change() - обработчиком события Change вида (рис. 3.8):

Рис. 3.8. Рабочий лист выборки

На листе "Выборки" 5 выборок учебных образцов:

Выборка 1 состоит из 8000 образцов равномерно расположенных по всей координатной сетке.

Выборка 2 состоит из 4000 образцов.

Выборка 3 состоит из 150 норированных образцов на плоскости задачи Ирисы Фишера.

Выборка 4 так же состоит из образцов задачи Ирисы Фишера, но уже с 4-мя координатами.

Выборка 5 включает в себя 2000 образцов на плоскости с треугольным расположением.

Рис. 3.9. Рабочий лист выборки

3.4.2 Рабочий лист "Обучение"

Рабочий лист Обучение содержит табличную реализацию ИНС, содержащую слой из 30 нейронов Кохонена. В совокупности нейроны слоя Кохонена образуют двумерную прямоугольную самоорганизующуюся карту, показанную на рис. 3.103.

Рис. 3.10. Самоорганизующаяся карта нейронов слоя Кохонена (заливкой показано окружение фон Неймана для 14-го нейрона)

В процессе обучения ИНС Кохонена каждый ее нейрон взаимодействует только со своими соседями из окружения фон Неймана радиуса r=1, т.е. с нейронами, расположенными левее, выше, правее и ниже искомого нейрона. Однако по желанию пользователя табличной модели отдельные связи между нейронами можно принудительно разорвать. Так, на рис.3.33 крестиками показаны разрывы связей между нейронами 6 и 12, 12 и 13, 13 и 19, 19 и 20, 20 и 26, 26 и 27. В результате первоначально односвязная самоорганизующаяся карта оказалась разорванной на две не взаимодействующие между собой карты (множества нейронов {12, 18-19, 24-26} и {0-11, 13-17, 20-23, 27-29}). Как показано ниже, возможность выборочного разрыва связей между нейронами играет важную роль в решении проблемы "мертвых" нейронов.

Обучение ИНС Кохонена выполняется в две фазы. В эпохах первой фазы обучение сети выполняется в соответствии с алгоритмом, описанным в разделе 3.4.1. Во второй фазе взаимодействие между соседними нейронами отключается, и выполняется окончательная подстройка положений нейронов-победителей относительно положения нейронов, достигнутого в первой фазе обучения ИНС.

Табличная модель ИНС Кохонена состоит из области пользовательского интерфейса в диапазоне ячеек R1C1:R18C10 (рис.3.11), семи двумерных диапазонов ячеек с данными и формулами, реализующими алгоритм обучения сети с помощью клеточного автомата, нескольких вспомогательных диапазонов ячеек:

- R23C20:R52C23 - входной диапазон ячеек Начальное состояние нейронов (ячеек КА) для ручного задания детерминированной начальной конфигурации слоя нейронов Кохонена (рис.3.12а);

- R60C20:R60C23 - диапазон ячеек Входной порт данных, в процессе обучения ИНС через этот порт подаются учебные образы на входы слоя нейронов Кохонена (рис.3.13);

- R64C20:R64C23 - диапазон ячеек Входы слоя нейронов Кохонена (рис.3.12б);

- R65C20: R94C23 - диапазон ячеек Слой нейронов Кохонена (рис.3.12б);

- R108C29:R112C34 - диапазон ячеек Окружение нейрона-победителя, табличный эквивалент самоорганизующейся карты Кохонена, ячейки нейрона-победителя и его кружения имеют значение 1, остальные ячейки - значение 0 (рис.3.14);

- R116C20:R145C23 - диапазон ячеек Предыдущие приращения координат нейронов (рис.3.38б);

- R149C20:R178C23 - диапазон ячеек Приращения координат нейронов (рис.3.15а);

- R65C24: R94C24, R116C24: R145C24, R116C25: R145C25, R149C19:R178C19, R149C24:R178C24, R149C25:R178C25 - вспомогательные диапазоны ячеек.

Пользовательский интерфейс табличной модели ИНС Кохонена представлен на рис. 3.11.

Рис. 3.11. Пользовательский интерфейс табличной модели ИНС Кохонена (входные ячейки выделены заливкой).

Рис. 3.12. Начальные веса

(а) и структура слоя нейронов (б) табличной модели ИНС Кохонена

Пользовательский интерфейс табличной модели включает:

- управляющие кнопки Пуск, Сброс и Выполнить, с которыми ассоциированы макросы StartBtn_Click(), и InitBtn_Click()и Run_Iterations() соответственно;

- входные ячейки Число эпох R8C6, Скорость обучения R15C5 и R15C6, Доля эпох взаимодействия R17C5, Число нейронов R4C9, Ширина карты R5C9, Число прогонов R12C9;

- ячейку Флаг включения итераций R4C6, устанавливается и сбрасывается программно c помощью управляющих макросов StartBtn_Click() и InitBtn_Click();

- таблицу задания детерминированной начальной конфигурации КА (начального положения нейронов) в диапазоне ячеек R23C20:R52C23 (рис. 3.12а);

Рис. 3.13. Входной порт данных табличной модели ИНС Кохонена

Рис. 3.14. Нейрон-победитель и соседние нейроны из окружения фон Неймана

Рис. 3.15. Приращения координат нейронов для активной выборки 2 после двух эпох обучения

- флажок Фиксировать и связанную с ним ячейку R7C9, предназначен для фиксации состояния нейронов слоя Кохонена после завершения обучения ИНС;

- прочие вспомогательные ячейки, обеспечивающие управление ИНС и визуализацию процесса ее обучения.

В ячейках табличной модели используются формулы:

Пользовательский интерфейс:

[R5C6]:=eNum*smplNums число итераций

[R6C6]:=ЕСЛИ(start=1;cnt+1;0) счетчик итераций

[R9C6]:=ЕСЛИ(start=1;ЦЕЛОЕ(cnt/smplNums);0) счетчик эпох

[R9C5]:=eCnt предыдущее значение счетчика эпох

[R10C6]:=ЕСЛИ(start=1;ЕСЛИ(ОСТАТ(cnt;smplNums)=0;smplNums; ОСТАТ(cnt;smplNums));0) счетчик итераций эпохи

[R12C6]:=Выборки!R2C7 число учебных образов

[R13C6]:=ЕСЛИ(start=1;ОСТАТ(cnt;smplNums)+1;0) номер текущего образа

[R16C6]:=ЕСЛИ(eCnt<R17C6;R15C5;R15C6) текущая скорость обучения

[R17C6]:=ЦЕЛОЕ(Ni*R17C5) число эпох взаимодействия

Входной порт данных:

[R57C21]:=curSmpl

[R60C20:R60C23]:=СМЕЩ(Выборки!R14C3;k;R59C)

Входной порт данных работает следующим образом. В каждой итерации процесса обучения ИНС в ячейку R57C21 из именованной ячейки curSmpl копируется номер текущего учебного образа k. По этому номеру с помощью функции Excel СМЕЩ() в ячейки R60C20:R60C23 входного порта данных с рабочего листа Выборки (диапазон ячеек Выборки!R14C4:R8014C7) считываются координаты k-го учебного образа активной выборки. Полученные через этот порт координаты текущего учебного образа поступают на входы R64C20:R64C23 слоя нейронов Кохонена (рис.3.35б), в конечном счете, определяя номер очередного нейрона-победителя.

Входы слоя нейронов Кохонена:

[R64C20:R64C23]:=R[-4]C

Слой нейронов Кохонена:

[R65C20:R94C23]:=ЕСЛИ(fix;RC;ЕСЛИ(start=1; ЕСЛИ(И(ieCnt<=smplNums;ОСТАТ(cnt;smplNums)=0); RC+ЕСЛИ(R[51]C24=0;0;R[51]C/R[51]C24);RC);R[-42]C))

[R65C24:R94C24]:=ЕСЛИ(start=1;КОРЕНЬ(СУММКВРАЗН(R64C[-4]:R64C[-1]; RC[-4]:RC[-1]));0)

[R95C24]:=МИН(R[-30]C:R[-1]C)

[R97C22]:=ПОИСКПОЗ(R95C24;R65C24:R94C24;0)-1

[R97C23]:=ОСТАТ(winner;L)

[R97C24]:=ЦЕЛОЕ(winner/L)

Окружение нейрона-победителя:

[R102C29:R106C34]:=RC28*L+R101C+0*cnt

[R108C29:R112C34]:=ЕСЛИ(RC28*L+R101C=winner;1;ЕСЛИ(ИЛИ(И(ABS(RC28-j)=1; ABS(R101C-i)=0);И(ABS(RC28-j)=0;ABS(R101C-i)=1)); ЕСЛИ(eCnt<R17C6;1;0);0))

Приращения координат нейронов:

[R149C19:R178C19]:=ЕСЛИ(ИНДЕКС(ЕСЛИ(slct>2;Set1;Set);winner+1; RC18+1)=1;ИНДЕКС(R108C29:R112C34;ЦЕЛОЕ(RC18/L)+1;ОСТАТ(RC18;L)+1);0)

[R149C20:R178C23]:=ЕСЛИ(ОСТАТ(cnt;smplNums)<>0;RC+teta* (R64C-R[-84]C)*RC19;0)

[R149C24:R178C24]:=ЕСЛИ(start=1;ЕСЛИ(ОСТАТ(cnt;smplNums)<>0; ЕСЛИ(RC19=1;RC+1;RC);0);0)

[R149C25:R178C25]:=ЕСЛИ(start=1;ЕСЛИ(ОСТАТ(cnt;smplNums)<>0; ЕСЛИ(RC18=winner;RC+1;RC);0);0)

Предыдущие приращения координат нейронов:

[R116C20:R145C23]:=R[33]C

[R116C24:R145C25]:=ЕСЛИ(R[33]C=0;0;R[33]C+1)

Для удобства работы пользователей на рабочий лист Обучение внедрены управляющие кнопки Обучение, Сброс и Выполнить. С первыми двумя кнопками ассоциированы универсальные макросы StartBtn_Click() и InitBtn_Click() точно такие же, как и в предыдущих итерационных моделях КА, с кнопкой Выполнить ассоциирован макрос Run_Iterations(), имитирующий многократное нажатие кнопки Старт: Sub Run_Iterations()

Dim Ni As Integer

Dim i As Integer

Ni=Range("Ni")

For i=1 To Ni

Application.Run "Лист1.StartBtn_Click"

Next

End Sub

Кнопка Выполнить и связанный с ней макрос Run_Iterations() запускают Ni циклов итераций обучения нейронной сети, кнопка Пуск и макрос StartBtn_Click() запускает один цикл обучения ИНС, состоящий из Nr=smplNumseNums итераций (как отмечалось, при eNums=1/smplNums выполняется ровно одна итерация), кнопка Сброс и макрос StopBtn_Click() приводят ИНС в исходное необученное состояние.

Для запуска процесса обучения нейронной сети нужно выполнить следующие действия:

1. В ячейках пользовательского интерфейса Число эпох (R8C6), Скорость обучения (R15C5, R15C6), Доля эпох взаимодействия (R17C5), Число нейронов (R4C9), Ширина карты (R5C9), Число прогонов (R12C9) задать значения требуемых параметров обучения (рис. 3.11).

2. Нажать кнопку Сброс для приведения нейронов ИНС Кохонена в начальное необученное состояние.

3. Запустить итерации обучения нейронной сети при заданных параметрах, нажав кнопку Выполнить.

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

Созданную табличную модель ИНС Кохонена легко модифицировать в нескольких отношениях:

1. Вместо окружения фон Неймана в обучающем клеточном автомате использовать окружение Мура, введя для этого на самоорганизующейся карте Кохонена в дополнение к вертикально-горизонтальным связям еще и диагональные связи.

2. Вместо суммирующего КА использовать внешне суммирующий обучающий клеточный автомат. Например, обучение нейрона-победителя можно вести с большей скоростью, чем обучение нейронов его окружения.

3. Для избирательного разрыва связей между нейронами на самоорганизующейся карте Кохонена использовать более наглядный и удобный интерфейс, используя вместо матрицы смежностей табличную модель самоорганизующейся карты, как показано на рис. 3.16.

Рис. 3.16. Табличная модель самоорганизующейся карты Кохонена: а) окружение фон Неймана, б) окружение Мура

Здесь для примера в обучающем клеточном автомате с окружением фон Неймана оставлены только горизонтальные связи между нейронами (рис. 3.16а), а в КА с окружением Мура - диагональные (рис. 3.16б).

В заключение лишний раз подчеркнем, что результаты модельных экспериментов с табличной моделью ИНС Кохонена, представленные на рис.3.14 справа, убедительно подтверждают справедливость теоретических выводов раздела 3.4.1 о возможности обучения нейронной сети с помощью непрерывного клеточного автомата.

3.5 Обучение сети

Обучение сети выполняется в пакетном режиме, т.е. КА переходит в новое состояние один раз в конце каждой эпохи подачи учебных образов. При этом в итерациях эпохи выполняется расчет будущего состояния КА. Учебные образы в итерациях эпохи могут подаваться на входы нейронной сети Кохонена в произвольном порядке, например, последовательно.

Проверка работоспособности предложенного алгоритма обучения ИНС Кохонена производилась с помощью табличной модели Excel. Слой нейронов Кохонена включает 30 нейронов, взаимодействующих между собой таким образом, чтобы топологически они образовывали 5 независимых одномерных решеток (клеточных автоматов) по 6 нейронов в каждой.

Третья выборка содержит 150 учебных образов известной задачи Фишера о цветках ириса, широко используемой в качестве типовой выборки при классификации образов с помощью ИНС на базе многослойных персептронов. В нашем случае выборка содержит три класса цветков ириса, по 50 образов в каждом классе. При этом, чтобы обеспечить неискаженную графическую иллюстрацию процесса обучения сети в двумерном пространстве, используются только два главных параметра цветков ириса из четырех, которых, как показывает опыт, тем не менее достаточно для удовлетворительной классификации цветков ириса.

Для обучения сети мы возьмем 120 образцов из выборки "Ирисы Фишера", а 30 образцов оставим для тестирования сети. Будем использовать образцы:

- 1-40

- 51-90

- 101-140

Для этого нужно в столбце "Тип" поставить цифру "2" (рис. 3.17)

Рис. 3.17. Ирисы Фишера

На рабочем листе "Выборки" из выпадающего списка выбираем номер нужной обучаемой последовательности (рис.3.18).

Рис. 3.18. Выбор обучающей последовательности из списка.

После выбора происходит автоматический переход на рабочий лист "Обучение" (рис. 3.19)

Рис. 3.19. Рабочий лист "Обучение"

После перехода нужно выбрать связи между нейронами. В меню выбора связей ставим маркер на пункт "Все связи" (рис.3.20).

Рис. 3.20. Меню выбора связей

Выбор связей между нейронами можно сделать вручную (рис. 3.21).

Рис. 3.21.Таблица выбора связей

В таблице управления обучением сети в строке "Число образцов" стоит цифра 130, это значит что исключенные образцы в обучении будут неактивны. В поле число прогонов ставим 200 эпох обучения и нажимаем кнопку "Выполнить" (рис. 3.22).

Рис. 3.22. Таблица управления обучением сети

Запустится обучение сети. После 200 циклов обучения нероны будут иметь положение показанное на рис. 3.21.

Рис. 3.21.Обучение сети

Из этого можно сделать вывод о том, что сеть функционирует. Далее нужно будет протестировать сеть на точность кластеризации.

3.6 Создание табличной модели обученной сети

После обучения сети сформировался диапазон слой нейронов Кохонена (рис. 3.22). Скопируем таблицу в новый лист MS Excel. И назовем его ИНС.

Рис. 3.22. Слой нейронов Кохонена

С помощью данной табличной модели можно классифицировать двумерные образцы, подавая их на вход. Для подачи на вход нужен входной порт данных (рис. 3.23).

Рис. 3.23. Входной порт данных табличной модели ИНС Кохонена

Входной порт данных работает следующим образом. Из именованной ячейки curSmpl копируется номер текущего учебного образа k. По этому номеру с помощью функции Excel СМЕЩ() в ячейки входного порта данных считываются координаты k-го учебного образа активной выборки. Полученные через этот порт координаты текущего учебного образа поступают на входы слоя нейронов Кохонена (рис.3.35б), в конечном счете, определяя номер очередного нейрона-победителя.

Для образцов выборки создадим рабочий лист "Выборки", с которого данные будут поступать на входной порт (рис. 3.24).

Рис. 3.24. Рабочий лист "Выборки"

Для ввода обучающих образцов на входной порт данных используем следующие формулы:

1. в проименованную ячейку "к" введем R[3]C[-1]:R[3]C[2]

2. в ячейки[R11C5:R11C6]:= =СМЕЩ(Выборки!R[-5]C;k;0)

Теперь данные из таблицы "Выборки" могут поступать на входной порт данных.

С помощью таблицы подстановки (рис.3.25) определим к каким кластерам относятся образцы. В столбце "к" указан номер образца, в столбце "winner" - нейрон- победитель.

Рис. 3.25. Таблица подстановки

На листе "Выборки" создадим дополнительный столбец с номером кластера (рис. 3.26)

Рис. 3.26. Лист "Выборки"

На данном рисунке видно какой класс образцов кластеризует каждый нейрон. Это означает, что к образцам отнесены кластеры (табл. 3.1).

Номер кластера в таблице соответствует номеру соответствующего нейрона на карте Кохонена. Видим, что во 2-ом и 3-ем классах встречаются одинаковые нейроны (2, 22).

Это говорит о том, что классификация образцов на границе классов происходит неоднозначно и встречаются пересечения.

Табл. 3.1

Классификация нейронов

1 класс

2 класс

3 класс

12

0

2

18

1

3

19

2

4

24

6

4

25

7

8

26

13

9

14

10

14

10

15

11

20

16

21

16

22

17

27

22

28

23

28

Если сформировать произвольный образец, то карта Кохонена должна указать его принадлежность к тому или иному кластеру:

3.7 Тестирование сети

Для тестирования работоспособности табличной модели ИНС Кохонена использовались четыре двумерных и одна четырехмерная выборки образов, графические представления которых показаны на рис. 3.27 слева.

Рис. 3.27. Вид самоорганизующейся карты Кохонена для трех тестовых выборок учебных образов перед и после выполнения 25 циклов итераций (скорость обучения =1, доля эпох взаимодействия 0.7).

Первая выборка содержит 8000 учебных образов равномерно распределенных по плоскости карты.

Вторая выборка содержит 4000 учебных образов, пространственное распределение которых в проекции на самоорганизующеюся карту Кохонена имеет круговое распределение.

Выборка 3 состоит из 150 норированных образцов на плоскости задачи Ирисы Фишера.

Выборка 4 так же состоит из образцов задачи Ирисы Фишера, но уже с 4-мя координатами.

Выборка 5 включает в себя 2000 образцов на плоскости с треугольным расположением.

Третья выборка содержит 150 учебных образов известной задачи Фишера о цветках ириса, широко используемой в качестве типовой выборки при классификации образов с помощью ИНС на базе многослойных персептронов. В нашем случае выборка содержит три класса цветков ириса, по 50 образов в каждом классе. При этом чтобы обеспечить неискаженную графическую иллюстрацию процесса обучения сети в двумерном пространстве, используются только два главных параметра цветков ириса из четырех, которых, как показывает опыт, тем не менее достаточно для удовлетворительной классификации цветков ириса.

Основным отличием данной выборки от двух предыдущих является то, что третий класс ее учебных образов пространственно отделен от образов других классов. Поэтому в первой фазе обучения ИНС Кохонена несколько нейронов на самоорганизующейся карте оказываются связанными как с нейронами-победителями, находящимися в области учебных образов первых двух классов, так с нейронами-победителями, находящимися в области учебных образов третьего класса и, следовательно, в ходе обучения увлекаются то в одну, то в другую область пространства образов. Именно эти нейроны, имеющие в пространстве образов промежуточное положение, являются "мертвыми", т.е. ни разу не выигрывают во второй фазе обучения ИНС Кохонена.

Тестирование сети на выборке "Ирисы фишера"

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

Рассмотрим задачу распознавании образов, которую часто берут за образец при проверке методов. Это -- задача Фишера об ирисах. Точный тест Фишера - тест статистической значимости, используемый в анализе таблиц сопряжённости для выборок маленьких размеров. Назван именем своего изобретателя Р. Фишера. Относится к точным тестам значимости, поскольку не использует приближения большой выборки (асимптотики при размере выборки стремящемся к бесконечности). На создание этого теста Фишера побудило высказывание Муриэль Бристоль, которая утверждала, будто была в состоянии обнаружить, в какой последовательности чай и молоко были налиты в её чашку. Тест обычно используется, чтобы исследовать значимость взаимосвязи между двумя переменными в факторной таблице размерности (таблице сопряжённости признаков). Величина вероятности теста вычисляется, как если бы значения на границах таблицы известны. Например, в случае с дегустацией чая госпожа Бристоль знает число чашек с каждым способом приготовления (молоко или чай сначала), поэтому якобы предоставляет правильное число угадываний в каждой категории. Как было указано Фишером, в предположении нуль-гипотезы о независимости испытаний это ведёт к использованию гипергеометрического распределения для данного счёта в таблице.

С большими выборками в этой ситуации может использоваться тест хи-квадрат. Однако этот тест не является подходящим, когда математическое ожидание значений в любой из ячеек таблицы с заданными границами оказывается ниже 10: вычисленное выборочное распределение испытуемой статистической величины только приблизительно равно теоретическому распределению хи-квадрат, и приближение неадекватно в этих условиях (которые возникают, когда размеры выборки малы, или данные очень неравноценно распределены среди ячеек таблицы).

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

Для тестирования сети необходимо ввести на вход неизвестные образцы. На (табл. 3.2) показана обученная сеть.

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

Табл. 3.2

Координаты нейронов обученой сети Кохонена

Слой нейронов Кохонена

0,0000

0,0000

X3

X4

r(x-wi)

0

0,0000

0,0000

0,2203

0,1944

0,0000

1

0,0000

0,0000

0,3555

0,3332

0,0000

2

0,0000

0,0000

0,3164

0,4167

0,0000

3

0,0000

0,0000

0,3729

0,5833

0,0000

4

0,0000

0,0000

0,4305

0,8500

0,0000

5

0,0000

0,0000

0,6320

0,9048

0,0000

6

0,0000

0,0000

0,1864

0,1667

0,0000

7

0,0000

0,0000

0,1299

0,1111

0,0000

8

0,0000

0,0000

0,1866

0,3332

0,0000

9

0,0000

0,0000

0,3983

0,5000

0,0000

10

0,0000

0,0000

0,5738

0,6905

0,0000

11

0,0000

0,0000

0,9435

0,7500

0,0000

12

0,0000

0,0000

-0,8004

-0,7222

0,0000

13

0,0000

0,0000

0,0049

0,0116

0,0000

14

0,0000

0,0000

-0,0004

-0,1661

0,0000

15

0,0000

0,0000

0,2543

0,2499

0,0000

16

0,0000

0,0000

0,5593

0,4167

0,0000

17

0,0000

0,0000

0,7966

0,5000

0,0000

18

0,0000

0,0000

-0,8373

-0,8333

0,0000

19

0,0000

0,0000

-0,9322

-0,8833

0,0000

20

0,0000

0,0000

-0,1920

-0,2361

0,0000

21

0,0000

0,0000

0,1153

-0,0250

0,0000

22

0,0000

0,0000

0,3559

0,1833

0,0000

23

0,0000

0,0000

0,6269

0,2502

0,0000

24

0,0000

0,0000

-0,8767

-0,9167

0,0000

25

0,0000

0,0000

-0,8039

-0,9167

0,0000

26

0,0000

0,0000

-0,8712

-1,0000

0,0000

27

0,0000

0,0000

0,2203

-0,0278

0,0000

28

0,0000

0,0000

0,2542

0,0833

0,0000

29

0,0000

0,0000

0,5586

0,0834

0,0000

Минимальное расстояние

0,0000

Winner

i

j

0

0

0

Для тестирования возьмем из выборки неиспользованные образцы (табл. 3.3):

- 1 класс (с 41 по 50)

- 2 класс (с 91 по 100)

- 1 класс (с 141 по 150)

Табл.3.3

Выборка для тестирования

Выборка для тестирования 41-50, 91-100, 141-150

n

X1

X2

X3

X4

Класс

Кластер

1

0

0

-0,86441

-0,83333

1

18

2

0

0

-0,79661

-0,91667

1

25

3

0

0

-0,86441

-1

1

26

4

0

0

-0,89831

-0,83333

1

19

5

0

0

-0,76271

-0,83333

1

18

6

0

0

-0,83051

-0,83333

1

18

7

0

0

-0,76271

-0,91667

1

25

8

0

0

-0,83051

-0,75

1

12

9

0

0

-0,83051

-0,91667

1

25

10

0

0

-0,83051

-0,91667

1

25

11

0

0

-0,32203

-0,16667

2

20

12

0

0

0,050847

0

2

13

13

0

0

0,254237

0,083333

2

28

14

0

0

-0,11864

0

2

13

15

0

0

0,322034

0,166667

2

22

16

0

0

0,016949

0

2

13

17

0

0

0,016949

0

2

13

18

0

0

0,152542

0,083333

2

7

19

0

0

0,288136

0,083333

2

28

20

0

0

0,355932

0,333333

2

1

21

0

0

0,627119

0,416667

3

16

22

0

0

0,627119

0,75

3

10

23

0

0

0,491525

0,666667

3

10

24

0

0

0,728814

1

3

5

25

0

0

0,389831

0,583333

3

3

26

0

0

0,457627

0,5

3

9

27

0

0

0,525424

0,666667

3

10

28

0

0

0,355932

0,583333

3

3

29

0

0

0,389831

0,916667

3

4

30

0

0

0,694915

1

3

5

После этого проводим кластерезацию образцов и сравниваем полученный выход с требуемым. Заносим данные в (табл. 3.4).

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

Табл.3.4

Классификация тестовых образцов

Образцы 41-50, 91-100, 141-150

1 класс

2 класс

3 класс

1

3

12

7

4

18

13

5

19

20

9

25

22

10

26

28

16

Можно сделать вывод о том, что созданная нейронная сеть обучена и работает корректно.

3.8 Создание, обучение и тестирование сети Кохонена в Matlab

3.8.1 Обоснование выбора среды для создания сети

Программное обеспечение, позволяющее работать с картами Кохонена, сейчас представлено множеством инструментов. К инструментарию, включающему реализацию метода карт Кохонена, относятся Matlab Neural Network Toolbox, SoMine, Statistica, NeuroShell, NeuroScalp, Deductor и множество других.

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

- сбор и обработка информации;

- возможность математических вычислений;

- наглядный вывод результатов моделирования;

- наличие оптимизационных процедур;

- открытость архитектуры;

- интеграция с офисными приложениями;

- возможность использования программных модулей, написанных на других языках программирования.

Всем указанным требованиям отвечает интегрированная среда математического моделирования MATLAB.

3.8.2 Архитектура сети

Промоделированная архитектура самоорганизующейся карты Кохонена в MATLAB NNT показана на рис. 328.

Рис. 3.28 . Архитектура самоорганизующейся карты Кохонена

Эта архитектура аналогична структуре слоя Кохонена за исключением того, что здесь не используются смещения. Конкурирующая функция активации возвращает 1 для элемента выхода , соответствующего победившему нейрону; все другие элементы вектора равны 0.

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

3.8.3 Создание сети

Для создания самоорганизующейся карты Кохонена в составе ППП MATLAB NNT предусмотрена М-функция newsom. По условиям задачи нам требуется создать сеть для обработки двухэлементных векторов входа с диапазоном изменения элементов от -1 до 1 и от -1 до 1 соответственно. Предполагается использовать гексагональную сетку размера 6x5. Тогда для формирования такой нейронной сети достаточно воспользоваться оператором:

net = newsom([-1 1; -1 1], [6 5])

net.layers{1}

ans =

dimensions: [6 5]

distanceFcn: 'linkdist'

distances: [30x30 double]

initFcn: 'initwb'

netInputFcn: 'netsum'

positions: [2x30 double]

size: 30

topologyFcn: 'hextop'

transferFcn: 'compet'

userdata: [1x1 struct]

Рис. 3.29. Начальные входы нейрнов.

Из анализа характеристик этой сети следует, что она использует по умолчанию гексагональную топологию hextop и функцию расстояния linkdist.

Для обучения сети зададим следующие 120 двухэлементных векторов входа, а 30 образцов, по 10 из каждого класса оставим для тестирования сети:

P=[-0.86 -0.86 … n; 0.58 0.41 … n]

Построим на топографической карте начальное расположение нейронов карты Кохонена (рис. 3.30):

hold on

plot(P(1,;),P(2,:), '*к','markersize',10)

Рис. 3.30 . Расположение выборки обучающих образцов

Векторы входа помечены символом * и расположены по периметру рисунка, а начальное расположение нейронов соответствует точке с координатами (1, 0.5).

3.8.4 Обучение сети

Обучение самоорганизующейся карты Кохонена реализуется повекторно независимо от того, выполняется обучение сети с помощью функции trainwbl или адаптация с помощью функции adaptwb. В любом случае функция learnsom выполняет настройку элементов весовых векторов нейронов.

Прежде всего определяется нейрон-победитель и корректируются его вектор весов и векторы весов соседних нейронов согласно соотношению:

(3.8)

где - параметр скорости обучения; - массив параметров соседства для нейронов, расположенных в окрестности нейрона-победителя i, который вычисляется по соотношению:

(3.9)

где - элемент выхода нейронной сети; - расстояние между нейронами i и j; - размер окрестности нейрона-победителя.

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

Процесс обучения карты Кохонена включает 2 этапа: этап упорядочения векторов весовых коэффициентов в пространстве признаков и этап подстройки. При этом используются следующие параметры обучения сети (таблица 3.4):

Табл. 3.4

Параметры обучения сети

Параметры обучения и настройки карты Кохонена

Значение по умолчанию

Количество циклов обучения

neе.trainParamepochs

N

>1000

Количество циклов на этапе упорядочения

netinputWeights{1,1}.learnParam.order_steps

S

1000

Параметр скорости обучения на этапе упорядочения

net.inputWeights{1,1}.leamParam.order_lr

order_lr

0.9

Параметр скорости обучения на этапе подстройки

net.inputWeights{1,1}.learnParam.tune_lr

tune

0.02

Размер окрестности на этапе подстройки

net.inputWeights(1,1).learnParam.tune_nd

tune_nd

1

В процессе построения карты Кохонена изменяются 2 параметра: размер окрестности и параметр скорости обучения.

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

(3.10)

где

- максимальное расстояние между нейронами; - номер текущего шага.

Параметр скорости обучения изменяется по правилу:

) (3.11)

Таким образом, он уменьшается от значения order_lr до значения tune_lr.

Этап подстройки. Этот этап продолжается в течение оставшейся части процедуры обучения. Размер окрестности на этом этапе остается постоянным и равным:

nd = tune_nd + 0.00001 (3.12)

Параметр скорости обучения изменяется по следующему правилу:

(3.13)

Параметр скорости обучения продолжает уменьшаться, но очень медленно, и именно поэтому этот этап именуется подстройкой. Малое значение окрестности и медленное уменьшение параметра скорости обучения хорошо настраивают сеть при сохранении размещения, найденного на предыдущем этапе. Число шагов на этапе подстройки должно значительно превышать число шагов на этапе размещения. На этом этапе происходит тонкая настройка весов нейронов по отношению к набору векторов входа.

Как и в случае слоя Кохонена, нейроны карты Кохонена будут упорядочиваться так, чтобы при равномерной плотности векторов входа нейроны карты Кохонена также были распределены равномерно. Если векторы входа распределены неравномерно, то и нейроны на карте Кохонена будут иметь тенденцию распределяться в соответствии с плотностью размещения векторов входа.

Таким образом, при обучении карты Кохонена решается не только задача кластеризации входных векторов, но и выполняется частичная классификация.

Выполним обучение карты:

Зададим количество циклов обучения равным 500:

net.trainParam.epochs = 500

net.trainParam.show = 100

net = train (net, P)

plot(P(1,:),P(2,:), '*', 'markersize',10)

hold on

plotsom(net.iw{1*1},net.layers{1}.distances)

Результат обучения представлен на рис. 3.31.

Рис. 3.31. Карта Кохонена обученная

Положение нейронов и их нумерация определяются массивом весовых векторов, который для данного примера имеет вид:

net.IW{l}

ans =

1. -0.8545 -0.8994

2. -0.7932 -0.8143

3. -0.2709 -0.2603

4. 0.1882 0.2544

5. 0.3662 0.5626

6. 0.4867 0.7698

7. -0.8393 -0.8660

8. -0.3886 -0.3762

9. 0.1418 0.1526

10. 0.2705 0.3433

11. 0.4644 0.6633

12. 0.5763 0.8375

13. -0.5093 -0.5309

14. -0.2643 -0.2911

15. 0.1246 0.0871

16. 0.2464 0.2180

17. 0.3882 0.3787

18. 0.6330 0.6630

19. -0.0016 -0.1233

20. 0.0864 -0.0209

21. 0.1945 0.0661

22. 0.3692 0.2297

23. 0.5971 0.4455

24. 0.7805 0.6008

25. -0.0040 -0.1857

26. 0.0668 -0.0835

27. 0.1446 -0.0139

28. 0.2837 0.0732

29. 0.5270 0.2719

30. 0.7390 0.4789

Пронумеруем на карте Кохонена кластеры и линией отделим один класс от другого (рис. 3.32).

Рис. 3.32. Карта Кохонена в Matlab

Если промоделировать карту Кохонена на массиве обучающих векторов входа, то будет получена принадлежность нейронов к определенному классу (табл. 3.5):

Табл. 3.5

Классификация нейронов

1 класс

2 класс

3 класс

1

3

4

2

4

5

7

9

6

10

10

15

12

16

17

19

18

20

22

21

23

22

24

25

29

26

30

27

28

Это означает, что векторы входов 1, 2, 7 отнесены к классу с номером 1, векторы 3,4, 9, 10, 15, 16, 19, 20, 21, 22, 25, 26, 27, 28 - к клаccу 2, векторы 4, 5, 6, 10, 12, 17, 18, 22, 23, 24, 29, 30 - к классcу 3. Номер кластера в таблице соответствует номеру соответствующего нейрона на карте Кохонена. Видим, что во 2-ом и 3-ем классах встречаются одинаковые нейроны. Это говорит о том, что классификация образцов на границе классов происходит неоднозначно и встречаются пересечения.

Если сформировать произвольный вектор входа, то карта Кохонена должна указать его принадлежность к тому или иному кластеру:

а = sim(net,[1; 1])

а = (12,1) 1.

В данном случае представленный вектор входа отнесен к кластеру с номером 12. Векторов такого сорта в обучающей последовательности не было. Можно сделать вывод, что сеть обучена и может классифицировать неизвестные векторы.

3.8.5 Тестирование сети

Для проверки правильности обучения построенной нейронной сети в нейроимитаторах предусмотрены специальные средства ее тестирования. В сеть вводится некоторый сигнал, который, как правило, не совпадает ни с одним из входных сигналов примеров обучающей выборки. Далее анализируется получившийся выходной сигнал сети.

Тестирование обученной сети может проводиться либо на одиночных входных сигналах, либо на тестовой выборке, которая имеет структуру, аналогичную обучающей выборке, и также состоит из пар (<вход>, <требуемый выход>). Обычно, обучающая и тестовая выборки не пересекаются. Тестовая выборка строится индивидуально для каждой решаемой задачи.

Для тестирования сети необходимо ввести на вход неизвестные образцы. На (рис. 13) показана обученная сеть. Для тестирования возьмем 12 образцов с явной принадлежностью к определенному нейрону, т.е. образец должен находиться к одному нейрону ближе чем к остальным.

Для тестирования возьмем из выборки неиспользованные образцы (табл. 1):

- 1 класс (с 41 по 50)

- 2 класс (с 91 по 100)

- 1 класс (с 141 по 150)

Сформируем последовательности векторов для каждого класс отдельно и промоделируем карту Кохонена на полученных массивах:

- 1 класс

P=[-0.898 -0.864 -0.796 -0.864 -0.898 -0.762 -0.830 -0.762 -0.830 -0.830 -0.830; -0.75 -0.833 -0.916 -1 -0.833 -0.833 -0.83333 -0.916 -0.75 -0.916 -0.916]

a = sim(net,P)

a =

(2,1) 1

(7,2) 1

(1,3) 1

(1,4) 1

(7,5) 1

(2,6) 1

(7,7) 1

(7,8) 1

(2,9) 1

(1,10) 1

(1,11) 1

- 2 класс

P=[-0.32 0.05 0.25 -0.11 0.32 0.01 0.01 0.15 0.28 0.35; -0.16 0 0.08 0.16 0 0 0.083 0.08 0.33]

а = sim(net,P)

a =

(3,1) 1

(20,2) 1

(28,3) 1

(19,4) 1

(22,5) 1

(20,6) 1

(20,7) 1

(15,8) 1

(28,9) 1

(19,10) 1

- 3 класс

P=[0.627 0.627 0.491 0.728 0.389 0.457 0.525 0.355 0.389 0.694; 0.416 0.75 0.666 1 0.583 0.5 0.666 0.583 0.916 1]

a = sim(net,P)

a =

(23,1) 1

(18,2) 1

(11,3) 1

(12,4) 1

(5,5) 1

(5,6) 1

(11,7) 1

(5,8) 1

(6,9) 1

(12,10) 1

После этого проводим кластерезацию образцов и сравниваем полученный выход с требуемым. Заносим данные в (табл. 3.6).

Табл. 3.6

Классификация тестовых образцов

1 класс

2 класс

3 класс

1

3

4

2

4

5

7

9

6

10

10

15

12

16

17

19

18

20

22

21

23

22

24

25

29

26

30

27

11

28

Сравнивая табл. 3.5 и табл. 3.6 видим, что фактические и требуемые значения совпадают, карта Кохонена указывает принадлежность к тому или иному кластеру верно. Во втором классе встречается 22-ой кластер, который не однозначно классифицирует образцы.

Можно сделать вывод о том, что созданная нейронная сеть обучена и работает корректно. Нейроны с номерами 4, 10, 22 классифицируют неоднозначно, потому что находятся в зоне границы двух классов. Для решения этой проблемы можно увеличить количество нейронов в сети.

3.9 Сравнение результатов кластеризации в Matlab и Excel

Теперь для более объективной оценки работы нейронной сети обучим нейронную сеть 4000 образцов.

Построим на топографической карте начальное расположение нейронов карты Кохонена (рис. 3.33):

hold on

plot(P(1,;),P(2,:), '*к','markersize',10)

Рис. 3.33 . Расположение выборки из 4000 обучающих образцов

Векторы входа помечены символом * и, а начальное расположение нейронов соответствует точке с координатами (1, 0.5).

Обучение сети

Прежде всего определяется нейрон-победитель и корректируются его вектор весов и векторы весов соседних нейронов согласно соотношению:

Весовые векторы нейрона-победителя и соседних нейронов изменяются в зависимости от значения параметра соседства.

Веса нейрона-победителя изменяются пропорционально параметру скорости обучения, а веса соседних нейронов - пропорционально половинному значению этого параметра.

Выполним обучение карты:

Зададим количество циклов обучения равным 500:

net.trainParam.epochs = 500

net.trainParam.show = 100

net = train (net, P)

plot(P(1,:),P(2,:), '*', 'markersize',5)

hold on

plotsom(net.iw{1*1},net.layers{1}.distances)

Результат обучения представлен на рис. 3.34.

Рис. 3.34 . Карта Кохонена обученная

Положение нейронов и их нумерация определяются массивом весовых векторов, который для данного примера имеет вид рис. 3.35:

Рис. 3.35. Массив весовых векторов

Заключение

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

На основе анализа и обработки специальной литературы и ресурсов Интернет были проработаны, выявлены и применены принципы и знания из теории нейробиологии, нейроинформатики, кибернетики, искусственного интеллекта, искусственных нейронных сетей и нейросетвой самоорганизации, персептронов, кластеризации и категоризации объектов, анализа сцен, машинного распознавания образов, теории множеств, дискретной математики. Для исследования проблемы была введена большая база данных (БД) из эталонных образов, состоящая из разновидностей пяти выборок данных для обучения нейронной сети.

Список литературы

искусственный нейронный сеть клеточный

1. Антонов А.С. Введение в параллельные вычисления. Методическое пособие / А.С. Антонов. - М.: Изд-во МГУ, 2002. - 70 с.

2. Букатов А.А., Дацюк В.Н., Жегуло А.И. Программирование многопроцессорных вычислительных систем / А.А. Букатов, В.Н. Дацюк, А.И. Жегуло. - Ростов-на-Дону: Изд-во ООО "ЦВВР", 2003. - 208 с.

3. Буцев А.В., Первозванский А.А. Локальная аппроксимация на искусственных нейросетях / А.В. Буцев // Автоматика и Телемеханика 1995. №9. С. 127-136

4. Вальковский В.А., Котов В.Е., Марчук А.Г., Миренков Н.Н. Элементы параллельного программирования / В.А. Вальковский, В.Е. Котов, А.Г. Марчук, Н.Н. Миренков. - М.: Радио и связь, 1983. - 240 с.

5. Вапник В.Н. Восстановление зависимостей по эмпирическим данным / В.Н. Вапник. - М.: Наука, 1980, 520 с.

6. Васильев Д. Знакомьтесь, Erlang / Д. Васильев // Системный администратор. - 2009. - №8

7. Воеводин В.В. Математические модели и методы в параллельных процессах / В.В. Воеводин. - М.: Наука, 1986, 296 с.

8. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления / В.В. Воеводин, Вл.В. Воеводин. - СПб.ГУ, 1997. - 308 с.

9. Воронцов, К. В., Лекции по искусственным нейронным сетям // К.В. Воронцов. - Воронеж, 2007. - 29 с.

10. Галушкин А.И. Нейронные сети. Основы теории / А.И. Галушкин. - М.: Горячая линия - Телеком, 2012. - 496 с.

11. Галушкин А.И. Нейронные сети: история развития: учеб. Пособие для вузов / А.И. Галушкин, Я.З. Цыпкин. - М.: ИПРЖ, 2001. - 839 с.

12. Герасименко М.С. Вычисление искусственных нейронных сетей на вычислительных кластерах или ЛВС / М.С. Герасименко / Вестник Воронежского государственного университета, Серия: Системный анализ и информационные технологии, №1, 2010. - С. 120-125

13. Головко В.А. Нейронные сети: обучение, организация и применение / В.А. Головко. - М.: ИПРЖР, 2001, 256 с.

14. Горбань А.Н. Обобщенная аппроксимационная теорема и вычислительные возможности нейронных сетей / А. Н. Горбань // Сибирский журнал вычислительной математики - 1998. - Т. 1, №1. - С. 12-24

15. Горбань А.Н. Обучение нейронных сетей / А.Н. Горбань. - М.: Параграф, 1990. - 160 с.

16. Городняя Л.В. Основы функционального программирования. Курс лекций / Л.В. Городняя. - М.: Интернет-университет информационных технологий, 2004. 280 с.

17. Демиденко Е.З. Оптимизация и регрессия / Е.З. Демиденко. - М.: Наука, 1989. - 293с.

18. Дорогов А.Ю. Быстрые нейронные сети / А.Ю. Дорогов. - СПб.: СПУ, 2002. - 80 с.

19. Ионов С.Д. Распределенная потоковая нейронная сеть / С.Д. Ионов // Современные проблемы математики: тез. 42-й Всеросс. молодежн. шк.-конф., 30 янв. - 6 февр. 2011 г. Екатеринбург: ИММ УрО РАН, 2011. С. 288-290

20. Калинин А.В. Математическое и программное обеспечение массивнопараллельных вычислений в распределенных системах на базе аппарата нейронных сетей: Дис. канд. техн. наук. - Воронеж, 2003. - 157 с.

21. Калинин А.В., Подвальный, С.Л. Технология нейросетевых распределенных вычислений / А.В. Калинин, С.Л. Подвальный. - Воронеж: ВГУ, 2004. - 121 с.

22. Каллан Р. Основные концепции нейронных сетей / Р. Каллан. - М.: Вильямс, 2001. - 288 с.

23. Классификация параллельных вычислительных систем. [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/Классификация параллельных вычислительных систем.

24. Королюк В.С. Справочник по теории вероятностей и математической статистике / В.С. Королюк, Н.И. Портенко, А.В. Скротоход, А.Ф. Турбин. - М.: Наука, Главная редакция физико-математической литературы, 1985. - 640 с.

25. Красовский Г.И., Филаретов Г.Ф. Планирование эксперимента / Г.И. Красовский, Г.Ф. Филаретов. - Минск: изд-во БГУ, 1982. - 302 с.

26. Крил П. Функциональное программирование - друг параллелизма / П. Крил // Открытые системы. - 2010. - №8


Подобные документы

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

    курсовая работа [1,0 M], добавлен 05.01.2013

  • Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.

    презентация [387,5 K], добавлен 11.12.2015

  • Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.

    дипломная работа [1,5 M], добавлен 17.09.2013

  • Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.

    контрольная работа [229,5 K], добавлен 28.05.2010

  • Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.

    курсовая работа [2,2 M], добавлен 12.11.2010

  • Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.

    дипломная работа [2,6 M], добавлен 23.09.2013

  • Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.

    лабораторная работа [2,3 M], добавлен 25.03.2014

  • Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.

    дипломная работа [2,4 M], добавлен 07.02.2013

  • Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.

    курсовая работа [1019,5 K], добавлен 05.05.2015

  • Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.

    дипломная работа [2,0 M], добавлен 20.07.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.