3.8. Применение НС в задачах прогнозирования в макроэкономике.

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

Дело в том, что набор образцов для обучения - это только набор образцов и не более, и рассматривать их нужно не в какой-либо статистической последовательности или в какой-либо схеме приоритетов, но просто как постоянно тасуемое множество пар-примеров, извлечь из которых закономерность (если таковая имеется) и есть задача Н-сети.

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

Весовые коэффициенты сети.

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

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

Подходы к обучению Н-сетей, использующие технологию плавающего окна.

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

Дело в том, что:

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

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

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

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

Black Oracle Pro™ . Краткая информация.

Весь опыт нашей работы над нейро-сетевой проблематикой воплощен в нейро-пакете Black Oracle Pro (BOP). ВОР предназначен для работы в системах Windows 95, 98, 98SE, NT4 WS. В пакете применяется Н-сеть типа ВР с одним внутренним слоем. Обучение можно производить тремя алгоритмами (градиентным, модифицированным градиентным, модифицированным генетическим) по двум критериям (точность, тенденция). Помимо этого ВОР имеет удобный интерфейс, позволяющий визуально сохранять результаты экспериментов и следить за процессом обучения посредством как графического, так и цифрового мониторинга процесса.

Система создана с использованием технологии СОМ, что позволяет выбрасывать отчеты в MS Excel одним нажатием кнопки, что дает поистине неограниченные возможности для дальнейшей обработки результатов прогнозирования. Детальную информацию о пакете можно найти на сайте http://www.znanie.kiev.ua/bopro.htm.

Описание алгоритма обучения Н-сети

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

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

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

Схема алгоритма тасования точек на окне:

  1. К каждой паре-примеру применяется алгоритм оптимизации, в результате которого мы получаем весовой вектор, при котором ошибка на данной паре-примере меньше или равна заданной . Таким образом, первый раз пройдя по окну последовательно по каждой паре-примеру, мы получаем весовой вектор W.
  2. Далее, используя полученный W, мы еще раз проходим по окну и составляем массив ошибок, соответствующий парам-примерам, в результате получая некую схему приоритетов по значениям ошибок.
  3. Теперь мы снова проходим по парам-примерам оптимизирующим алгоритмом, но уже не последовательно, а в соответствии со значениями массива ошибок. А именно, начинаем с пары, которой соответствует наибольшая ошибка, и заканчиваем парой с наименьшей ошибкой. При этом пары, на которых на данной итерации достигнута заданная точность, в обучении не участвуют. После этого шага мы получаем новый весовой вектор W и переходим к пункту 2.
  4. Обучение заканчивается по достижении заданной точности на каждой паре-примере, либо если превышено допустимое заданное пользователем количество итераций алгоритма тасования.

Модификация генетического алгоритма

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

Результаты экспериментов

В качестве подтверждения правильности выбора нами третьего подхода приведем сводные таблицы результатов экспериментов. Данные, прогнозируемое значение, лаговые периоды, тип и параметры Н-сети были идентичны. Различие состояло исключительно в том, что Black Oracle Pro™ использует при обучении третий подход, а альтернативная программа - первый подход.

Исходные данные: Пять показателей экономики Украины ([М0] агрегат М0, [М2] агрегат М2, [ИОЦ] индекс оптовых цен, [ИПЦ] индекс потребительских цен, [КВВЭ] кредиты, вложенные в экономику) представлены в виде временных рядов. Данные охватывают период с 01.01.1995 по 01.12.1997, замеры производились ежемесячно. В качестве прогнозируемой величины был взят [ИПЦ].

Лаговая модель Н-сети: Вход (М0[-7], М2[-7], ИОЦ[0], КВВЭ[-7], ИПЦ[0]), выход (ИПЦ[+1]).

Схема эксперимента: Используется окно размером 12 пар-примеров, что составляет 12 месяцев, требуется предсказать 13-ю точку. Сдвигая окно с единичным шагом, спрогнозируем 11 точек. В качестве критерия оптимизации обучающего алгоритма используется точность прогноза - СКО.

