Файл: Учебнометодическое пособие для лабораторной работы по дисциплине Интеллектуальные системы и технологии.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.12.2023

Просмотров: 39

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ им. Р.Е. АЛЕКСЕЕВА»
АРЗАМАССКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ (филиал НГТУ)
Кафедра "Конструирование и технология РЭС"
РЕАЛИЗАЦИЯ НЕЙРОННЫХ СЕТЕЙ
В ПАКЕТЕ NEURAL NETWORK WIZARD
Учебно-методическое пособие для лабораторной работы по дисциплине
«Интеллектуальные системы и технологии»
Арзамас 2019

2
Содержание
Цель работы ......................................................................................................................................... 3
Теоретическое обоснование ............................................................................................................... 3
Методика и порядок выполнения работы ......................................................................................... 4
Варианты заданий ............................................................................................................................... 9
Дополнительное задание .................................................................................................................. 11
Содержание отчета и его форма ...................................................................................................... 11
Контрольные вопросы ...................................................................................................................... 11
Список литературы ........................................................................................................................... 12

3
Neural Network Wizard 1.7 – простейший программный эмулятор нейронных сетей. В
Neural Network Wizard реализована многослойная нейронная сеть, обучаемая по алгоритму обратного распространения ошибки (back propagation error). Программа Neural Network Wizard предназначена для проведения исследований с целью выбора оптимальной конфигурации нейронной сети, позволяющей наилучшим образом решить поставленную задачу.
Цель работы
Приобретение практических навыков применения нейронных сетей c использованием пакета Neural Network Wizard.
Теоретическое обоснование
Программа 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 – расчет с использованием нейросети.
Программа может применяться для анализа информации, построения модели процессов и прогнозирования. Для работы с системой необходимо проделать следующие операции:
1. Собрать статистику по процессу.
2. Обучить нейросеть на приведенных данных.
3. Проверять полученные результаты.
В результате обучения нейросеть самостоятельно подберет такие значения коэффициентов


4 и построит такую модель, которая наиболее точно описывает исследуемый процесс.
Программный пакет Neural Network Wizard может быть использован без предварительной инсталляции.
Методика и порядок выполнения работы
Прежде чем запускать программу, необходимо в любом текстовом редакторе подготовить текстовый файл с обучающей выборкой. Например, вычислим косинус. Фрагмент такого файла для функции Res = Cos(x) приведен ниже.
Cos
Res
0 1
0.1 0.995 0.4 0.921 0.5 0.878 0.6 0.825
…………..
1.57 0
В первой строке файла указываются имена входных/выходных переменных: Cos – имена входных переменных, Res – имя выходной переменной. Далее идут их значения в колонках.
Данные для обучения нейронной сети должны быть предоставлены в текстовом файле с разделителями (Tab или пробел). Количество примеров должно быть достаточно большим. При этом необходимо обеспечить, чтобы выборка была репрезентативной, а данные были не противоречивы. Вся информация должна быть представлена в числовом виде. Если информация представляется в текстовом виде, то необходимо использовать какой-либо метод, переводящий текстовую информацию в числа.
Рисунок 1 – Выбор файла с обучающей выборкой

5
Файл сохраняется как текстовый с расширением .txt (Косинус.txt).
После запуска программы в первом окне задается имя файла с обучающей выборкой
(рисунок 1).
Кнопка «Далее» позволяет перейти к следующему окну (рисунок 2). В новом окне перечислен список доступных полей, взятый из первой строки указанного файла. Для каждого из полей необходимо указать, чем является данная переменная. Если данная переменная входная, то в группе «Использовать поле как» выбирается вариант «Входное», если выходная –
«Целевое». Поля, отмеченные пометкой «Не использовать» в обучении и тестировании нейросети применяться не будут.
Рисунок 2 – Определение входных и выходных данных
На вход нейросети должна подаваться информация в нормализованном виде, т.е. это числа в диапазоне от 0 до 1. Можно выбрать метод нормализации на вкладке «Нормализовать поле как».

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

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

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

Без нормализации – нормализация не производится.
На вкладке «Параметры нормализации» задать значения, используемые в формулах нормализации.
Кнопка «Далее» переводит к следующему окну (рисунок 3), где определяются структура и параметры нейросети: количество скрытых слоев, количество нейронов в каждом слое, а также вид сигмоидальнойной функции.


