Neural Network Wizard 7 учебно-методическое пособие

Вид материалаУчебно-методическое пособие

Содержание


3.1. Краткое описание программы Neural Network Wizard 1.7
3.2. Изучение принципов работы программного эмулятора
3.2.1. Сбор статистики по процессу
3.2.2. Описание процесса обучения нейросети
3.2.3. Проверка полученных результатов
Рис. 7. Ввод начальных параметров и расчет результатов
4. Вопросы и задания для самооценки
Изучение принципов работы программного эмулятора
Подобный материал:
1   2   3

3.1. Краткое описание программы Neural Network Wizard 1.7


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

Свойства:

InputValues[inputName:string]:double – значения входов нейросети;

OutputValues[inputName:string]:double – значения выходов нейросети;

InputsList : TstringList – список названий входов нейросети;

OutputsList : TStringList – список названий выходов нейросети.

Методы:

Create – конструктор класса;

LoadFromWizardFile(FileName:string) – чтение параметров нейросети из файла Neural Network Wizard;

Compute – расчет с использованием нейросети.

3.2. Изучение принципов работы программного эмулятора

нейрокомпьютера Neural Network Wizard 1.7


Neural Network Wizard 1.7 – программный эмулятор нейрокомпьютера. В Neural Network Wizard реализована многослойная нейронная сеть, обучаемая по алгоритму обратного распространения ошибки. Программа может применяться для анализа информации, построения модели процессов и прогнозирования. Для работы с системой необходимо проделать следующие операции:
  1. осуществить сбор статистики по процессу;
  2. выполнить обучение нейросети на приведенных данных;
  3. произвести проверку полученных результатов.


3.2.1. Сбор статистики по процессу


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

Можно добиться хороших результатов, если провести предобработку данных. Если текстовую информацию можно как-то ранжировать, то необходимо это учитывать. Например, если вы кодируете информацию о городах, то можно ранжировать и по численности населения и задать соответствующую кодировку: Москва = 1, Санкт-Петербург = 2, Нижний Новгород = 3 и т.д. Если же данные не могут быть упорядочены, то можно задать им произвольные номера. Вообще, лучше при кодировании входной информации увеличивать расстояние между объектами (Москва = 1, Санкт-Петербург = 11, Нижний Новгород = 21) и определять результат по расстоянию между значением, полученным из нейросети, и кодом объекта. В нашем случае, если нейросеть выдала результат 7,2, значит это Санкт-Петербург.


3.2.2. Описание процесса обучения нейросети

на приведенных данных


При обучении нейросети нужно учитывать несколько факторов.

1. Если вы будете подавать на вход противоречивые данные, то нейросеть может вообще никогда ничему не научиться. Она будет не в состоянии понять, почему в одном случае 2+2=4, а во втором 2+2=5. Необходимо избавиться от противоречивых данных в обучающей и тестовой выборке.

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

3. Если слишком долго обучать нейросеть, то она может «переобучиться». Необходимо определять момент, когда процесс будет считаться завершенным.

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


3.2.3. Проверка полученных результатов


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

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

Шаг 1. Выбрать файл с «обучающей выборкой…». Информация, содержащаяся в этом файле, используется для обучения нейросети. Вы можете открыть txt-файл для обучения или nnw-файл – обученную нейросеть (см. рисунок 1).

На вход необходимо подать следующую информацию:

S1 S2 RES

0 0 0

1 1 2

1 2 3

2 2 4

3 3 6

4 4 8

2 4 6

5 5 10

6 6 12

7 7 14

8 8 16

9 9 18

9 10 19

10 9 19

10 10 20

2 3 5

6 1 7

1 5 6

3 8 11

9 7 16

8 9 17




Рис. 1. Выбор файла с обучающей выборкой


Шаг 2. Выберите поле в списке и укажите, как его обрабатывать. «Использовать поле как…». Нейронная сеть состоит их входного, выходного и скрытых слоев. Количество нейронов в первом и последнем слое зависит от того, сколько полей вы определите как входные и выходные. Поля, отмеченные пометкой «не использовать», в обучении и тестировании нейросети применяться не будут.

«Нормализовать поле как…». На вход нейросети должна подаваться информация в нормализованном виде, т.е. в виде чисел в диапазоне от 0 до 1. Вы можете выбрать метод нормализации:

(X-MIN)/(MAX-MIN) – линейная нормализация;

1/(1+exp(ax)) – экспоненциальная нормализация;

авто – нормализация, основанная на статистических характеристиках выборки;

без нормализации – нормализация не производится.

«Параметры нормализации…». Задайте значения, используемые в формулах нормализации.

Указываем, что поле RES – целевое. Т.е. нейросеть будет пытаться определить, каким образом значения полей S1 и S2 влияют на поле RES (см. рис. 2).




Рис. 2. Список доступных полей


Шаг 3. Определяем конфигурацию нейронной сети.

«Число слоев нейросети…». Нейронная сеть состоит из слоев – входного, выходного и скрытых. Необходимо указать количество скрытых слоев. Общего правила, определяющего, сколько должно быть таких слоев, нет, обычно задается 1-3 скрытых слоя. Можно говорить, что чем более нелинейная задача, тем больше скрытых слоев должно быть.

