Прогнозирование временных рядов данных с использованием нейросетевых технологий

Федеральное агентство по образованию

государственное образовательное учреждение

Сибирский государственный индустриальный университет 
 
 
 
 

РЕФЕРАТ 
на тему «Прогнозирование временных рядов данных 
с использованием нейросетевых технологий»
 
 
 

Выполнил: Дружилов А.С. 
 
 
 
 
 

Новокузнецк, 2009 г.

Содержание

 

Общие сведения о прогнозировании

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

  1. Управление материально-производственными запасами.
  2. Планирование производства.
  3. Финансовое планирование.
  4. Разработка расписания персонала.
  5. Планирование нового продукта.
  6. Управление технологическим процессом.

     На  основании вышеизложенного можно  сказать, что прогнозирование - это  предсказание будущих событий. Целью прогнозирования является уменьшение риска при принятии решений. Прогноз обычно получается ошибочным, но ошибка зависит от используемой прогнозирующей системы [2]. Предоставляя прогнозу больше ресурсов, мы можем увеличить точность прогноза и уменьшить убытки, связанные с неопределенностью при принятии решений.

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

     Методы  прогнозирования можно разделить  на два класса: квалитативные и квантитативные. Квалитативные процедуры производят субъективную оценку, основанную на мнении экспертов. Обычно, это формальная процедура для получения обобщенного предсказывания, на основе ранжирования и обобщения мнения экспертов (например на основе методов Делфи) [5].

     С другой стороны, квантиативные процедуры  прогнозирования явно объявляют - каким образом получен прогноз. Четко видна логика и понятны математические операции. Эти методы производят исследование исторических данных для того, чтобы определить глубинный процесс, генерирующий переменную и предположив, что процесс стабилен, использовать знания о нем для того, чтобы экстраполировать процесс в будущее. К квантитативным процедурам прогнозирования относятся методы, основанные на статистическом анализе, анализе временных последовательностей, байесовском прогнозировании, наборе фрактальных методов, нейронных сетях [1].

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

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

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

     Практически, прогнозирующие системы часто используют комбинацию квантитативных и квалитативных методов. Квантитативные методы используются для последовательного анализа исторических данных и формирование прогноза. Это придает системе объективность и позволяет эффективно организовать обработку исторических данных [7].

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

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

     В общем случае X означает некоторую  совокупность {X1, X2,…} наблюдаемых случайных величин, которые в рассматриваемом контексте называются предсказывающими (или прогнозными) переменными, и задача состоит в построении такой функции Ф(Х), которую можно было бы использовать в качестве оценки для прогнозируемой величины Y:Ф(Х)=Y (т.е. чтобы она была в каком-то смысле "близка" к Y); такие функции Ф(Х) называют предикторами величины Y по X. Разработка методов построения оптимальных (в том или ином смысле) предикторов и составляет главную задачу прогнозирования.

     Если  совокупность величин {X1, X2, …, Xn} представляет собой значения какого-либо параметра, изменяющегося во времени, то такую совокупность называют временным рядом, при этом каждое значение соответствует значению параметра в конкретное время t1, t2, …,tn. Задача прогнозирования в этом случае заключается в определении значения измеряемой величины X в момент времени tn+1, tn+2, tn+3,…, то есть для выполнения прогнозирования необходимо выявить закономерность этого временного ряда [11].

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

     Одношаговым прогнозированием называют краткосрочный  прогноз (на один шаг), при этом для  получения прогнозированной величины используют только фактические данные [6]. Ясно, что одношаговое прогнозирование более точно, но оно не позволяет выполнять долгосрочные прогнозы.

