Помощь в написании студенческих работ
Антистрессовый сервис

Описание программы NG0 (Neurogenetic Optimizer)

РефератПомощь в написанииУзнать стоимостьмоей работы

Если нужно делать прогнозы на основе данных, которые доступны путем экспорта из других источников, то необходимо формировать файл такой же структуры, как и набор данных для обучения / тестирования, и использовать опцию «Маке predictions from a file of data». Когда сеть обучена, то в дальнейшем вызывать программу прогнозирования из обучающей программы нет необходимости. Напрямую прогнозирование… Читать ещё >

Описание программы NG0 (Neurogenetic Optimizer) (реферат, курсовая, диплом, контрольная)

Программа NGO предназначена для нейросетевого моделирования на основе обучения. На вход может подаваться до 500 переменных (в зависимости от лицензии). Бесплатный вариант программы поддерживает до пяти входных переменных. Программа состоит из двух компонентов: программы обучения NGO32260. EXE и программы прогнозирования PRE32150.EXE. Для начала работы с программой обучения необходимо загрузить данные. Рассмотрим порядок подготовки работы NGO на примере ее обучения на вычисление функции синуса. Для этого мы должны подготовить файл, содержащий данные в таком виде (разделители — табуляция):

X.

Sin (X).

0, 01.

0, 01.

0, 02.

0, 19 999.

0, 03.

0, 29 996.

0, 04.

0, 39 989.

Пусть такой файл содержит 500 строк и охватывает значения X от 0 до 5. Чтобы его загрузить, необходимо выбрать пункты меню File / Open / Data / Train / Test… и местоположение текстового файла. Появится окно следующего вида:

Описание программы NG0 (Neurogenetic Optimizer).

Необходимо указать, что разделителями являются символы табуляции (Delimiters), а также указать назначение переменных (Input, Output). Если переменные не используются, например, их необходимо игнорировать (Ignore). Если в таблице в нижней части окна первые строки данных пустые, значит, NGO не понимает данный формат. Нужно проверить исходный файл.

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

После ввода исходных данных необходимо настроить программу. Для этого нужно вызвать пункт меню Option / Data…

Описание программы NG0 (Neurogenetic Optimizer).

Здесь следует определить, как исходные данные будут делиться на набор для обучения и набор для тестирования. На снимке экрана показано, что для тестирования будет использоваться каждая вторая строка данных. Тестовый набор данных позволяет убедиться в том, что обученная нейронная сеть функционирует правильно, поскольку данные тестового набора в обучении не использовались. В условиях недостаточного количества наблюдений выбор объема тестового набора является критичным: слишком много данных для тестирования (как в данном случае 50 на 50) слишком уменьшает набор для обучения. Если мы сделаем упор на обучение, например, 10 к 1, то результаты тестирования будут ненадежными. Можно для тестирования брать не прореженный набор, а определенное число последних записей. Все зависит от характера исходных данных.

Далее, необходимо настроить параметры нейронной сети и генетического алгоритма (Option / NeuroGenetic…):

Описание программы NG0 (Neurogenetic Optimizer).

Слева вверху нам предлагается выбрать типы нейронных сетей, которые NGO будет пытаться применить к данной задаче. Лучше всего не ограничивать программу в выборе, исключив только два типа сетей для обучения без учителя (SOM и TSOM — самоорганизующиеся карты Кохонена). Следующий важный параметр — число нейронов в скрытых слоях. Значение 8 установлено по умолчанию. Чем больше нейронов, тем выше возможная точность моделирования, но дольше время обучения. Сложность сети должна быть согласована с числом входных векторов данных: Если у нас 50 строк на входе, то бесполезно задавать 256 нейронов.

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

Теперь необходимо установить параметры обучения (Option / System):

Описание программы NG0 (Neurogenetic Optimizer).

Слева вверху нам предлагается выбрать, как измерять точность. Можно установить абсолютную погрешность, среднеквадратичную ошибку и т. д. Наиболее понятной является относительная точность в процентах (как показано на снимке). Следующая группа параметров определяет, как оценивать точность обученной сети. Точность оценивается параметром Fitness, который учитывает в показанном примере 20% погрешности, полученной на данных обучения и 80% — точность, показанную на этапе тестирования. Иными словами, погрешность на тестировании в 5 раз важнее погрешности обучения.

Следующая группа параметров — критерии завершения обучения. По умолчанию устанавливается завершение после 10 поколений «генетически модифицированных» сетей. Если не устанавливать критерий, то процесс обучения будет бесконечным, и остановить его нужно будет с помощью пункта меню Run / Halt.

Теперь можно запускать обучение сети (Run / Start). Процесс обучения можно контролировать (View / Status) или с помощью кнопки S на панели инструментов. Появится окно следующего вида, в котором отображаются характеристики текущей конфигурации сети (верхняя панель) и характеристики лучшей сети их всех, сгенерированных на данный момент.