6
Рисунок 3 – Определение параметров структуры нейросети.
Нейронная сеть состоит из слоев: входного, выходного и скрытых. Необходимо указать количество скрытых слоев. Общего правила определения количества таких слоев нет, обычно задается 1-3 скрытых слоя. Но считается, что чем более нелинейная задача, тем больше скрытых слоев должно быть у нейронной сети.
В Neural Network Wizard все элементы предыдущего слоя связаны со всеми элементами последующего. Количество нейронов в первом и последнем слое зависит от того, сколько полей в обучающей выборке указаны как входные и выходные. Необходимо задать количество нейронов в каждом скрытом слое. Общих правил определения количества нейронов нет, но необходимо, чтобы число связей между нейронами было значительно меньше количества примеров в обучающей выборке. Иначе нейросеть потеряет способность к обобщению, а просто
«запомнит» все примеры из обучающей выборки (так называемый «эффект переобучения»).
«Параметр сигмоиды» – сигмоида применяется для обеспечения нелинейного преобразования данных. В противном случае, нейросеть сможет выделить только линейно разделимые множества. Чем выше параметр, тем больше переходная функция походит на пороговую. Параметр сигмоиды подбирается, фактически, эмпирически.
В следующем окне (рисунок 4) задаются параметры обучения и критерии остановки обучения, если она требуется.
«Использовать для обучения сети % выборки» – все примеры, подаваемые на вход нейросети, делятся на 2 множества – обучающее и тестовое. Заданный процент примеров будет

7 использоваться в обучающей выборке. Записи, используемые для тестирования, выбираются случайно, но пропорции сохраняются.
Рисунок 2.4 – Параметры обучения
«Скорость обучения» – параметр определяет амплитуду коррекции весов на каждом шаге обучения.
«Момент» – параметр определяет степень воздействия i-ой коррекции весов на i+1-ую.
«Распознана, если ошибка по примеру…» – если результат прогнозирования отличается от значения из обучаемого множества меньше указанной величины, то пример считается распознанным.
«Использовать тестовое множество как валидационное» – при установке этого флага обучение будет прекращено с выдачей сообщения, как только ошибка на тестовом множестве начнет увеличиваться. Это помогает избежать ситуации переобучения нейросети.
«Критерии остановки обучения» – необходимо определить момент, когда обучение будет закончено.
Кнопка «Далее» показывает окно с конфигурацией нейросистемы, заданные параметры
(рисунок 5).


8
Рисунок 5 – Заданные параметры нейросети
В следующем окне визуализирован непосредственно сам процесс обучения (рисунок 6).
Чтобы запустить обучение, нажимается кнопка «Пуск обучения». На верхней диаграмме показано распределение ошибки обучения: по горизонтали – значение ошибки (чем правее столбец, тем больше ошибка), по вертикали – количество примеров из выборки с данной ошибкой (чем выше столбец, тем больше примеров с указанной ошибкой). Зеленые столбцы – ошибка на рабочей обучающей выборке, красные – на тестовой. В процессе обучения столбцы должны стремиться в левую часть диаграммы.
Рисунок 6 – Обучение системы

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