Сведения о нейронных сетях

     Биологический нейрон моделируется как устройство, имеющее несколько входов (дендриты), и один выход (аксон). Каждому входу  ставится в соответствие некоторый  весовой коэффициент (w), характеризующий пропускную способность канала и оценивающий степень влияния сигнала с этого входа на сигнал на выходе [5]. В зависимости от конкретной реализации, обрабатываемые нейроном сигналы могут быть аналоговыми или цифровыми (1 или 0). В теле нейрона происходит взвешенное суммирование входных возбуждений, и далее это значение является аргументом активационной функции нейрона, один из возможных вариантов которой представлен на рисунке 1.

Рисунок 1 – Искусственный нейрон

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

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

    Согласно  методу наименьших квадратов, минимизируемой целевой функцией ошибки НС является величина [8]:

       (1)

    где – реальное выходное состояние нейрона j выходного слоя N нейронной сети при подаче на ее входы p-го образа; djp – идеальное (желаемое) выходное состояние этого нейрона.

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

       (2)

    Здесь wij – весовой коэффициент синаптической связи, соединяющей i-ый нейрон слоя n-1 с j-ым нейроном слоя n, h – коэффициент скорости обучения, 0<h<1.

      (3)

    Здесь под yj,  подразумевается выход нейрона j, а под sj – взвешенная сумма его входных сигналов, то есть аргумент активационной функции. Так как множитель dyj/dsj является производной этой функции по ее аргументу, из этого следует, что производная активационной функция должна быть определена на всей оси абсцисс. В связи с этим функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых НС. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой. В случае гиперболического тангенса:

       (4)

    Третий  множитель sj/wij,  равен выходу нейрона предыдущего слоя yi(n-1). Первый множитель в (3) раскладывается следующим образом:

      (5)

    Здесь суммирование по k выполняется среди  нейронов слоя n+1.

    Введя новую переменную

      (6)

    мы  получим рекурсивную формулу для расчетов величин dj(n) слоя n из величин dk(n+1) более старшего слоя n+1.

      (7)

    Для выходного слоя:

      (8)

    Теперь  зипишем (2) в раскрытом виде:

      (9)

    Иногда  для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции [10], (9) дополняется значением изменения веса на предыдущей итерации:

      (10)

    где m – коэффициент инерционности, t – номер текущей итерации. 

    Основными интересными на практике возможностями  нейронных сетей являются такие [12]:

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

Прогнозирование как задача распознавания  образов

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

     Пусть существует конечное множество графических  образов, которые нужно распознать, и соответствующие им двоичные коды желаемых выходов (идентификаторов) [2]. В совокупности мы получили обучающее множество, в котором каждому графическому образу соответствует двоичный идентификатор. Спроецируем каждый образ на панель и сопоставим ему двоичный код - это код графического образа.

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

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

     Задача  прогнозирования может быть сведена к задаче распознавания образов, описанной выше, для этого применяется метод окон (метод windowing). Метод windowing позволяет выявить закономерности во временном ряде на основе сведения анализа временного ряда к задаче распознавания образов и последующего ее решения на нейросети, описанным выше способом.

     Основная  идея метода: вводится два окна, одно из которых входное (input), второе - выходное (output). Эти окна фиксированного размера  для наблюдения данных. Окна способны перемещаться с некоторым шагом S. В результате получаем некоторую последовательность наблюдений, которая составляет обучающее множество. Входному окну соответствует вход нейросети, а выходному окну - желаемый образ.

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

     МНОГОШАГОВОЕ  ПРОГНОЗИРОВАНИЕ. Используется для осуществления долгосрочного прогноза и предназначено для определения основного тренда и главных точек изменения тренда для некоторого промежутка времени в будущем. При этом прогнозирующая система использует полученные (выходные) данные для моментов времени k+1, k+2 и т.д. в качестве входных данных для прогнозирования на моменты времени k+2, k+3 и т.д.

     Предположим, система обучилась на некоторой временной последовательности. Затем она спрогнозировала k+1 элемент последовательности, например, равный 95, когда на ее вход был подан последний из известных ей образов (99,98,96,98) . После этого она осуществляет дальнейшее прогнозирование и на вход подается следующий образ (98,96,98,95) . Последний элемент этого образа является прогнозом системы. И так далее.

     ОДНОШАГОВОЕ ПРОГНОЗИРОВАНИЕ. Используется для  краткосрочных прогнозов, обычно - абсолютных значений последовательности. Осуществляется прогноз только на один шаг вперед, но используется реальное, а не прогнозируемое значение для осуществления прогноза на следующем шаге.

     Для рассмотренной выше временной последовательности, на шаге k+1 система прогнозирует требование 95, хотя реальное значение должно быть 96. На шаге k + 2 в качестве входного образа будет использоваться образ (98,96,98,96). Как было сказано выше, результатом прогноза на НС является класс к которому принадлежит переменная, а не ее конкретное значение. Формирование классов должно проводиться в зависимости от того каковы цели прогнозирования. Общий подход состоит в том, что область определения прогнозируемой переменной разбивается на классы в соответствии с необходимой точностью прогнозирования. Классы могут представлять качественный или численный взгляд на изменение переменной.

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

