Методические указания к лабораторной работе №2 (774828), страница 2
Текст из файла (страница 2)
При доказательстве сходимости коррекции весов предполагаются бесконечно малыми. Ясно, что это неосуществимо на практике, так как ведет к бесконечному времени обучения. Размер шага должен браться конечным, и в этом вопросе приходится опираться только на опыт. Если размер шага очень мал, то сходимость слишком медленная, если же очень велик, то может возникнуть паралич или постоянная неустойчивость.
Пример
1. Постановка задачи моделирования и составление входного файла.
Постановка задачи: Создать нейронную сеть, реализующую функции распознавания графических изображений - с применением модели сети обратного распространения. Изображения представим в виде двоичных векторов, закодированных следующим образом:
Табл. 1 Первый входной образ «+».
0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
0 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
Табл. 2 Второй входной образ «-».
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
Табл. 3 Третий входной образ «».
1 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
Табл. 4 Четвертый входной образ «/».
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 |
На основании этих таблиц получаем входные последовательности - четыре двоичных вектора:
-
0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0;
-
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0;
-
1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1;
-
0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0;
Выходные последовательности будут иметь такой же вид, как и входные.
Таким образом, файл с обучающей выборкой будет иметь вид:
! 2000 (plus.nni)
! "+"
i 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0
d 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0
! "-"
i 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
d 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
! "*"
i 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1
d 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1
! "/"
i 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
d 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
-
Разработка нейронной сети для моделирования задачи распознавания образов и проверка ее функционирования.
Сеть обратного распространения имеет следующие параметры:
Network Type | Hetero-Assoc. |
Control Strategy | Backprop |
Learning/Recall Schedule | Backprop |
Network Type (тип сети) - гетероассоциативная. Если сеть автоассоциативная, то значения входного вектора могут быть использованы как желаемый выход. Иначе, соответствующий выход может быть считан из файла и применен к выходному слою.
Control Strategy (управляющая стратегия) – обратного распространения, Learning/Recall Schedule (алгоритм обучения и функционирования) – обратного распространения.
Чтобы построить сеть обратного распространения для распознавания четырех изображений, необходимо создать сеть из 75 нейронов – по 25 в трех слоях: входном, скрытом и выходном. Для этого можно воспользоваться меню Instanet (bkpstd –стандартная сеть обратного распространения).
Входной слой (INPUT EDGE LAYER) имеет следующие характеристики:
Summation Function | Sum | |
Transfer Function | Linear | |
Scaling: | Scale | 1.0 |
Offset | 0.0 | |
Limits: | Low Limit | -9999. |
Hight Limit | +9999. | |
Output Function | Direct | |
Learning Rule | None |
-
Скрытый слой (Нidden Layer) имеет следующие характеристики:
Summation Function | Sum | |
Transfer Function | Sigmoid | |
Scaling: | Scale | 1.0 |
Offset | 0.0 | |
Limits: | Low Limit | -9999. |
Hight Limit | +9999. | |
Output Function | Direct | |
Learning Rule | Delta Rule |
-
Выходной слой (Output Edge Layer) имеет следующие характеристики:
Summation Function | Sum | |
Transfer Function | Sigmoid | |
Scaling: | Scale | 1.0 |
Offset | 0.0 | |
Limits: | Low Limit | -9999. |
Hight Limit | +9999. | |
Output Function | Direct | |
Learning Rule | Delta Rule |
В соответствии с технологией создания модели нейронной сети, описанной в «Лабораторной работе №1» построим сеть обратного распространения и обучим ее. Полученная сеть изображена на рис.6.
Р
ис.6. Сеть обратного распространения.
Процессорные элементы входного и выходного слоев, выделенные большими квадратами, принимают значение 1, а остальные – 0, что дает, возможность проверить работоспособность сети. Если выходной слой соответствует заданной входной выборке, то сеть функционирует правильно. Но для более наглядного отображения функционирования или обучения сети создадим инструменты:
1).Создание инструмента OUTPUT.
Вызовите в меню команду INSTRUMENT/ ADD INSTRUMENT и отредактируйте соответствующие параметры. Мышкой перетащите инструмент в левый верхний угол экрана.
-
Title : Output - название инструмента;
-
Probe : Output - имя пробы с данными;
-
Variable : Output - тип переменной в пробе;
-
Trans. mode : None - режим передачи данных;
-
Trans. Type : Root Meaning - тип обработки данных при передаче;
-
Graphing Active : Yes - флаг активности инструмента;
-
Vmin : 0.0000 - Минимальная граница диапазона выводимых значений;
-
Vmax : 1.0000 - Максимальная граница диапазона выводимых значений;
-
# x : 5 - число позиций в строке графика;
-
# plots : 25 - общее число позиций в графике;
-
height : 50 - высота инструмента в экранных пикселях;
-
width : 50 - ширина инструмента в экранных пикселях;
-
Graph Type : Bar Graph - тип графика – столбчатая диаграмма;
-
Disp. Mode : Always - режим отображения инструмента на экране.
2).Создание инструмента INPUT.
-
Создадим пробу INPUT, для этого командой меню Probe / Select/Edit в диалоговом окне в поле Name введем название пробы и кнопкой NEW добавим ее в список .
-
Добавим в новую пробу входной слой командой Probe / Add Layer. Меню надо вызвать над любым процессорным элементом этого слоя.
-
Теперь создадим инструмент INPUT. На инструменте OUTPUT вызовем команду меню Instrument / Add Instrument. В диалоговом окне надо изменить всего два параметра. После этого переместим новый инструмент под предыдущий.
-
Title : Input - название инструмента;
-
Probe : Input - имя пробы с данными;
Чтобы начать тестирование с первого входного образа, переместим указатель во входном файле на начало командой Execute Network / Rewind Input.
Команда Execute Network / Recall One вызывает первый образ, при этом он отобразится на графических инструментах (рис.7).
Р
ис. 7. Проверка функционирования сети обратного распространения с помощью инструментов.
Повторите предыдущий пункт четыре раза, пока не проверите все входные данные. Если какой-либо выходной образ не совпал с входным, необходимо еще раз обучить сеть.
Командой Network / Save Network сохраните созданную и обученную сеть.
Работу нейронной сети необходимо проверить также на неверных или неполных входных данных. Для этого необходимо выбрать команду Network / Edit и изменить в поле Recall Source имя файла обучающей выборки на имя предварительно созданного файла неполных входных образов. На рис.8-11 приведены результаты проверки функционирования сети на неполных образах.
Р
ис.8. Проверка функционирования сети с помощью инструментов на неполных образах.