Для создания модели нейронной сети АРТ требуется:
1. Запустить программу «Neural Works Professional II» файлом n2f.exe.
2. В меню InstaNet выбрать тип сети ART1 и установить 25 нейронов (M) во входном и 10 нейронов (N) в выходном слое (рис.4).
рис. 4. Создание сети с помощью InstaNet.
Созданная сеть содержит 10 слоев:
- буфер входных данных;
- слои F1 и F2 (слой сравнения и слой распознавания);
- 3 слоя из одного нейрона, которые реализуют подсистему сравнения сети АРТ1 (функции приемников G1 и G2).
Подсистема сравнения сосредоточена около слоя Gain Control. Gain Control получает двоичные входные данные из слоя IP Active и слоя F2 Active. Слой IP Active состоит из одного нейрона, который активен тогда и только тогда, когда, по крайней мере, один нейрон во входном слое активен. Слой F2 Active выполняет подобную функцию для слоя F2. Так как веса связей, приходящие в Gain Control равны +1.0 - 1.0, то слой Gain Control активен тогда и только тогда, когда входной слой активен, а слой F2 неактивен. Слой F1 получает сигналы из входного слоя, из слоя F2 и из слоя Gain Control. Постоянный входной сигнал, равный –1,5, получается за счет связи с элементом смещения Bias с фиксированным весовым коэффициентом, равным –1,5. Так как активационная функция в слое F1 ступенчатая, то определенный нейрон в слое F1 слое будет активным только, если, по крайней мере, два из его трех входов активны.
- 4 слоя из одного нейрона, с помощью которых реализуется система определения параметра сходства сети АРТ1 - слой Vigilance, слой F1 Sum, слой IP Sum и слой Reset. Слой Vigilance получает входные данные из слоя IP Sum и элемента смещения Bias. Так как в слое Vigilance в качестве функции суммирования используется произведение, то эти два входа перемножаются. Связь от элемента смещения имеет весовой коэффициент 1,0 типа «модифицированный». Это значит, что весовой коэффициент изменяется с помощью коэффициента Mod Factor в программе обучения и повторного вызова. В этом приложении Mod Factor представляет параметр сходства r (по умолчанию он равен 0,8). Выходной сигнал слоя Vigilance равен:
|
r*½I½, где ½I½- количество единичных входных элементов. Выход слоя F1 sum - ½x½, число нейронов, активных в слое F1. Из правила двух третей:
½x½=½I½, если слой F2 неактивен, и
½x½=½I&V(J) ½, если узел J слоя F2 активен, где V(J) - вектор весов от узла J.
Слой Reset вырабатывает сигнал сброса при условии, что r*½I½>½x½.
Предупреждение: вертикальный порядок расположения слоев на экране является обязательным, так как управляющая стратегия использует для определения слоев их относительное расположение на экране.
3. Для создания файла входных данных:
1) Выберите из меню Network /Edit.
2) Установите Learning Source и Recall Source на “user”.
3) Введите в качестве названия программы User I/O “artio”. Эта программа позволяет создавать файлы двумерных образов, представлять их случайным образом сети АРТ1 и наблюдать активность слоя F1.
4) Выберите Execute Network /Attention I/O из меню.
5) Введите имя файла (расширение автоматически установится на “nni, позволяя тем самым использовать файл как в режиме alpha, так и в режиме user). После ввода названия файла у вас запросят размерность матрицы входного образа nh, nv (максимум 16х16).
6) Введите nh, nv. На экране появится меню, состоящее из пунктов Scroll, Rewind, Enter, Quit, и решетка для отображения образов.
7) Поместите курсор над решеткой образа и используйте правую кнопку мышки, чтобы выключить пиксели, и левую кнопку мышки, чтобы их включить.
|
8) Когда вы будете удовлетворены образом, запишите его в файл, выбрав кнопку Enter в меню.
9) В любой момент вы можете просмотреть файл в направлении вперед или назад, выбрав кнопку Scroll, или попасть в начало или в конец файла, выбрав кнопку Rewind.
10)Выберите Ouit, чтобы выйти в Nworks.
4. В меню Network / Edit отредактируем параметры сети (рис. 5).
рис.5. Редактирование параметров сети.
· Learn Source - Alpha = chat - имя файла с обучающей выборкой;
· Recall Source - Alpha = chat - имя файла с тестами;
· Network Type = Auto-As. - тип сети авто-ассоциативная;
· Display Mode = Activation - режим отображения сети на экране;
· Control Strategy = art1 - управляющая стратегия;
· L\R Schedule = art1 - план обучения и повторного вызова;
4. Создадим пробу INPUT, для этого командой меню Probe / Select/Edit в диалоговом окне в поле Name введем название пробы и кнопкой NEW добавим ее в список (рис.6).
рис. 6. Создание пробы INPUT.
5. Добавим в новую пробу входной слой командой Probe / Add Layer. Меню надо вызвать над любым процессорным элементом этого слоя (рис. 7).
рис. 7. Добавление пробы во входной слой.
7. Создадим инструмент INPUT. Для этого командой меню Instrument / Add Instrument отредактируем соответствующие параметры (рис. 8). Мышкой перетащим инструмент в левый нижний угол экрана.
· Title: Input- название инструмента;
· Probe: Input - имя пробы с данными;
· Variable: Output - тип переменной в пробе;
· Trans. mode: None - режим передачи данных;
· Trans. Type: Root Meaning - тип обработки данных при передаче;
· Graphing Active: Yes - флаг активности инструмента;
· Vmin: 0.0000 - Минимальная граница диапазона выводимых значений;
|
· Vmax: 1.0000 - Максимальная граница диапазона выводимых значений;
· # x: 5 - число позиций в строке графика;
· # plots: 25 - общее число позиций в графике;
· height: 75 - высота инструмента в экранных пикселях;
· width: 95 - ширина инструмента в экранных пикселях;
· Graph Type: Matrix Plot - тип графика;
· Disp. Mode: Always - режим отображения инструмента на экране.
· Recall Div и Recall Rem установить соответственно в 0 и 1.
рис.8. Создание инструмента INPUT.
8. Создадим пробу F1, для этого командой меню Probe / Select/Edit в диалоговом окне в поле Name введем название пробы и кнопкой NEW добавим ее в список. Добавим в новую пробу слой F1 командой Probe / Add Layer. Меню надо вызвать над любым процессорным элементом этого слоя. Теперь создадим инструмент F1 Activity. На инструменте INPUT вызовем команду меню Instrument / Add Instrument. В диалоговом окне надо изменить всего два параметра (рис. 9). После этого переместим новый инструмент рядом с предыдущим.
· Title: F1 Activity- название инструмента;
· Probe: F1 - имя пробы с данными;
· Recall Div и Recall Rem установить соответственно в 1 и 0.
рис. 9. Создание инструмента F1 Activity.
9. Создадим пробу F2, для этого командой меню Probe/Select/Edit в диалоговом окне в поле Name введем название пробы и кнопкой NEW добавим ее в список. Добавим в новую пробу слой F2 командой Probe/Add Layer. Меню надо вызвать над любым процессорным элементом этого слоя. Создадим инструмент F2 с помощью команды меню Instrument / Add Instrument. В диалоговом окне указать следующие параметры (рис. 10). После этого переместим новый инструмент рядом с предыдущим.
· Title: F2- название инструмента;
· Probe: F2 - имя пробы с данными;
· Variable: Output - тип переменной в пробе;
· Trans. mode: None - режим передачи данных;
· Trans. Type: Root Meaning - тип обработки данных при передаче;
· Graphing Active: Yes - флаг активности инструмента;
· Vmin: 0.0000 - Минимальная граница диапазона выводимых значений;
· Vmax: 0.1 - Максимальная граница диапазона выводимых значений;
· # x: 50 - число позиций в строке графика;
· # plots: 50 - общее число позиций в графике;
· height: 10 - высота инструмента в экранных пикселях;
· width: 500 - ширина инструмента в экранных пикселях;
· Graph Type: Matrix Plot - тип графика;
· Disp. Mode: Always - режим отображения инструмента на экране.
Инструмент F2 показывает выигравший узел в слое F2.
рис. 10. Создание инструмента F2.
10. Создадим пробу Bottomup, для этого командой меню Probe / Select/Edit в диалоговом окне в поле Name введем название пробы и кнопкой NEW добавим ее в список.
Добавим в новую пробу соединения слоев F1 и F2 командой Probe/Add Active Connections. (Добавление соединений от выбранного слоя до всех активных процессорных элементов в указанном слое в список компонент пробы).
Для этого необходимо выделить любой ПЭ слоя F2, указать курсором на любой элемент слоя F1. Меню надо вызвать над любым процессорным элементом слоя F1(рис. 11).
рис. 11. Создание пробы Bottomup.
11. Создадим инструмент Weber Law. Для этого командой меню Instrument / Add Instrument отредактируем соответствующие параметры (рис. 12). Мышкой перетащим инструмент к предыдущему.
· Title: Weber Law- название инструмента;
· Probe: Bottomup - имя пробы с данными;
· Variable: weight - тип переменной в пробе;
· Trans. mode: None - режим передачи данных;
· Trans. Type: Root Meaning - тип обработки данных при передаче;
· Graphing Active: Yes - флаг активности инструмента;
· Vmin: 0.0000 - Минимальная граница диапазона выводимых значений;
· Vmax: 0.2000 - Максимальная граница диапазона выводимых значений;
· # x: 5 - число позиций в строке графика;
· # plots: 25 - общее число позиций в графике;
· height: 75 - высота инструмента в экранных пикселях;
· width: 95 - ширина инструмента в экранных пикселях;
· Graph Type: Bar Graph - тип графика;
· Disp. Mode: Always - режим отображения инструмента на экране.
Инструмент Weber Law отображает весовые коэффициенты от слоя F1 до выигравшего нейрона. В конце функционирования он должен быть похож на инструмент F1 Activity. Высота элементов матрицы иллюстрирует закон Вебера, который определяет обратную зависимость между сложностью образа (количеством активных нейронов) и величиной весовых коэффициентов связей от слоя F1 к слою F2.
рис. 12. Создание инструмента Weber Law.
12. Придадим весам сети случайные начальные значения. Для этого укажите на слой F2 и выберите Layer / Randomize Weights. Установите нижний предел на 0.0 и верхний на 1/25, где 25 – это количество ПЭ в слое F1. Это рандомизирует все переменные весовые коэффициенты, приходящие в слой F2; в результате весовые коэффициенты связей от слоя F1 к F2 примут случайные значения в этом диапазоне (рис.13).
Предупреждение: не рандомизируйте всю сеть (Network/Randomize weights).
рис. 13. Установка весовых коэффициентов.
13.
Обучим нейронную сеть. Командой Execute Network / Learn N установим количество циклов обучения в 4000 (рис. 14).
рис. 14. Обучение сети АРТ.
14. Чтобы начать тестирование с первого входного образа, переместим указатель во входном файле на начало командой Execute Network / Rewind Input (рис. 15).
рис.15. «Перемотка» входного файла на начало.
15. Команда Execute Network / Recall One вызывает первый образ, при этом он отобразится на графических инструментах (рис. 16).
рис. 16. Определение категории для образа «0».
16. Повторите предыдущий пункт пять раз, пока не проверите все входные данные (см. рис. 17 – 18). Если какой-либо выходной образ не совпал с входным, необходимо еще раз обучить сеть. Для этого повторите выполнение пунктов 12 – 14.
рис. 17. Определение категории для образа «7»
рис. 18. Определение категории для образа «9».
17. Командой Network / Save Network сохраните созданную и обученную сеть.
18. Проверим работу нейронной сети на неверных входных данных. Для этого создайте файл chat_bad в соответствии с п.3, выберите команду Network / Edit и измените в Recall Source имя файла с «chat» на «chat_bad». Затем выполните команды Execute Network / Rewind Input и Execute Network / Recall One. Результаты показаны на рис.19-20.
рис. 19. Определение категории для образа «1» с шумом.
рис. 20. Определение категории для неполного образа «4».
19. В соответствии с алгоритмом функционирования сети АРТ при незнакомом, т. е. новом входном образе, сеть должна выделить еще не задействованный нейрон в слое распознавания. Проверим это, подав на вход сети букву S, результаты работы модели можно наблюдать на графических инструментах (рис.21).
рис. 21. Определение категории для нового образа.
ВЫВОДЫ:
Поставленная задача классификации образов решена, каждому из входных векторов поставлена в соответствие определенная категория, сеть правильно функционирует на неправильных и неполных входных образах, а также способна запомнить во время функционирования новый входной образ:
Образ: № ПЭ в выходном слое (категория):
“0” 62
“1” 60
“4” 59
“7” 66
“9” 65
“1” с шумом 60
“4” неполный образ 59
“S” 67
Использование инструментов помогло наблюдать за процессом функционирования: так инструмент Input демонстрирует входной образ, инструмент F1 Activity - выходы слоя F1, инструмент Weber Law - активные соединения от слоя F1 к слою F2, инструмент F2 -- выигравший нейрон, то есть категорию входного образа.