Рисунок 2 – Прогнозирование временного ряда

     Совокупность  известных значений временного ряда образуют обучающую выборку, размерность  которой характеризуется значением m. Для прогнозирования временных рядов используется метод "скользящего окна". Он характеризуется длиной окна p, которая равняется количеству элементов ряда, одновременно подаваемых на нейронную сеть. Это определяет структуру нейронной сети, которая состоит из p распределительных нейронов и одного выходного нейрона.

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

             (11)

     где — весовые коэффициенты нейронной сети; — оценка значения ряда в момент времени .

     Ошибка  прогнозирования определяется, как

      .         (12)

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

      .     (13)

     Это эквивалентно перемещению окна по ряду с единичным шагом.

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

Возможные способы улучшения  прогнозаторов

Использование предварительной  обработки данных

      Для различных объектов применения (рядов  данных различной природы) характерны свои особенности. Использование этих особенностей может существенно повысить качество прогнозов. Такими особенностями могут являться циклические последовательности, возникающие в ряде данных, шумы с определённым вероятностным распределением, закономерности, повторяемость похожих участков данных, кластеризируемость ряда данных [3].

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

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

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

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

Использование нескольких прогнозирующих систем

       Целью прогнозирования является уменьшение риска при формировании решений. Качество прогноза зависит от структуры  прогнозирующей системы. Использование разнообразных алгоритмов, может увеличить точность прогноза и уменьшить убытки, связанные с принятием решений.

       Задание интервала прогнозирования зависит  от условий принятия решений. При этом интервал прогнозирования - отрезок будущего времени, с которым соотносится прогноз, может быть различным и определяется требованиями системы, использующей прогнозные оценки. Прогноз будет иметь значение, если интервал прогнозирования не меньше времени, необходимого для реализации решения учитывающего этот прогноз. Часто для улучшения качества прогнозирования, рекомендуется уменьшить время необходимое для принятия решения, так как уменьшается интервал прогнозирования [11].

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

       Рассмотрим  основные методы прогнозирования [7]:

       1) Метод двойного  прогнозирования  расчетных показателей (расчетный показатель (РП) определяется посредством каких-либо преобразований первичных (исходных) величин), пояснением которому служит рисунок 3, вытекает из возможности решения соответствующей задачи  по двум методическим ветвям, а именно: 1) прогнозирование динамики первичных (условно) величин с вычислением требуемых оценок РП по прогнозированным данным; 2) вычисление РП по фактическим данным о первичных величинах с прогнозированием динамики РП.

       Полезным  бывает комбинирование основных вариантных прогнозов с помощью, например, их «взвешенного» суммирования, медианирования (при четном числе), сглаживания совмещенных последовательностей. Комбинированные (объединенные) прогнозные оценки также трактуются как варианты прогноза РП [2].

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

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

Прогнозирование временных рядов данных с использованием нейросетевых технологий