Параметры сети: Число входов - 5, число выходов - 1, размерность внутреннего слоя - 10, точность обучения пары-примера - 1.е-5. Параметры генетического алгоритма пакета ВОР: Размер популяции - 40, начальный уровень мутаций у = 320, конечный уровень мутаций - у = 20, предполагаемое число итераций на окне 1000, закон изменения уровня мутаций- линейный.

Таблица 1. Фрагмент исходных данных.

ДАТА
М0
М2
ИОЦ
ИПЦ
КВВЕ
1
01.01.95
4,70
2,00
29,20
21,20
2,10
2
01.02.95
15,40
13,20
11,40
18,10
13,40
3
01.03.95
18,70
8,00
9,30
11,40
10,10

Сводные таблицы результатов экспериментов при различных подходах к обучению: (Условные обозначения: ВР - алгоритм Back Propagation, evo - эволюционный, fall back - с методом отката, Heuristics - с эвристикой, shock - шоковый метод, HJ - метод Хука-Дживса, BO PRO - обозначение применяется к результатам, полученным с помощью BOPro™, GEN генетический алгоритм)

Таблица 2. Результаты прогнозов Н-сети.

Номер прогнозируемой точки
13
14
15
16
17
18
19
20
21
22
23
Реальное значение ИПЦ
2,00000
1,50000
1,20000
0,90000
2,20000
1,20000
0,10000
0,80000
0,80000
0,10000
0,10000
Прогнозные значения ИПЦ BP
-2,61693
16,78020
4,06173
-0,29532
-1,41080
0,73349
0,83411
2,96490
1.02889
2,86605
1,61711
BP evo
-2,51540
18,48400
1,47290
0,30536
0,89443
-0,23587
1,23837
1,49985
0,95191
0,90922
4,40915
BP fall back
1,60667
5,42990
3,66196
3,49016
3,49310
3,53568
3,42473
1,69144
2,88601
3,08078
3,26891
BP fall back evo
1,88306
3,51883
3,45194
3,24742
3,18056
3,55969
3,49103
2,56382
3,10869
3,26143
2,96084
BP vector step
-0,38645
6,98760
0,14191
-0,05191
1,04855
0,81644
1,75377
13,41150
0,89207
0,43113
2,33873
BP vector step evo
-2,59518
20,58640
7,77759
7,07751
1,82606
-0,15846
1,09559
1,02163
0,88354
0,49311
2,27434
BP shock
-1,57723
21,23830
13,45170
-0,34041
1,63206
0,08989
1,52497
0,52489
0,54410
0,68132
1,44070
HJ evo
-1,04974
3,20592
1,70183
1,13786
0,90540
1,09172
1,32837
-0,64299
1,01506
2,12583
1,74362
Ctrld HJ
23,84410
4,06094
3,39974
1,46598
1,85068
2,41256
3,93228
23,85000
0,80862
2,55357
1,63993
Ctrld HJ evo
-0,18824
23,85000
-0,40545
3,33762
2,79692
4,79724
-0,08866
9,39836
0,77528
1,19131
1,31284
BO PRO BP
0,20638
3,63469
0,20638
1,65343
0,84505
1,28644
1,71371
0,22254
0,47426
0,61324
1,49207
BO PRO GEN
0,48119
1,83151
1,26425
0,73327
0,76671
1,15991
1,34110
0,35309
0,48425
0,74165
0,92018
BO PRO GEN + BP
0,44310
1,55333
1,13124
0,63042
0,59576
1,11238
1,40165
0,38367
0,52715
0,56870
0,76824