Зададим количество скрытых слоев – 1.

«Слои, Число нейронов…». В Neural Network Wizard все элементы предыдущего слоя связаны со всеми элементами последующего. Количество нейронов в первом и последнем слое зависит от того, сколько полей вы указали как входные и выходные. Количество нейронов в каждом скрытом слое необходимо задать. Общих правил определения количества нейронов нет, но необходимо, чтобы число связей между нейронами было меньше количества примеров в обучающей выборке. Иначе нейросеть потеряет способность к обобщению и просто «запомнит» все примеры из обучающей выборки. Тогда при тестировании на примерах, присутствующих в обучающей выборке, она будет демонстрировать прекрасные результаты, а на реальных данных – очень плохие.

Количество элементов в 1-ом слое – 2.

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




Рис. 3. Выбор параметра сигмоиды


Шаг 4. Определяем параметры обучения. Остановить обучение по прошествии 10000 эпох (см. рис. 4).

«Использовать для обучения сети выборки…». Все примеры, подаваемые на вход нейросети, делятся на 2 множества – обучающее и тестовое. Задайте, сколько процентов примеров будут использоваться в обучающей выборке. Записи, используемые для тестирования, выбираются случайно, но пропорции сохраняются.

«Скорость обучения…». Параметр определяет амплитуду коррекции весов на каждом шаге обучения.

«Момент…». Параметр определяет степень воздействия i-ой коррекции весов на i+1-ую.

«Распознана, если ошибка по примеру…». Если результат прогнозирования отличается от значения из обучаемого множества меньше указанной величины, то пример считается распознанным.

«Использовать тестовое множество как валидационное…». При установке этого флага обучение будет прекращено с выдачей сообщения, как только ошибка на тестовом множестве начнет увеличиваться. Это помогает избежать ситуации переобучения нейросети.




Рис. 4. Определение окончания процесса обучения


«Критерии остановки обучения…». Необходимо определить момент, когда обучение будет закончено.

Шаг 5. Проверяем правильность конфигурации сети и параметров обучения (см. рис. 5). Убедитесь, что вы указали все параметры верно.

Шаг 6. Запускаем систему на обучение, в процессе которого система построит модель операции сложения (см. рис. 6).




Рис. 5. Проверка правильности конфигурации сети

и параметров обучения



Рис. 6. Первый этап построения модели операции сложения

«Пуск обучения/остановка обучения…». Запустите процесс. В таблице над кнопкой вы можете наблюдать, как меняется ошибка обучения.

«Распределение ошибки…». В диаграмме отображается распределение ошибки. Зеленые столбцы – ошибка на обучающей выборке, красные – на тестовой выборке. Чем правее столбец, тем выше значение ошибки. Шкала от 0 до 1. Чем выше столбец, тем больше примеров с указанной ошибкой.

«Распределение примеров в обучающей/тестовой выборке…». На этих графиках вы можете отслеживать, насколько результаты, предсказанные нейронной сетью, совпадают со значениями в обучающей (слева) и тестовой (справа) выборке. Каждый пример обозначен на графике точкой. Если точка попадает на выделенную линию (диагональ), то значит нейросеть предсказала результат с достаточно высокой точностью. Если точка находится выше диагонали, значит нейросеть недооценила, ниже – переоценила. Необходимо добиваться, чтобы точки располагались как можно ближе к диагонали.

Шаг 7. По окончанию обучения мы можем тестировать полученную модель. Вводим начальные параметры и рассчитываем результат (см. рис.7).

В наборе входных параметров введите цифры и нажмите на кнопку «Расчет». В таблице «Рассчитанные параметры» вы получите результат. Необходимо иметь в виду, что бессмысленно проверять нейросеть на цифрах, выходящих за границы обучаемой и тестовой выборки. Если вы учили нейросеть складывать числа от 0 до 10, то необходимо на этих цифрах нейросеть и тестировать.



Рис. 7. Ввод начальных параметров и расчет результатов


Если результаты вас устраивают, то нажмите на кнопку «Сохранить». Neural Network Wizard сохранить все параметры и настройки в файле с расширением nnw.


