Нейросетевое программирование макроєкономики

Автор работы: Пользователь скрыл имя, 11 Декабря 2011 в 11:51, реферат

Краткое описание

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

Содержание работы

Введение………………………………………………………………...4
1. Проблемы и их решение ……………………………………………6
2. Принципиальные особенности …………………………………….8
3. Процесс построения комплексной нейросетевой модели……....11
Список источников…

Содержимое работы - 1 файл

Нейросетевое прогнозирование макроэкономики.docx

— 39.28 Кб (Скачать файл)

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

     1. Использование группы взаимосвязанных  показателей, описывающих состояние  системы в будущем. 

     2. Комбинированный алгоритм выявления  определяющих факторов для каждого  показателя.

     3. Специальный алгоритм автоматического  контроля настройки нейросетевых  моделей. 

     Рассмотрим  подробнее каждый из пунктов.  

     Использование группы взаимосвязанных показателей 

     Традиционно в нейросетевых решениях присутствует некоторое число входов, на основе значений которых НС вычисляет один параметр, некоторым образом характеризующий  входной вектор. Если использовать данный подход для прогнозирования, то настроенная сеть будет способна предсказывать состояние единственного  показателя лишь на один шаг вперед. Одним из вариантов решения является использование метода «плавающего  временного окна», когда входные  данные для периода времени  t формируются на основе наборов показателей за n предшествующих периодов, а выходной вектор значений представляет собой аналогичный набор за период времени t + 1. Таким образом, вводя во входной вектор значения Xt-2, Xt-1, Xt (при n=3), мы получали на выходе прогнозное значение X`t+1, которое затем можно было опять же подать на входы в комбинации Xt-1, Xt, X't+1 для получения выходного вектора значений Х``t+2. Естественно, что точность прогноза периода t+k тем меньше, чем больше число k, но это присуще любому способу моделирования ситуации. Данный способ моделирования обладает рядом недостатков:

     1) невозможно задать или выделить  факторы, которые оказывают влияние  на конкретный показатель;

     2) нейронная сеть должна обладать  весьма сложной структурой, поскольку  она одновременно (параллельно) вычисляет  прогноз не по одному показателю, а по вектору выходных значений;

     3) использование традиционного критерия  предотвращения состояния "переобученности"  ограниченно из-за сложности модели;

     4) настройка и дообучение подобной  НС требуют значительных затрат  машинного времени. 

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

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

     1) нивелируются все недостатки  предыдущего способа моделирования  сложных экономических процессов; 

     2) подобное разделение НС не  только значительно снижает затраты  машинного времени на обучение, но и позволяет настраивать  и оценивать НС, моделирующие  различные показатели, по отдельности; 

     3) появляется возможность без значительного  усложнения модели повысить ее  стабильность путем одновременного  прогнозирования значений показателя  за p последующих периодов и использования в качестве входных значений взвешенного среднего по p элементам.  

     Комбинированный алгоритм выявления определяющих факторов

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

     1. Составление первоначального набора  независимых переменных.

     2. Эволюционная оптимизация полученного  набора.

     3. Пост процессная обработка списка  и его ручная «доводка». 

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

     Более подробно данный алгоритм будет описан ниже. 

     Автоматический  контроль настройки нейросетевых моделей 

     Традиционно оценка качества сети производится на основе максимальной и средней ошибок на обучающей выборке19. Иногда используются также значения максимальной и средней  ошибок на тестовой выборке20.

     19 Указанные параметры характеризуют  степень аппроксимации, в том  числе и к «шуму».

     20 Показатели того, насколько правильно  в модели определены основные  зависимости. 

     Следует заметить, что, если рассматривать процесс  формирования сетевой модели в динамике, то можно выявить весьма интересные тенденции: сначала все 4 показателя ошибок убывают, но затем в некоторой  точке ошибки на тестовой выборке  начинают возрастать, а сеть входит в состояние «переобученности», аппроксимируя «белый шум». Представляется (к сожалению, в литературе пока данный вопрос подробно не освещался), что  одним из способов выбора момента  остановки обучения является продолжение  настройки сети, пока скользящие средние  по значениям ошибок продолжают уменьшаться  или рост ошибок на тестовой выборке  незначителен по сравнению с уменьшением  ошибок на обучающем множестве.

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

     Как мы видим, контроль настройки нейросетевых моделей можно автоматизировать использованием нескольких простых  правил, что и было сделано в  программной реализации нейросетевого  моделирования макроэкономических процессов.

 

 

     3. Процесс построения комплексной  нейросетевой модели 

     Весь  процесс создания модели можно разделить  на следующие этапы:

     1. Подготовка данных.

     2. Выявления определяющих факторов  для каждого показателя.

     3. Построение нейронных субмоделей.

     4. Объединение субмоделей и прогнозирование. 

     Рассмотрим  подробнее каждый из перечисленных  этапов. 

     Подготовка  данных

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

     1. Сглаживание исходных временных  рядов не является обязательным, т.к. НС обладают «способностью»  к абстрагированию. Кроме того, любое сглаживание искажает данные, что не может не отразиться  на качестве модели.

     2. Предпочтительнее представление  данных не в абсолютных показателях,  а в относительных темпах прироста. Это вызвано необходимостью  нормализации данных перед их использованием в обучении НС.21

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

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

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

     1) Window22 – максимальный лаг для независимых переменных;

     2) Forecast – глубина прогноза;

     3) iBegin – количество наблюдений с начала периода, которые исключаются из обработки;

     4) iEnd – количество наблюдений с конца периода, которые исключаются из обработки (если предполагается провести ретроспективный анализ, то показатель должен быть больше нуля).

     После загрузки данных определяются следующие  значения:

     1) DataFieldCount – число используемых временных рядов;

     2) OriginalCount – размерность временных рядов;

     3) AbsolutePeriodCount – максимальный размер множества, который можно сформировать из имеющихся данных (определяется как OriginalCount - iBegin - iEnd - Window – Forecast);

     4) NormalizationType – тип нормализации (линейная, экспоненциальная, автоматическая, без нормализации) для каждого временного ряда.  

     Выявление определяющих факторов

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

     1. Составление первоначального набора  независимых переменных.

     2. Эволюционная оптимизация полученного  набора.

     3. Пост процессная обработка списка  и его «доводка». 

     Составление первоначального набора независимых  переменных

     Сначала необходимо выбрать значение показателя FactorCount (5-10), который определяет число независимых переменных в наборе. При увеличении данного показателя:

     1) точность модели возрастает;

     2) растет «требовательность» к  вычислительным ресурсам;

     3) затрудняется анализ модели;

     4) возрастает вероятность «переобучения»  нейронной сетей, т.к. число  нейронов во входном слое равняется  числу независимых переменных.

     Первичный набор независимых переменных наиболее простым образом можно сформировать используя коэффициенты линейной корреляции. Строится прямоугольная матрица  с числом строк равным DataFieldCount * Forecast (все комбинации переменных и количества прогнозных шагов) и числом столбцов DataFieldCount * Window (все комбинации переменных и значений лагов). Затем каждая ячейки заполняется коэффициентом, отражающим степень линейной зависимости между переменными в строках и в столбцах. После этого для каждой из независимых переменных формируется список, содержащий FactorCount зависимых переменных, степень корреляции с которыми наиболее высока.

Информация о работе Нейросетевое программирование макроєкономики