Номер дельты прогноза
delta13
delta14
delta15
delta16
delta17
delta18
delta19
delta20
delta21
delta22
delta23
Total delta
Модули разностей реального и прогнозного значений BP
4,61693
15,28020
2,86173
1,19532
3,61080
0,46651
0,73411
2,16490
0,22889
2,76605
1,51711
35,44255
BP evo
4,51540
16,98400
0,27290
0,59464
1,30557
1,43587
1,13937
0,69985
0,15191
0,80922
4,30915
32,21687
BP fall back
0,39333
3,92990
2,46196
2,59016
1,29310
2,33568
3,32473
0,89144
2,08601
2,98078
3,16891
25,45600
BP fall back evo
0,11694
2,01833
2,25194
2,34742
0,98056
2,35969
3,39103
1,7682
2,30869
3,16143
2,86084
23,56069
BP vector step
2,38465
5,48760
1,05809
0,95191
1,15145
0,38356
1,65377
12,61150
0,09207
0,33113
2,23873
28,34627
BP vector step evo
4,59518
19,08640
6,57759
6,17751
0,37394
1,35846
0,99559
0,22163
0,08354
0,39311
2,17434
42,03729
BP shock
3,57723
19,73830
12,25170
1,24041
0,56794
1,11011
1,42497
0,27512
0,25590
0,58132
1,34070
42,36370
HJ evo
3,04974
1,70592
0,50183
0,23786
1,29460
0,10828
1,22837
1,44299
0,21506
2,02583
1,64362
13,45410
Ctrld HJ
21,84410
2,56094
2,19974
0,56598
0,34932
1,21256
3,83228
23,05000
0,00862
2,45357
1,53993
59,61704
Ctrld HJ evo
2,18824
22,35000
1,60545
2,43762
0,59692
3,59724
0,18866
8,59836
0,02472
1,09131
1,21284
43,89136
BO PRO BP
1,79362
2,13469
0,99362
0,75343
1,35495
0,08644
1,61371
0,57746
0,32574
0,51324
1,39207
11,53898
BO PRO GEN
1,51881
0,33151
0,06425
0,16673
1,43329
0,04009
1,24110
0,44681
0,31575
0,64165
0,82018
7,02026
BO PRO GEN + BP
1,55690
0,05333
0,06876
0,26958
1,60424
0,08762
1,30165
0,41633
0,27285
0,46870
0,66824
6,76819

Значение СКО пооконно
№1
№2
№3
№4
№5
№6
№7
№8
№9
№10
№11
Сумма СКО
Алгоритм обучения
Н-сети
BP
0,01004
0,00050
0,00017
0,00011
0,00360
0,00010
0,00941
0,00404
0,00046
0,00086
0,00632
0,03560
BP evo
0,01758
0,01688
0,01578
0,01212
0,00350
0,00127
0,00725
0,00562
0,00471
0,00404
0,00579
0,09453
BP fall back
0,08545
0,05997
0,07233
0,07759
0,08534
0,07547
0,07580
0,07996
0,07768
0,07525
0,08004
0,84486
BP fall back evo
0,09106
0,06115
0,04839
0,05092
0,05001
0,03832
0,03548
0,03315
0,03654
0,03380
0,03769
0,51651
BP vector step
0,00000
0,00000
0,00000
0,00000
0,00000
0,00000
0,00000
0,00000
0,00000
0,00000
0,00001
0,00001
BP vector step evo
0,00206
0,00334
0,00287
0,00255
0,00179
0,00072
0,00262
0,00389
0,00301
0,00157
0,00156
0,02588
BP shock
0,01259
0,00565
0,00054
0,00943
0,00171
0,00112
0,00875
0,01279
0,00413
0,01162
0,00853
0,07684
BP shock evo
0,08801
0,04254
0,03813
0,03491
0,03113
0,02847
0,02046
0,02046
0,02046
0,02046
0,02046
0,36546
HJ evo
0,06618
0,04055
0,03973
0,04308
0,04422
0,03408
0,02023
0,02700
0,03022
0,02356
0,02356
0,39373
Ctrld HJ
0,07061
0,10169
0,10971
0,11653
0,11831
0,11226
0,11599
0,11461
0,18192
0,17575
0,18347
1,40083
Ctrld HJ evo
0,00728
0,01384
0,01852
0,01079
0,01570
0,00844
0,00749
0,00780
0,01978
0,02143
0,01280
0,14386
BO PRO BP
0,09296
0,06322
0,05600
0,05212
0,05097
0,04258
0,02884
0,02731
0,02716
0,01811
0,00893
0,46819
BO PRO GEN
0,08877
0,05318
0,04984
0,04853
0,04890
0,03028
0,02535
0,02767
0,02436
0,02144
0,02295
0,44127
BO PRO GEN + BP
0,07930
0,05080
0,04780
0,04610
0,04460
0,02950
0,02170
0,02507
0,02551
0,02428
0,02042
0,41508

Заключение.

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

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