С.М. АРАКЕЛЯН, В.Г. ПРОКОШЕВ, А.О. КУЧЕРИК, И.В. ЛИПИН ОБРАБОТКА ОДНОМЕРНЫХ РЕАЛИЗАЦИЙ ПРОЦЕССОВ

advertisement
СЕКЦИЯ 10
С.М. АРАКЕЛЯН, В.Г. ПРОКОШЕВ, А.О. КУЧЕРИК,
И.В. ЛИПИН
Владимирский государственный университет
woffi@narod.ru, akucherik@yandex.ru
ОБРАБОТКА ОДНОМЕРНЫХ РЕАЛИЗАЦИЙ ПРОЦЕССОВ
НА ОСНОВЕ НЕЙРОСЕТЕЙ С ГЕНЕТИЧЕСКИМ
АЛГОРИТМОМ
Аннотация
Целью данной работы является разработка нейронной сети, использующей совместно нейросетевые и генетические алгоритмы обучения при
прогнозировании экономических показателей. Полученные результаты
демонстрируют улучшение прогноза нейронной сети при совместном использовании нейросетевого и генетического алгоритмов обучения по
сравнению с обучением каждым из алгоритмов в отдельности, что доказывает целесообразность совместного обучения и дальнейших разработок
в этой области.
Вопросу создания и обучения нейронных сетей посвящено немало литературы, конференций, статей. Существует множество различных подходов как к построению нейронных сетей, так и к алгоритмам их обучения
[1, 2, 3, 4]. Использование того или иного алгоритма обучения сети – вопрос каждой конкретной задачи. Каждый из методов обучения может дать
очень плохой результат в одних задачах, и очень хороший в других. Однако, существуют и другие способы решения задач, которые решаются
при помощи нейронных сетей. Исходя из этого, можно поставить перед
собой вопрос о совместном использовании данных способов решения.
Рассмотрим обучение нейронных сетей для прогнозирования экономических показателей с использованием в качестве вспомогательного алгоритма обучения так называемый генетический алгоритм, который позволяет за счёт операций скрещивания и мутации расширить пространство
поиска решений, благодаря чему мы можем получить решение более хорошее, чем получили бы при обычном нейросетевом обучении, а также
увеличить скорость обучения нейронной сети [5].
История и основные теоретические данные о нейронных сетях и генетических алгоритмах опубликованы многими авторами и в данной работе
приводиться не будут, поскольку, чтобы получить достаточно полное
представление о принципах работы нейронных сетей и генетических алУДК 004.032.26(06) Нейронные сети
244
СЕКЦИЯ 10
горитмах – достаточно почитать, например, книгу Ф. Уоссермена «Нейрокомпьютерная техника: теория и практика», статьи Росса Клемента, публикации С. Короткого и др. [6, 7, 8]
Для решения данной задачи использовался язык программирования
Borland C++ 3.1 for DOS, как наиболее универсальный, легко переводимый на любые платформы и за счёт того, что написанный на нём код легко встраивается в другие приложения.
В процессе работы был реализован класс, позволяющий создать однослойную нейронную сеть с заданным количеством входов и нейронов в
слое, а также с тремя различными способами обучения: нейросетевым,
при котором веса подстраиваются по принципам нейронной сети, генетическим, при котором весовые коэффициенты подбираются исключительно
генетическим алгоритмом, и совместным способом обучения, при котором сначала веса подстраиваются нейронной сетью, после чего происходит подбор генетическим алгоритмом [9, 10]. Реализованная нейронная
сеть тестировалась на периодической функции, использовавшейся для
проверки работы программы, и на реальных данных курсов валют, взятых
с электронной биржи FOREX в период с 1 января 1993 года по 31 декабря
2003 года.
Сложность реализации программы заключалась в том, что генетический алгоритм работает с популяцией решений, размером в несколько
сотен или тысяч особей. Поскольку динамически выделить такой объём
памяти не представляется возможным, было решено использовать файловый ввод/вывод. Первоначальная реализация нейронной сети предполагала подачу на входы сети абсолютных курсов, считанных из файла, и автоматический расчёт количества выходов сети и интерпретации значений
каждого из выходов в зависимости от подаваемых на вход данных. Однако на самом начальном этапе расчёта состояний нейронов, выходных значений и написания программы стали очевидными два факта: во-первых,
чтобы получить приемлемые значения выходов для такого типа входных
данных, требовалось, чтобы весовые коэффициенты принимали значения
порядка 10-4 – 10-6, поскольку, если значения весов были больше, все
выходы сети давали значение, равное единице; во-вторых, если бы на
каждом шаге, при подаче на вход новых значений, количество выходов
сети пересчитывалось, то сразу возникла бы проблема интерпретации таких выходов, поскольку сеть не смогла бы обучиться, заведомо имея для
каждого из подаваемых на вход наборов значений разные выходы. Ведь
первый выход первого подаваемого набора значений вполне мог соответствовать последнему из выходов второго набора; и, в-третьих, сеть, обуУДК 004.032.26(06) Нейронные сети
245
СЕКЦИЯ 10
чившаяся на отношении курса американского доллара к японской йене,
лежащего в диапазоне 100-130 йен за один доллар, не дала бы правильного результата для отношения курса американского доллара к российскому
рублю, попадающего за тот же промежуток времени в диапазон от нескольких тысяч рублей за доллар до деноминации, до тридцати рублей за
доллар в 2002 – 2003 гг. Соответственно, требовалось зафиксировать количество выходов сети и как-то изменить формат входных данных таким
образом, чтобы они не зависели от наименований валют и их курсов относительно друг друга.
Далее было решено подавать на вход сети курс относительный, вычисляющийся следующим образом: сначала вычисляется средний за подаваемый на вход период времени курс, после чего значения подаваемых на
вход курсов делятся на его среднее значение. Таким образом, мы получаем на входе сети значения, близкие к единице. Такой способ представления входных данных одновременно решал вопрос с количеством выходов.
Очевидно, что в большинстве случаев диапазон изменений курса за подаваемый сети на вход период времени не очень велик и значение, которое
требуется спрогнозировать, тоже изменилось не намного по сравнению со
средним по входам курсом. Таким образом, для определения количества
выходов сети достаточно оценить диапазон изменения курсов. Для тестовой выборки курса американского доллара (USD) к японской йене (JPY)
экспериментально было вычислено количество выходов, равное 37. Однако, для получения более точного прогноза на выходе сети, в качестве
среднего берётся не среднее по входам значение, а значение, соответствующее последнему из входов, то есть значение курса накануне того
дня, на который требуется составить прогноз. Соответственно, на выходе
сети мы получим число, близкое к единице. Это значение изменения курса относительно курса за последнюю поданную на вход дату.
Программа тестировалась на различных наборах входных данных, с
малым (10-20), средним (40-70) и большим (более 100) количеством образов, подаваемых на вход сети и тремя различными способами обучения.
При этом, в зависимости от сложности входных данных, их количества и
способа обучения сети, были получены различные результаты.
На рис. 1 – 3 изображены графики, показывающие различные варианты прогноза при обучении сети на основе периодической зависимости с
большим количеством входных образов.
Рис. 1 соответствует нейросетевому обучению с большим количеством
входных образов. Точность прогноза в этом случае так же достигает 7580 %, однако скорость обучения заметно снижается.
УДК 004.032.26(06) Нейронные сети
246
СЕКЦИЯ 10
2, 0000
1, 0000
97
93
89
85
81
77
73
69
65
61
57
53
49
45
41
37
33
29
25
21
17
9
13
5
1
0, 0000
- 1, 0000
- 2, 0000
Идеальное значение
Прогнозируемое значение
Рис. 1. Прогноз при нейросетевом обучении
с большим количеством входных образов
На рис. 2 показаны идеальный и спрогнозированный графики курсов,
полученные при генетическом обучении сети с большим количеством
входных образов. Точность прогноза составляет 60 % при очень низкой
скорости обучения.
1,5000
1,0000
0,5000
0,0000
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51
53
55
57
59
61
63
65
67
69
71
73
75
77
79
81
83
85
87
89
91
93
95
97
99
-0,5000
-1,0000
-1,5000
Идеальное значение
Прогнозируемое значение
Рис. 2. Прогноз при генетическом обучении
с большим количеством входных образов
Рис. 3 показывает прогноз курса, полученный при совместном обучении сети нейросетевым и генетическим алгоритмами с большим количеством входных образов. Скорость обучения так же выше скорости, отмеченной при использовании отдельно нейросетевого и отдельно генетического обучений. Точность прогноза составляет 85 %.
1, 5000
1, 0000
0, 5000
97
100
94
91
88
85
82
79
76
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
7
10
4
1
0, 0000
- 0, 5000
- 1, 0000
- 1, 5000
Иде а ль н о е зн а ч е н ие
Пр о гн о зир у е мо е зн а ч е н ие
Рис. 3. Прогноз при совместном обучении
с большим количеством входных образов
УДК 004.032.26(06) Нейронные сети
247
СЕКЦИЯ 10
На рис. 4 – 12 изображены графики, показывающие прогноз при различных способах обучения нейронной сети на основе реального курса
американского доллара (USD) по отношению к японской йене (JPY), зафиксированного на электронной бирже FOREX в период с 1 января
1993 года по 31 декабря 2003 года.
140,00
130,00
120,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
7
10
4
1
110,00
Прогнозируемое значение
Рис. 4. Прогноз при нейросетевом обучении
с малым количеством входных образов
При нейросетевом обучении и малом количестве входных образов
точность прогноза достигает 45-50 %. Идеальный и спрогнозированный
графики представлены на рис. 4. Скорость обучения сети в этом случае
достаточно высока, однако точность прогноза недостаточна.
На рис. 5 представлены идеальный и спрогнозированный графики, соответствующие нейросетевому обучению со средним количеством входных образов. Точность прогноза в этом случае достигала 60-65 % при
средней скорости обучения.
140,00
130,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
10
7
4
1
120,00
Прогнозируемое значение
Рис. 5. Прогноз при нейросетевом обучении
со средним количеством входных образов
Рис. 6 соответствует нейросетевому обучению с большим количеством
входных образов. Точность прогноза в этом случае так же достигает 6065 %, однако скорость обучения заметно снижается.
УДК 004.032.26(06) Нейронные сети
248
СЕКЦИЯ 10
140,00
135,00
130,00
125,00
120,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
7
10
4
1
115,00
Прогнозируемое значение
Рис. 6. Прогноз при нейросетевом обучении
с большим количеством входных образов
На рис. 7 представлен прогноз, соответствующий генетическому обучению с малым количеством входных образов. Скорость обучения сети в
этом случае низкая, а точность прогноза составляет 45 %.
140,00
130,00
120,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
10
7
4
1
110,00
Прогнозируемое значение
Рис. 7. Прогноз при генетическом обучении
с малым количеством входных образов
Рис. 8 показывает идеальный и спрогнозированный графики, соответствующие генетическому обучению нейронной сети со средним количеством входных образов. Точность прогноза составляет 55-60 % при очень
низкой скорости обучения.
140,00
130,00
120,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
10
7
4
1
110,00
Прогнозируемое значение
Рис. 8. Прогноз при генетическом обучении
со средним количеством входных образов
УДК 004.032.26(06) Нейронные сети
249
СЕКЦИЯ 10
На рис. 9 показаны идеальный и спрогнозированный графики курсов,
полученные при генетическом обучении сети с большим количеством
входных образов. Точность прогноза составляет 60 % при очень низкой
скорости обучения.
140,00
130,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
7
10
4
1
120,00
Прогнозируемое значение
Рис. 9. Прогноз при генетическом обучении
с большим количеством входных образов
Рис. 10 показывает прогноз курса, полученный при совместном обучении сети нейросетевым и генетическим алгоритмами с малым количеством входных образов. Скорость обучения выше скорости, отмеченной
при использовании отдельно нейросетевого и отдельно генетического
обучений. Точность прогноза в данном случае порядка 45-50 %.
140
130
120
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
10
7
4
1
110
Прогнозируемое значение
Рис. 10. Прогноз при совместном обучении с малым количеством входных образов
Рис. 11 показывает прогноз курса, полученный при совместном обучении сети нейросетевым и генетическим алгоритмами со средним количеством входных образов. Скорость обучения так же выше скорости, отмеченной при использовании отдельно нейросетевого и отдельно генетического обучений. Точность прогноза составляет 65-70 %.
140,00
135,00
130,00
125,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
10
7
4
1
120,00
Прогнозируемое значение
УДК 004.032.26(06) Нейронные сети
250
СЕКЦИЯ 10
Рис. 11. Прогноз при совместном обучении
со средним количеством входных данных
Рис. 12 показывает прогноз курса, полученный при совместном обучении сети нейросетевым и генетическим алгоритмами с большим количеством входных образов. Скорость обучения так же выше скорости, отмеченной при использовании отдельно нейросетевого и отдельно генетического обучений. Точность прогноза составляет 65-70 %.
140,00
135,00
130,00
125,00
Идеальное значение
73
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
19
16
13
7
10
4
1
120,00
Прогнозируемое значение
Рис. 12. Прогноз при совместном обучении
с большим количеством входных данных
Экспериментально установлено, что для малого количества входных
образов, подаваемых сети на этапе обучения, ни один из предложенных
вариантов обучения не даёт достаточно хорошего прогноза. Это связано с
тем, что при небольшом размере обучающей выборки сеть учится распознавать лишь некоторые из возможных значений. Для среднего и большого количества входных образов, подаваемых сети на этапе обучения, точность прогноза в среднем составляет от 65-70 % для реальных значений
курсов валют, до 85-90 % для периодической зависимости, однако при
увеличении количества входных образов время обучения сети заметно
возрастает. Наихудшие результаты для среднего и большого количества
входных образов были получены при использовании генетического обучения нейронной сети без обращения к нейросетевым принципам подстройки весов. Результат генетического алгоритма зависит, в первую очередь, от того, каким образом хромосома кодирует данные. Соответственно, оптимизация хромосомы приведёт к улучшению точности прогноза и
скорости обучения сети. Также, анализируя полученные результаты, можно сказать, что наилучшие прогноз и скорость обучения нейронной сети
при данной архитектуре получены при совместном использовании
нейросетевого и генетического обучений сети для среднего и большого
количества входных образов. Кроме того, полученные результаты можно
улучшить за счёт внесения изменений в архитектуру нейронной сети, ввеУДК 004.032.26(06) Нейронные сети
251
СЕКЦИЯ 10
дения в неё многослойности, применения при обучении алгоритмов обратного распространения ошибки, обучения без учителя и других. Однако, необходимо отметить, что при усложнении архитектуры сети и введении в неё дополнительных слоёв реализация генетического алгоритма
заметно усложняется, поскольку, при увеличении количества весовых
коэффициентов, размер популяции в реализации генетического алгоритма
растёт экспоненциально. Причём, при усложнении алгоритма генетического обучения сети, время обучения также увеличится [5, 9, 10].
Таким образом, мы видим, что использование генетического обучения
совместно с обучением нейросетевым позволяет улучшить точность прогноза, увеличить скорость обучения сети, и, следовательно, имеет смысл
совмещать различные способы решения, каждым из которых в отдельности можно получить решение, но за более долгое время и, зачастую, гораздо более плохое, чем при использовании совместных алгоритмов решения задачи.
Список литературы
1. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. 2-е
изд., стереотип. М.: Горячая линия-Телеком, 2002. 382 с.: ил.
2. Короткий С. Нейронные сети: основные положения.
3. Уоссермен Ф. Нейрокомпьютерная техника: теория и практика. М.: Мир, 1992.
4. Горбань А.Н. и др. Нейроинформатика / А.Н. Горбань, В.Л. Дунин-Барковский,
А.Н. Кирдин - Новосибирск: Наука. Сибирское предприятие РАН, 1998. 296 с.
5. Росс Клемент. Генетические алгоритмы: почему они работают, когда их применять // Компьютерра. 1999. № 11. С. 47-54.
6. Ежов А.А., Шумский С.А. Нейрокомпьютинг и его применения в экономике и бизнесе. М.: МИФИ, 1998. 224 с.
7. Соколов Е.Н., Вайткявичус Г.Г. Нейроинтеллект: от нейрона к нейрокомпьютеру.
М.: Наука, 1989. 238 с.
8. Цыпкин Я.З. Основы теории обучающихся систем. М.: Наука, 1970. 252 с.
9. Коренюшкин А. Генетические алгоритмы // Программист. 2003. № 2. С. 74-80.
10. Рутковская Д., Пилиньский М., Рутковкий Л. Нейронные сети, генетические алгоритмы и нечёткие системы. М.: Горячая линия – Телеком, 2004. 452 с.
УДК 004.032.26(06) Нейронные сети
252
Download