Описание программы NG0 (Neurogenetic Optimizer).

Можно также наблюдать на графике процесс подгонки модели (View / Predicted vs. Desired — предсказанные и желаемые значения),.

Описание программы NG0 (Neurogenetic Optimizer).

а также процесс изменения ошибок (View / Accuracy / Error Trend).

Описание программы NG0 (Neurogenetic Optimizer).

Процесс обучения можно завершить, когда точность модели будет удовлетворительной. Теперь можно приступить к предсказанию. Для этого надо выбрать View / Best Networks или нажать кнопку В на панели инструментов. Появится следующее окно:

Описание программы NG0 (Neurogenetic Optimizer).

Нужно выбрать одну из сетей и нажать кнопку «Make Predictions with selected network…». Запускается программа Predictor, которая предлагает посмотреть график с результатами обучения, сделать быстрый прогноз путем ввода входных данных с клавиатуры, либо сделать прогноз на основе файла с данными.

Если мы выберем быстрый прогноз, то в появившуюся пустую таблицу нужно ввести входной вектор и нажать кнопку Predict:

Описание программы NG0 (Neurogenetic Optimizer).

Важное замечание. Числа нужно вводить с десятичной точкой, а не запятой.

Несмотря на достигнутую высокую точность, мы легко можем выявить очевидный недостаток нейронных сетей: они не понимают, что такое синус, а просто запоминают, как нужно отвечать. Если мы введем аргумент 6, то получим результат — 1 вместо ожидаемого -0,27 942. Нейронная сеть правильно выдает результат только в том диапазоне существования входных данных, на котором она была обучена. Вне этого диапазона результаты непредсказуемы.

Рассмотрим теперь, как применить программу NGO для прогнозирования значений временных рядов. Пусть та же самая функция синуса представлена не векторами (X, sin (X)), а последовательностью значений Sin (X), и мы хотим прогнозировать значения этого временного ряда на основе наблюдаемых предыдущих значений. Для этого создадим следующий набор данных:

X.

SinX-5.

SinX-4.

SinX-3.

SinX-2.

SinX-1.

SinX.

—0, 050.

—0, 040.

—0, 030.

—0, 020.

—0, 010.

0, 000.

0, 01.

—0, 040.

—0, 030.

—0, 020.

—0, 010.

0, 000.

0, 010.

0, 02.

—0, 030.

—0, 020.

—0, 010.

0, 000.

0, 010.

0, 020.

0, 03.

—0, 020.

—0, 010.

0, 000.

0, 010.

0, 020.

0, 030.

0, 04.

—0, 010.

0, 000.

0, 010.

0, 020.

0, 030.

0, 040.

0, 05.

0, 000.

0, 010.

0, 020.

0, 030.

0, 040.

0, 050.

0, 06.

0, 010.

0, 020.

0, 030.

0, 040.

0, 050.

0, 060.

0, 07.

0, 020.

0, 030.

0, 040.

0, 050.

0, 060.

0, 070.

Здесь первый столбец приведен для справки, в обучении он использоваться не будет. Загрузим данный файл в программу NGO:

Описание программы NG0 (Neurogenetic Optimizer).

Переменную X помечаем как Ignore, все остальные, кроме последней, как входные. Теперь нужно указать программе, как оперировать с этими данными.

Описание программы NG0 (Neurogenetic Optimizer).

Очевидно, что брать каждый второй вектор, как тестовый, нецелесообразно, так как нам важно сохранить хронологию. Использовать последние записи, как тестовые, также не годится. Здесь целесообразно использовать скольжение вдоль временного ряда: скажем, берем первые 7 строк для обучения, следующие 3 — для тестирования. После этого сдвигаемся на одну позицию вниз: 7 строк, начиная со второй — для обучения, следующие 3 — для тестирования. Сдвигаемся еще на одну позицию вниз и т. д.

Описание программы NG0 (Neurogenetic Optimizer).

Нажимаем кнопку «Put into Effect», затем — «Close». После этого устанавливаем остальные параметры, как в предыдущем примере, и запускаем обучение. После того, как точность модели нас станет удовлетворять, останавливаем процесс обучения и запускаем Predictor (View / Best Networks / Make Predictions…).

Описание программы NG0 (Neurogenetic Optimizer).

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

Если нужно делать прогнозы на основе данных, которые доступны путем экспорта из других источников, то необходимо формировать файл такой же структуры, как и набор данных для обучения / тестирования, и использовать опцию «Маке predictions from a file of data». Когда сеть обучена, то в дальнейшем вызывать программу прогнозирования из обучающей программы нет необходимости. Напрямую прогнозирование запускается с помощью файла PRE32150.EXE. Обученная сеть должна быть сохранена в обучающей программе пунктом меню «File / Save Network».

Показать весь текст
Заполнить форму текущей работой