4. Вопросы и задания для самооценки

  1. Каковы основные определения в теории интеллектуализированных систем? Что из себя представляет технология инженерии знаний?
  2. Какова основная терминология в области разработки интеллектуализированными системами? Какие типы классификаций интеллектуализированных систем распространены в последние годы?
  3. Что составляет проблемную область искусственного интеллекта? В чем состоят основные аспекты системного анализа предметной области на применимость технологии интеллектуализированных систем? Что входит в понятийную структуру предметной области?
  4. Каким образом осуществляется представление данных в компьютере? Особенности представления знаний интеллектуализированных систем. В чем принципиальное отличие представления данных и знаний в ЭВМ? Каковы классификация и состав знаний в интеллектуализированных системах?
  5. Что из себя представляют: знаковые представления понятий; схемы и формулы понятий; экстенсионал и интенсивная понятий; абстрагирование понятий; обобщение и специализация понятий?
  6. Что включает в себя декларативное и процедурное представления знаний? В чем состоит семантическая модель представления знаний?
  7. Каково основное содержание фреймовой модели представления знаний? Какова основная схема приобретения знаний?
  8. Каково содержание логической модели представления знаний?
  9. В чем состоит технология продукционной модели знаний?
  10. Какие существуют стратегии получения знаний при разработке интеллектуализированных систем? Какова классификация и содержание методов извлечения знаний?
  11. Каковы модели приобретения знаний (их сходство и отличие)?
  12. Что понимается под нечеткими знаниями (нечеткими множествами)? Что называется точкой перехода нечетких множеств?
  13. Какова роль функции принадлежности?
  14. Как определяется объединение, дополнение, разность, отображение, отноше­ние в теории нечетких множеств?
  15. Какова роль лингвистической переменной в представлении знаний? Что такое терм-множества при описании знаний?
  16. Какова схема методов пополнения знаний?
  17. Что представляют собой псевдофизические логики?
  18. Как осуществляется пополнение знаний на основе сценариев?
  19. Какова основная схема взаимодействия базы знаний с внешней средой? Какие основные операции осуществляются над базой знаний при ее попол­нении?
  20. Каково содержание архитектуры системы работы со знаниями?
  21. Какие существуют методы логического вывода пополнения знаний? Как осуществляется обобщение знаний?
  22. Как осуществляется классификация знаний? Каковы экстенсиональный и интенсиональный аспекты классификации?
  23. Что такое таксономия и мерономия?
  24. Опишите назначение и принцип действия машины Р. Луллия. Что такое «интеллектуальное математическое моделирование»?
  25. В чем суть модели лабиринтного поиска и эвристического метода? Чем отличаются нейрокибернетические методы от методов кибер­нетики «черного ящика»?
  26. В чем смысл терминов «восходящее» и «нисходящее» направления искусственного интеллекта? Что такое «эволюционное программирование»?
  27. Какой, по вашему мнению, метод представления знаний использует­ся в человеческом мозге? Приведите примеры формализованных и неформализованных зна­ний.
  28. Дайте определение и сформулируйте назначение экспертной систе­мы. Приведите примеры известных вам экспертных систем. Что такое «оболочка экспертной системы»?
  29. Каким, по вашему мнению, должен быть коллектив разработчиков экспертной системы? Перечислите и охарактеризуйте стадии и этапы разработки эксперт­ных систем.
  30. Постройте таблицы значимости для булевых функций «И» и «ИЛИ». Графическим способом подберите веса и пороги однонейронного персептрона, реализующего функции «И» и «ИЛИ».
  31. Постройте двухслойный персептрон, реализующий функцию «Ис­ключающее ИЛИ».
  32. Составьте программу обучения однонейронного персептрона с по­мощью правил Хебба и дельта-правила. С помощью составленной программы попытайтесь обучить одно-нейронный персептрон логическим операциям «И», «ИЛИ», «Исключа­ющее ИЛИ».
  33. Спроектируйте и обучите нейросеть (используя ниже приведенную последовательность операций) прогнозированию курса амери­канского доллара по отношению к российскому рублю.

А) Возьмите из сети Internet и изобразите графически данные по из­менению курса доллара за последние три месяца.

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

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

D) Введите в нейросеть дополнительный входной нейрон, в котором закодируйте день недели прогнозируемого дня. Повторите пункты B – C.

Е) В дополнительном нейроне сети закодируйте данные о солнечной активности, взятые из сети Internet.

F) Повторите пункты B – C.

G) В дополнительном нейроне сети закодируйте сведения о фазах Луны и повторите пункты B – C.

H) Сравните среднеквадратичные ошибки прогноза на тестовых вы­борках, сделайте заключение о степени влияния на курс доллара иссле­дованных факторов.
  1. Нарисуйте схему RBF-сети с минимальным числом нейронов, спо­собную моделировать функции «И», «ИЛИ», «Исключающее ИЛИ».


Библиографический список

  1. Гаскаров Д.В. Интеллектуальные информационные системы: учебник для вузов. – М.: Высшая школа, 2003. – 431 с.
  2. Ясницкий Л.Н. Введение в искусственный интеллект: учебное пособие для студ. высш. учеб. заведений. – М.: Академия, 2005. – 176 с.



Учебно-методическое издание


Сергей Евгеньевич Меньшенин

Современные информационные технологии.

Изучение принципов работы программного эмулятора

нейрокомпьютера Neural Network Wizard 1.7

Учебно-методическое пособие по дисциплинам

«Интеллектуальные информационные системы» и

«Системы искусственного интеллекта»

Редактор Т.П. Дмитриева

Темплан 2006 г. Подписано в печать 23.11.2006.

Формат 60×84 1/16.

Печ. л. 3,72 Уч. изд. л. 3,75 Тираж 50 экз.

Южно-Российский государственный технический университет

А


дрес ун-та: 346428, г. Новочеркасск, ул. Просвещения, 132