10 использовать в качестве входа сети для предсказания очередного члена последовательности различное количество или группировку предыдущих.
Задание 1
Номер варианта
Задание
1, 6
)
cos(
)
(
sin
2
x
x
y

2, 7
)
cos(
)
sin(
x
x
y

3, 8
)
4
cos(
)
sin(
2 2
x
x
y

4, 9
)
(
tg
)
2
sin(
x
x
y

5, 10
)
sin(
)
cos(
4 2
x
x
y

Задание 2
Вариант
Задание
1
 
1
,
0
),
(
sin
2 2


x
x
y
2







,
,
)
cos(
4
x
x
x
y
3 5
,
3 8
,
4 5
,
0 2



x
x
y
4
x
e
y
2 2


5 1



x
e
x
y
6
)
1
sin(
2



x
x
y
7
)
1
cos(
)
sin(


x
x
y
8
x
x
y


)
(
cos
2 2
9
x
e
y
x


)
sin(
10
x
e
x
x
y
2 2
)
5
,
3 8
,
4 5
,
0
(




11


0 0
90
,
90
,
)
cos(
)
sin(






x
x
x
x
y
12
)
2
sin(
2 5
,
1
x
x
x
y



Необходимо с помощью нейронной сети провести аппроксимацию функции вида
y = f(x) на интервале x, где x – входная переменная, а y выходная переменных. Диапазоны изменения входных переменных определить самостоятельно, у периодических функций – не менее периода.


11 2) Подготовить обучающую выборку средствами приложения Microsoft Excel и оформить ее в виде файла *.csv (для задач аппроксимации алгебраических функций). Примечание: Чтобы создать набор случайных чисел, воспользуйтесь функцией: = СЛЧИС()*100. В соседнем столбце рассчитайте значение заданной функции. Сохраните файл, выбрав расширение . csv.
3) Провести обучение нескольких нейронных сетей c помощью программного нейроимитатора Neural Network Wizard с количеством нейронов в скрытом слое, равном 1, 3, 5,
7 и функцией активации «сигмоидная» (Logistic). Обучение каждой сети вести, например, в 100 шагов. Обучение вести по алгоритму обратного распространения.
4) Проверить качество каждой обученной сети, для чего рассчитать несколько значений выходной переменной по заданной функции и по нейронной сети, затем на графике показать близость каждой обученной модели к исходной.
5) Рассчитать вручную одно выходное значение нейронной сети (для MLP сети с 5-ю нейронами в скрытом слое). Сравнить со значением, рассчитанным с помощью нейроимитатора.
Дополнительное задание
Найти информацию о реально существующем проекте, в котором используются нейронные сети, составить доклад (1 печ. лист) об этом проекте. Здесь не нужно подгружаться в теорию нейросетевых алгоритмов. Цель написания доклада – понять, что нейронные сети широко используются для решения самых разных научных и прикладных задач и имеют мощный потенциал.
Содержание отчета и его форма
Структура отчета по лабораторной работе:
1. Название лабораторной работы.
2. Цели лабораторной работы.
3. Ответы на контрольные вопросы.
4. Формулировка индивидуального задания.
5. Анализ решения с комментариями.
Контрольные вопросы
1. Что такое искусственный нейрон, нейронная сеть?
2. Какова математическая модель нейрона?
3. Что такое функция активации, и какие функции активации вы знаете?
4. Каковы основные этапы разработки нейронной сети?
5. Можно ли обучить нейронную сеть без скрытого слоя?

12 6. В чем заключается обучение нейронных сетей?
7. Почему один из алгоритмов обучения получил название «алгоритм обратного рас- пространения»?
8. Чем отличается обучение с учителем от обучения без учителя?
9. Почему входные и выходные сигналы нейронной сети должны быть нормированы, т.е. приведены к диапазону [0,1]?
10. В какой форме принимает и выдает данные пакет Neural Network Wizard?
11. По каким критериям завершается обучение в пакете Neural Network Wizard?
12. Как готовятся тренировочные и тестовые данные для пакета Neural Network Wizard?
13. Как происходит процесс обучения сети и ее использования в Neural Network Wizard?
14. Что такое обучение сети?
15. Перечислите задачи, которые могут выполнять нейронные сети.
Список литературы
1. Роберт Хехт-Нильсен. Нейрокомпьютинг: история, состояние, перспективы //
Открытые системы. -1998. -№ 4-5. -С. 23 - 28.
2. Розенблатт Ф. Принципы нейродинамики. Персептроны и теория механизмов мозга. -
М.: Мир, 1965.
3. Гордиенко Е.К., Лукьяница А.А. Искусственные нейронные сети. I Основные определения и модели// Изв. РАН. Техническая кибернетика. -1994. -№ 5. -С. 79 - 92.
4. Короткий С.Г. Нейронные сети: алгоритм обратного распространения. -BYTE/Россия. -
2000. -№ 5. -С. 26-29.
5. Интеллектуальные системы управления с использованием нейронных сетей: учеб. пособие. / В.И. Васильев, Б.Г. Ильясов, С.С. Валеев и др.; Уфимск. гос. авиац. техн. ун-т. Уфа,
1997. -92 с.
6. Куликов Г.Г., Брейкин Т.В., Арьков В.Ю. Интеллектуальные информационные системы: учеб. пособие / Уфимск. гос. авиац. техн. ун-т. -Уфа, 1999. -129 с.
7. Интеллектуальные системы обработки информации на основе нейросетевых технологий: учеб. пособие. / Ю.И. Зозуля, Уфимск. гос. авиац. техн. ун-т. – Уфа. - 2000. 138 с.