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.
Описание алгоритма обучения Н-сети
Прежде всего, необходимо отметить, что наш алгоритм состоит из двух модулей: модуля тасования пар-примеров и модуля генетического алгоритма глобальной оптимизации.
Алгоритм тасования пар-примеров
Смысл алгоритма заключается в том, чтобы заставить Н-сеть запомнить все примеры и превратиться в модель, представляющую собой "черный ящик", который умеет на парах-примерах правильно сопоставлять входу нужный выход. При этом важно не переобучить сеть. Выражаясь образно - сеть должна вобрать в себя только основной смысл, заложенный в парах-примерах, и пропустить ненужные подробности, засоряющие память.
Здесь можно провести параллель со способностью человека использовать аналогию при принятии решений в ситуациях, не знакомых ему ранее. Прежде всего, следует сказать, что этот алгоритм относится только к парам-примерам, к каждой из которых в свою очередь применяется алгоритм оптимизации, выбранный пользователем.
Схема алгоритма тасования точек на окне:
Модификация генетического алгоритма
В предлагаемом нами алгоритме, как и в других алгоритмах этого класса, имеется стандартный набор варьируемых параметров: размер популяции, уровень мутации, алгоритм изменения мутаций. Модификация нашего алгоритма состоит в применении упрощенной схемы изменения уровня мутаций. Пользователь задает начальный и конечный уровень мутаций в условных единицах и количество итераций алгоритма, за которое уровень мутаций уменьшится с начального значения до конечного. При этом уменьшение уровня мутаций происходит по линейному закону вида . Действие мутаций на координату весового вектора можно описать формулой , где у - уровень мутаций в условных единицах.
Результаты экспериментов
В качестве подтверждения правильности выбора нами третьего подхода приведем сводные таблицы результатов экспериментов. Данные, прогнозируемое значение, лаговые периоды, тип и параметры Н-сети были идентичны. Различие состояло исключительно в том, что 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
|
Заключение.
Проанализировав результаты, можно сделать несколько важных выводов: При использовании подхода с минимизацией суммарной функции ошибки Н-сеть, как правило, переобучается и, не смотря на отличное качество обучения, прогнозируемые значения далеки от реальных. Другими словами - качественное обучение еще не означает успех при прогнозировании. Предложенный нами алгоритм тасования точек автоматически исключает возможность переобучения, и несмотря на относительно плохое качество обучения, дает на порядок лучшие результаты при прогнозе, чем результаты наших коллег, использующих первый подход.
Применение упрощенной схемы изменения мутаций в генетическом алгоритме увеличивает скорость сходимости и не отражается на качестве прогноза.