logo search
МатМод экология / Лабораторные работы

I. Обзор использования пакета Excel Neural Package.

После установки пакета его можно использовать совместно с офисным приложением Microsoft Exсel – 97 (инструкцию по установке см. в файле READMY.doc). На панели инструментов EXCEL появляются две новые кнопки - -WinNet (реализует многослойный персептрон) и -Kohonen Map (реализует самообучающуюся сеть Кохонена).

Работа посвящена изучению многослойного персептрона.

Работа с пакетом Winnet

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

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

Разберем эти действия по шагам.

  1. Для работы с данными выделите область на листе книги Excel. Данные на листе располагаются следующим образом: входы и выходы - столбцы, строки - обучающие примеры. Например, требуется построить нейронную сеть, вычисляющую выброс свинца в атмосферу в зависимости от количества и вида проезжающего транспорта. Тогда исходные данные могут выглядеть следующим образом:

Рис. 4. 1. Подготовка данных на листе Excel.

  1. Щелкните мышью по кнопке с изображением нейрона на панели инструментов Neural Analysis. Появится диалоговое окно Select data source, предлагающее уточнить параметры области данных для работы.

Рис. 4. 2. Задание исходных данных для НС.

  1. В случае согласия с параметрами ввода нажмите ОК.

  2. Откроется основное окно Winnet 3.0. Оно содержит 4 табулированных листа: Data, Network, Training и Output, ассоциированных с общими этапами работы.

Рис. 4. 3. Окно задания входов и выходов НС.

  1. Открывшийся лист Data позволяет определить и предобработать данные для последующего использования. Кроме того, с этого листа можно сохранить обученную нейронную сеть (Save Project ...) или загрузить уже сохраненный в прошлом проект (Load Project...). Первое, что нужно сделать, это определить входы, для чего следует нажать кнопку Select Inputs....

  2. В открывшемся диалоговом окне Select Inputs/All Data выберете необходимые входы и с помощью кнопки >> переведите их в окно списка Inputs. Корректировку выбранных входов можно произвести кнопкой <.

Рис. 4. 4. Выбор данных.

  1. Так как конкретные значения входов могут быть любыми, то рекомендуется их нормализовать. Для большинства случаев подходит нормировка входных значений Mean/Variance. При этом данные переводятся в безразмерную форму вычитанием среднего и нормированием на их дисперсию. Нажмите кнопку Normalization... и выберите в открывшемся окне Inputs normalization соответствующую позицию переключателя. Подтвердите выбор нажатием кнопки ОК Вернувшись в окно Select Inputs также подтвердите выбор нажатием кнопки ОК.

Рис. 4. 5. Выбор метода нормализации.

  1. Далее, нажав на кнопку Select Outputs..., аналогично пунктам 6 и 7 определите и нормализуйте, при необходимости, выходы системы.

  2. Определение значимости входной информации для предсказания выходной начинается с нажатия кнопки Boxcouting..., по которому система, используя алгоритм Boxcouting, определит статистическую значимость входов для заданных выходов. В открывшемся окне Boxcouting results представлена результирующая информация.

Рис. 4. 6. Определение значимости входов.

Причем:

10) Следующий этап - создание нейронной сети (многослой­ного персептрона). Перейдите на закладку Network и нажмите на кнопку Create Net.... В открывшемся окне Network Construction можно полностью определить структуру и топологию нейронной сети:

Рис. 4. 7. Задание числа слоев и нейронов.

При определении структуры и топологии сети будем руководствоваться следующими соображениями:

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

  2. В большинстве задач нет смысла использовать архитектуру нейронной сети с количеством скрытых слоев более одного. Нелинейный же характер нейронной сети определяется количеством нейронов в этом скрытом слое.

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

  4. Использование порядка нелинейности нейрона более 1 не рекомендуется.

  5. Согласно исследованиям, количество нейронов в скрытых слоях сильно зависит от размера обучающей выборки. Например, если обучающая выборка мала, а количество нейронов велико, то сеть начинает запоминать факты, тогда как в задачах прогнозирования требуется обобщение. Обратная ситуация может привести к тому, что сеть никогда не обучится. Однако в настоящий момент не разработано исчерпывающей и однозначной методики для определения количества нейронов в скрытых слоях. Поэтому определение количества нейронов в скрытом слое для каждой задачи необходимо проводить опытным путем.

Рис. 4. 8. Вид построенной нейросети.

11) Для обучения созданной нейронной сети перейдите на следующую закладку Training. Перед обучением надо задать тестовое множество примеров из общей совокупности обучающих примеров. Эти примеры не будут участвовать в обучении. На них будут основываться оценки предсказательных свойств обучен нейронной сети. Щелкните по кнопке Edit test set... . В окне можно задать размер и характер обучающей выборки.

Общие рекомендации:

• число примеров в тестовой выборке должно составлять 20-30%, но не менее нескольких десятков;

• при решении задач аппроксимации наиболее естествен­ным является случайный выбор тестового множества. Отдельная опция Random + Last examples введена для задач прогнозирова­ния временных рядов. При этом последние примеры всегда ис­ключаются из обучения и являются, по сути, прогнозом.

Подтвердите выбор нажатием кнопки ОК и вернитесь в ос­новное окно.

Рис. 4. 9. Выбор параметров обучения сети.

12) Теперь можно начинать обучение. Нажав кнопку Start training, можно наблюдать за ходом обучения нейронной сети по изменению информации в области Training Info или в графиче­ском виде в соответствующих окнах, вызываемых нажатием кла­виш в области Graphs. Желательно остановить процесс обучения в момент, когда ошибки обучения и обобщения начнут сильно рас­ходиться. Рост ошибки обобщения сигнализирует о начале пере­обучения.

13) По завершении процесса обучения его результаты можно визуально оценить на графике Network answers..., вызываемом по нажатию соответствующей кнопки.

Рис. 4. 10. Результат обучения нейросети.

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

15) Теперь осталось сохранить проест (Save Project...) и экспортировать результаты назад в книгу Excel, Для экспорта ре­зультатов перейдите на закладку Output, задайте необходимые параметры и сохраните результаты нажатием кнопки ОК.

Рис. 4. 11. Вывод результатов сети на лист Excel.

Вид листа Excel после вставки результатов.

Рис. 4. 12. Окно Excel с результатами работы нейросети.

Как видно, разница между реальными и вычисленными значениями свинца очень мала. Теперь спроектированную и обученную нейронную сеть можно сохранить на вкладке Data \ Save Project ... В дальнейшем эта сеть может использоваться для вычисления и прогнозирования выброса свинца при других исходных данных по автомобильному потоку уже без использования данных для обучения.