Инструкция по работе с программой «Нейросимулятор» (на примере моделирования таблицы умножения)
Программа «Нейросимулятор» позволяет создавать и применять нейронные сети персептронного типа.
Рис. 1. Рабочее окно программы «Нейросимулятор»
Программа «Нейросимулятор» может работать в четырех режимах: «Проектирование сети», «Обучение», «Проверка» и «Прогноз». Переход из одного режима в другой осуществляется путем нажатия соответствующих закладок, расположенных в верхней части рабочего окна (см. рис. 1).
В режиме «Проектирование сети» имеется возможность изменять ко- личество входных и выходных нейронов, количество скрытых слоев, количе- ство нейронов в скрытых слоях, виды и параметры активационных функций. Причем, всякое изменение структуры сети автоматически отражается на ее графическом представлении.
Попробуйте поменять структуру персептрона – добавить один или два нейрона в скрытый слой, изменить количество входных и выходных нейро- нов. Обратите внимание на возможность запоминания внесенных изменений с помощью клавиш, расположенных в верхнем левом углу рабочего окна: «Сохранить проект» и «Загрузить проект». Сохранение текущих состояний вашего проекта рекомендуется периодически производить на всех стадиях его выполнения.
После экспериментов с изменением структуры сети, верните ее в пер- воначальное состояние, нажав кнопку «Сбросить настройки». Убедившись, что ваш персептрон имеет два входа и один выход, переведите программу в режим «Обучение», нажав соответствующую закладку в верхней части рабо- чего окна. Теперь Ваша цель состоит в том, чтобы создать множество обуча-
ющих примеров. В нашем случае – это таблица умножения, которой нужно обучить персептрон. Нажимая несколько раз кнопку «Добавить обучающий пример» (на кнопке изображен знак «+»), введите цифры, как показано на рис. 2. Это и есть множество обучающих примеров, в данном случае – табли- ца умножения на 2 и на 3.
Обратите внимание, что в вашей таблице умножения не хватает одного примера: 2 5 10. Этот пример «забыт» специально. После того, как нейросеть будет обучена, мы спросим ее, сколько будет 25 и проверим, та- ким образом, ее способность к обобщению.
Рис. 2. Введено обучающее множество примеров – таблица умножения на 2 и на 3
Обратите внимание на то, что «по молчанию» в программе «Нейроси- мулятор» (см. рис.2) выбран алгоритм обратного распространения ошибки, что коэффициент скорости обучения установлен 0,08, а количество эпох обу- чения – 300, что начальные значения синаптических весов (инициализация весов) заданы случайно по стандартному закону распределения.
Нажав клавишу «Обучить сеть», вы запустите процесс обучения пер- септрона методом обратного распространения ошибки, который будет отоб- ражаться в виде графика зависимости максимальной (синий цвет) и средне- квадратичной (красный цвет) ошибок обучения от числа эпох обучения (см.
рис. 3).
После выполнения 300 эпох обучение прекращается, однако вы его можете продолжить, нажимая клавишу «Учимся», причем при каждом нажа- тии этой клавиши процесс обучения продляется еще на 300 эпох. Обратите внимание, что нужное количество эпох обучения (например, 1000 вместо 300) можно задать до начала процесса обучения.
Рис. 3. Графическое отображение процесса обучения сети
Рис. 4. В режиме «Проверка» можно сравнить желаемые выходы сети d1 с его действительными выходами y1
Если ошибка обучения не будет снижаться, нажмите кнопку «Закрыть» и начните процесс обучения заново. Добившись снижения максимальной ошибки обучения, например, до 0,01, закройте графическое изображение (нажатием клавиши «Закрыть») и переведите программу в режим «Провер- ка». Нажмите кнопку «Скопировать из обучающих примеров», а затем – кнопку «Вычислить». В появившемся окне (рис. 4) вы можете сравнить же- лаемые выходы сети (d1) с тем, что насчитал обученный вами персептрон (y1). Например, как видно из первой строки, вместо того, чтобы выдать
21 2, персептрон |
ответил: |
2 1 2,0901. |
Ошибка обучения |
L на этом |
|||
примере составила: |
2,0902 2 |
0,0902 |
, что в процентах (относительно мак- |
||||
симального |
значения |
выхода |
сети |
max(d1) 27 |
составляет: |
0,0902 |
100% |
|
27 |
||
|
1,003%
.
Аналогично можно подсчитать ошибку обучения на втором примере:
4,0617 4
27
100%
0,002%
, затем на третьем и т.д., а затем выбрать макси-
мальную по всем примерам относительную ошибку обучения персептрона. Значение этой ошибки можно увидеть в нижней части рабочего окна: 1,05% .
После того, как Вы нашли максимальную ошибку обучения персептро- на, нажмите клавишу «Сбросить примеры», а затем – клавишу «Добавить
строку» |
введите пример, которого не было в обучающем множестве: |
||
25 10 |
, после чего нажмите кнопку «Вычислить». |
|
|
Ответ изображен на рис. 5. Ошибка обобщения T |
составила |
0,93%. |
Рис. 5. Сеть ответила, что дважды пять будет примерно 9,9074
Более хороших результатов можно добиться, воспользовавшись след- ствием из теоремы Арнольда – Колмогорова –
ров Q 18, получим оценку необходимого количества синаптических связей
нейросети:
3,48 Nw 41.
Применение формулы (3.24) [1] дает оценку необходимого количества
скрытых нейронов:
1,2 N
13,7
.
Как видим, интервал допустимых значений |
N |
ким. Выберем значение |
N |
посередине полученного |
||
|
|
N |
1,2 13,7 |
7 . |
|
|
2 |
||
|
|
|
|
получился весьма широ- интервала:
Рис. 6. Структура сети с семью нейронами скрытого слоя
Рис. 7. Графическое отображение процесса обучения сети с семью нейронами скрытого слоя
Вернувшись в режим «Проектирование сети», увеличим количество нейронов скрытого слоя до семи (рис. 6). Затем, выполняя обучение сети
(рис. 7) и проверку ее прогнозирующих свойств, получаем значительно более хороший результат, приведенный на рис. 8 и рис. 9, из которых видно, что ошибка обучения сети L снизилась до 0,33%, а ошибка обобщения εT сни-
зилась до 0,11%.
Рис. 8. Результат работы сети с
Рис. 9. Результат работы сети с
И в заключение, будет следующим: 2
нажмите кнопку «Вычислить и округлить». Результат 5 10,0. Как помните, этого примера не было в обуча-
ющем множестве примеров. Персептрон сам «догадался», сколько будет дважды пять, блестяще проявив свои обобщающие свойства, которые он уна- следовал от своего прототипа – человеческого мозга [1].
В программе «Нейросимулятор» предусмотрена возможность обмена данными с приложением Microsoft Excel. Для этого в режимах «Обучение», «Проверка» и «Прогноз» имеются кнопки «Загрузить из
Например, множество обучающих примеров таблицы умножения, при- веденное на рис. 2, можно было предварительно подготовить в редакторе Mi- crosoft Excel (см. рис. 10), а затем загрузить его в программу «Нейрсимуля- тор» в режиме «Обучение» нажав клавишу «Загрузить из
Рис. 10. Множество обучающих примеров таблицы умножения на 2 и на 3, подготовленное в редакторе Microsoft Excel
Режим «Прогноз» отличается от режима «Проверка» тем, что в нем не требуется указывать желаемый выходные сигналы персептрона. Соответ- ственно, не вычисляется и разница между желаемыми и действительными значениями (погрешность). В этом режиме персептрон выполняет прогнози- рование – вычисляет выходные значения, используя вводимые пользователем компоненты входного вектора X.
Более подробную инструкцию по работе с программой «Нейросимуля- тор», а также примеры ее применения для решения широкого круга практи-
ческих задач вы найдете в книгах [1] и [2].
Литература
1.Ясницкий Л.Н. Искусственный интеллект. Элективный курс: Учеб- ное пособие. – М.: БИНОМ. Лаборатория знаний, 2011. – 240c.
2.Ясницкий Л.Н., Черепанов Ф.М. Искусственный интеллект. Элек- тивный курс: Методическое пособие по преподаванию. – М.: БИ- НОМ. Лаборатория знаний, 2011. – 216с.