ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(Н И У «Б е л Г У»)
ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК
КАФЕДРА МАТЕМАТИЧЕСКОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
ИНФОРМАЦИОННЫХ СИСТЕМ
ИСПОЛЬЗОВАНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ
ПРОГНОЗИРОВАНИЯ ПОТРЕБИТЕЛЬСКОГО СПРОСА В
СЕГМЕНТЕ СТРОИТЕЛЬНЫХ ТОВАРОВ
Магистерская диссертация
обучающейся по направлению подготовки 02.04.01 Математика и
компьютерные науки очной формы обучения, группы 07001531
Помётовой Натальи Николаевны
Научный руководитель
к.т.н., доцент
Чашин Ю.Г.
Рецензент
к.т.н., доцент
Заливин А.Н.
БЕЛГОРОД 2017
СОДЕРЖАНИЕ
ВВЕДЕНИЕ .............................................................................................................. 4
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ НЕЙРОСЕТЕВОГО
ПРОГНОЗИРОВАНИЯ ........................................................................................... 6
1.1. Актуальность задачи прогнозирования .................................................... 6
1.2. Нейронные сети как средство анализа процесса ..................................... 8
1.3. Классификация нейронных сетей по количеству слоев ....................... 10
1.3.1. Однослойные нейронные сети .......................................................... 10
1.3.2. Многослойные нейронные сети ........................................................ 11
1.4. Обучение искусственной нейронной сети ............................................. 11
1.5. Методы нейросетевого прогнозирования .............................................. 13
1.5.1. Нейросети обратного распространения ........................................... 13
1.5.2. Сеть Кохонена .................................................................................... 18
1.5.3. Гибридные нейронные сети .............................................................. 22
2. НЕЙРОСЕТЕВОЕ ПРОГНОЗИРОВАНИЕ СПРОСА СТРОИТЕЛЬНЫХ
ТОВАРОВ .............................................................................................................. 27
2.1. Выбор программного средства для решения задачи .............................. 27
2.1.1. Службы Microsoft Analysis Services .................................................... 27
2.1.2. Платформа Microsoft BI Solution builder ............................................ 28
2.1.3. Oracle Data Mining Suite ....................................................................... 29
2.1.4. Статистический пакет Statistical Package for the Social Sciences
(SPSS) ............................................................................................................... 30
2.1.5. Oracle Crystal Ball .................................................................................. 31
2
2.1.6. Пакет MATLAB..................................................................................... 32
2.2. Обоснование выбора программного средства для исследования .......... 33
2.3. Выбор архитектуры и метода обучения нейронной сети в системе
Matlab................................................................................................................... 34
2.3.1. Модель обучения нейронной сети ...................................................... 34
2.3.2. Алгоритм обучения метода обратного распространения ................ 36
2.3.3. Гибридный алгоритм обучения (MATLAB ANFIS) .......................... 38
2.4.
Моделирование
нейронной
сети
для
прогнозирования
потребительского спроса строительных товаров ........................................... 39
2.4.1. Настройка сети обратного распространения .................................... 39
2.4.3. Настройка гибридной нейронной сети ............................................... 40
3. СБОР И АНАЛИЗ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ ................................. 41
3.1. Информационное обеспечение задачи. Данные о продажах.................. 42
3.2. Проведение эксперимента .......................................................................... 47
3.3. Сравнительный анализ методов ................................................................ 58
ЗАКЛЮЧЕНИЕ ..................................................................................................... 60
БИБЛИОГРАФИЧЕСКИЙ СПИСОК .................................................................. 61
3
ВВЕДЕНИЕ
В современном мире, с постоянно меняющимися экономическими
условиями, спросом и предложениями, невозможно заниматься бизнесом на
основе лишь накопленного собственного опыта. Следует анализировать
текущее
состояние
рынка,
тенденции
его
развития
прогнозировать
возможные его изменения, а также успешность своей деятельности в
будущем.
В нестабильных условиях рыночной экономики деятельность любого
предприятия в значительной степени зависит от того, насколько точно и
достоверно оно может предвидеть перспективы своего развития в будущем,
т.е. осуществлять прогнозирование продаж, а, соответственно, и прибыли.
Прогноз является одной из главных обязанностей любого руководителя, так
как это важная составляющая успеха компании.
Аппарат нейронных сетей – мощный инструмент для прогнозирования
потребительского спроса. Нейронные сети позволяют отыскать скрытые
зависимости между показателями и получить при этом наиболее точный
прогноз данных, потому и является более предпочтительным.
Целью магистерской диссертации является выявление оптимальной
методики прогнозирования с использованием нейронных сетей в отрасли
строительных материалов.
Для
достижения
поставленной
цели
необходимо
решить
ряд
следующих задач:
• изучить нейросетевые методы прогнозирования;
• выбрать несколько методов нейросетевого прогнозирования для
проведения эксперимента;
• провести анализ программных средств, позволяющий выполнить
4
прогнозирование методом нейронных сетей, обосновать выбор программного
средства;
• провести анализ временных рядов продаж строительных товаров
определить их характер (стационарность, сезонность, и др. показатели);
• провести отбор наиболее значимых факторов, влияющих на
объемы продаж строительных товаров по их статистическим оценкам;
• сформировать входные данные для обучения НС;
• провести эксперимент для определения методики обучения сети,
позволяющей спрогнозировать продажи строительных товаров наиболее
точно.
Структура магистерской диссертации обусловлена целью и задачами
исследования. Работа состоит из введения, трех глав и заключения.
Введение
раскрывает
актуальность
задачи
прогнозирования,
определяет степень научной разработки темы, объект, предмет,
цель и
задачи, раскрывает теоретическую и практическую значимость работы.
В
первой
главе
рассматриваются
нейросетевые
методы
для
прогнозирования.
Во второй главе осуществляется выбор программного средства, а так
же настройка нейронной сети для прогноза.
Третья
глава
посвящена
сбору
входных
данных,
проведению
эксперимента, а так же сравнительному анализу результатов.
В
заключении
подводятся
итоги
исследования,
формируются
окончательные выводы по рассматриваемой теме.
Магистерская диссертация содержит 64 страницы, 38 рисунков, 2
таблицы, 1 листинг.
5
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ НЕЙРОСЕТЕВОГО
ПРОГНОЗИРОВАНИЯ
1.1.
Актуальность задачи прогнозирования
«Того, кто не задумывается о далеких трудностях, непременно
поджидают близкие неприятности» - писал Конфуций.
Прогнозирование происходящего в природе и обществе свойственно
человеку с момента его появления на Земле. Одним из наиболее древних
известных источников применения прогнозирования будущего является
книга «Прогностика», написанная Гиппократом более 2000 лет назад.
В современном мире роль прогнозирования в жизни общества
значительно возросла. Оно влияет не только на жизнь конкретного человека
в отдельности, но и на существование различных организаций и управление
ими. В начале XX века А. Файоль описывал прогнозирование как
самостоятельную функцию управления. Именно ему принадлежат слова
«Управлять – значит: предсказывать, планировать, организовывать». [26]
Как и любой человек, живущий в обществе, управленец постоянно
должен прогнозировать последствия своих решений и действий. Умение
прогнозирования у человека может быть развито в большей или меньшей
степени, но без него его шансы на выживание в окружающей среде
минимальны. [13] Это касается и существования организаций во внешней
среде, которое, в первую очередь, зависит от системы управления
конкретной организации. Чем выше уровень прогнозирования в организации,
тем больше
вероятность
осуществления оптимального
эффективного
управления ею с целью сохранения ее целостности и обеспечения ее
развития.[21]
6
Статистика проведенных исследований показывает, что эффективность
принимаемых управленческих решений тесно связано с прогнозированием,
применяемым в организации. Так, в одном из них были получены данные в
результате опроса 217 вице-президентов из 109 крупнейших американских
компаний.
Было
выявлено,
руководители,
которые
использование
прогнозирование при составлении планов деятельности организации,
добились большего успеха в соотношении получаемой прибыли к объему
реализации товара/услуги и, в конечном итоге, в общем доходе от
деятельности организации. [26]
Прогнозирование в управлении организацией необходимо для:
• определения социально-экономических задач, которые может
поставить и решить организация в течение прогнозируемого периода
времени;
• выявления тенденций используемых технологий и научных разработок
и их влияния на будущую деятельность организации;
• выявления всех возможных вариантов путей развития науки, техники,
экономики, культуры и выбор наиболее оптимального пути развития каждого
из них в отношении организационной деятельности;
• определения материальных, трудовых, природных ресурсов, которыми
будет располагать организация на прогнозируемый период времени;
• выявления потребностей экономики и общества в продаваемой
продукции.
В итоге, прогнозирование дает организациям следующие преимущества:
• предоставление организации дополнительного конкурентного
преимущества
на
внешнем
рынке,
которое
повышает
адаптивные
способности к выживанию организации, а также обеспечивает расширение
горизонта принимаемых управленческих решений;
• снижение неопределенности и рисков в развитии организации, а также
обеспечение опережающей информацией;
7
• обеспечение грамотного опережающего обучения персонала, т.е.
грамотное осуществление инвестиций в «человеческий капитал»;
• принятие более взвешенных и грамотных управленческих решений;
• усиление эффективности (оптимальное использование ресурсов) и
продуктивности (достижение поставленных целей) управления.
На основании проведенного исследования можно сделать следующий
вывод: прогнозирование является одной из важнейших функций в
обеспечении существования организаций, а также в управлении ими.
1.2.
Нейронные сети как средство анализа процесса
С математической точки зрения нейронная сеть представляет собой
многослойную
сетевую
структуру,
состоящую
из
однотипных
(и
сравнительно простых) процессорных элементов - нейронов. Нейроны,
связанные
между
собой
сложной
топологией
межсоединений,
группируются в слои (как правило, два-три), среди которых выделяются
входной и выходной слои. В нейронных сетях, применяемых для
прогнозирования, нейроны входного слоя воспринимают информацию о
параметрах ситуации, а выходной слой сигнализирует о возможной
реакции на эту ситуацию. Перед постановкой на "боевое дежурство"
нейронная сеть проходит специальный этап настройки - обучения.
Как правило, сети предъявляется большое количество заранее
подготовленных входных данных, для каждого из которых известна
требуемая реакция сети. Если сеть реагирует на очередной пример
неадекватно, т.е. состояние выходного слоя значительно отличается от
заданного, в таком случае, внутренняя структура сети подвергается
модификациям для минимизации ошибки (в большинстве случаев это
происходит за счет корректировки веса соединений).
8
После определенного периода обучения сеть достигает состояния,
соответствующего минимальной суммарной ошибке. Для некоторых задач
суммарная ошибка может составлять 2-3%, для других может доходить до
10-15%, ряд задач вообще не поддается решению на нейронных сетях.
Вкратце перечислим основные преимущества нейронных сетей:
1. Наиболее ценное свойство нейронных сетей – способность
обучаться на множестве входных параметров в тех случаях, когда
неизвестны закономерности и зависимости между входными и выходными
данными. В таком случае (а к ним можно отнести до 80% задач
финансового анализа) пасуют как традиционные математические методы,
так и экспертные системы.
2. Ещё одним ценным свойством нейронных сетей является то, они
способны
успешно
решать
опираясь
на
неполную,
искаженную,
зашумленную и внутренне противоречивую входную информацию.
3. Для использования методов математического анализа
потребуется профессионал-математик. Эксплуатация обученной нейронной
сети по силам и старшекласснику.
4. Нейросетевые пакеты могут быть легко интегрированы с базами
данных, электронной почтой и т.д., тем самым автоматизируя процесс ввода
и первичной обработки данных.
5. Внутренний параллелизм, присущий нейронным сетям, позволяет
практически
безгранично
(насколько
хватит
кошелька)
наращивать
мощность нейросистемы. Вы можете начать с простого и дешевого пакета,
потом перейти на профессиональную версию, потом добавить одну-две-три
платы-ускорителя, потом перейти на специализированный нейрокомпьютер
с гарантией полной преемственности всего ранее созданного программного
обеспечения.
В маркетинге нейронные сети применяются для прогнозирования
изменения спроса на товары или услуги в зависимости от их стоимости,
9
функций и т.п. Для обучения сети достаточно представить реальные данные
по рынку за различные периоды. Нейросеть хороша тем, что для
неопытного пользователя неважно, какая существует зависимость между
входными данными, главное - что нейросеть может предсказать будущее
значение спроса, зная сегодняшнее его значение, средний уровень цен,
общий объем рынка.
1.3.
Классификация нейронных сетей по количеству слоев
1.3.1. Однослойные нейронные сети
Простейшая сеть состоит из группы нейронов, образующих слой, как
показано в правой части рисунка 1.1. Отметим, что вершины-круги слева
служат лишь для распределения входных сигналов. Они не выполняют
каких-либо вычислений, и поэтому не будут считаться слоем. [25]
Рис. 1.1. Однослойная нейронная сеть
Удобно считать веса элементами матрицы W. Матрица имеет n строк и
m столбцов, где m - число входов, а n - число нейронов. Например, w2,3 - это
вес, связывающий третий вход со вторым нейроном. Таким образом,
вычисление выходного вектора N, компонентами которого являются выходы
10
OUT нейронов, сводится к матричному умножению N=XW, где N и Х векторы-строки.
1.3.2. Многослойные нейронные сети
Многослойные сети могут образовываться каскадами слоев. Выход
одного слоя является входом для последующего слоя. Подобная сеть
показана на рисунке 1.2, она изображена со всеми соединениями.
Рис. 1.2. Двухслойная нейронная сеть
Многослойные
сети
приводят
к
увеличению
вычислительной
мощности по сравнению с однослойной сетью лишь в том случае, если
активационная функция между слоями будет нелинейной.
1.4.
Обучение искусственной нейронной сети
Целью обучения нейросети является найти для некоторого множества
входов желаемое (или, по крайней мере, сообразное с ним) множество
выходов. Каждое такое множество входное (или выходное) рассматривается
как отдельный вектор. Обучение происходит путем последовательного
11
предъявления входных векторов и одновременной подстройкой весов в
соответствии с определенной процедурой. В процессе обучения веса сети
постепенно становятся такими, чтобы из каждого входного вектора
вырабатывался выходной.
Существуют следующие стратегии обучения: "обучение с учителем" и
"обучение без учителя".
"Обучение с учителем" предполагает, что для каждого входного
вектора существует целевой вектор, представляющий собой требуемый
выход. Вместе эти два вектора являются обучающей парой. Векторы
обучающего множества предъявляются последовательно, затем вычисляется
ошибка и веса постепенно подстраиваются для каждого вектора до тех пор,
пока значение ошибки по всему обучающему массиву не достигнет
приемлемо низкого уровня.
Обучение без учителя является намного более правдоподобной
моделью обучения в биологической системе. Развитая Кохоненом [16] и
многими другими [18], она не нуждается в целевом векторе для выходов и,
следовательно, не требует сравнения с предопределенными идеальными
ответами. Обучающее множество в этом случае состоит лишь из входных
векторов. Обучающий алгоритм подстраивает веса нейросети так, чтобы
получались согласованные выходные векторы, т.е. чтобы предъявление
достаточно близких входных векторов давало одинаковые выходы.
Ошибка обучения для сконструированной нейронной сети вычисляется
путем сравнения выходных и целевых (желаемых) значений. Из полученных
разностей формируется функция ошибок.
Функция ошибок - это целевая функция, которая требует минимизации
в процессе управляемого обучения нейронной сети. [25]
12
1.5.
Методы нейросетевого прогнозирования
1.5.1. Нейросети обратного распространения
Обратное распространение - это систематический метод для обучения
многослойных искусственных нейронных сетей. Он имеет солидное
математическое обоснование.
На рисунке 1.3 показан нейрон, который используется в качестве
основного строительного блока в сетях обратного распространения. На вход
сети подается множество входных данных извне, либо идущий от
предшествующего слоя. Каждый из входов перемножается с весом, а их
произведения суммируются. Эта сумма, обозначаемая NET, вычисляется для
каждого нейрона сети отдельно. После того, как величина NET вычислена,
она модифицируется с помощью активационной функции и получается
сигнал OUT. [25]
Рис. 1.3. Искусственный нейрон с активационной функцией
На рисунке 1.4. показана активационная функция, которая наиболее
часто используется для сетей обратного распространения. Сигмоидальная
функция или по-другому сигмоид весьма удобна, так как имеет простую
производную, что используется при реализации алгоритма.
13
Рис. 1.4. Сигмоидальная активационная функция
Многослойная сеть, изображенная на рисунке 1.5, способна обучаться с
помощью метода обратного распространения. (Для ясности рисунок
упрощен). Первый (входной) слой нейронов служит лишь в качестве
распределительных точек, входы здесь не суммируются. Входной сигнал
просто проходит через них к весам на их выходах. А каждый нейрон
последующих слоев, в свою очередь, выдает сигналы NET и OUT, как
описано выше.
Рис. 1.5. Двухслойная сеть обратного распространения
Целью обучения сети является такая подстройка ее весов, чтобы подача
на нейросеть некоторого множества входов приводила к требуемому
множеству выходов. Для краткости эти множества входов и выходов будем
14
называть векторами. При обучении предполагается, что для каждого
входного вектора существует парный ему целевой вектор, задающий
требуемый выход. Вместе они называются обучающей парой. Как правило,
нейросеть обучается на многих парах.
Обучение сети обратного распространения включает в себя следующие
этапы:
1. Выбор очередной обучающей пары из обучающего множества;
подача входного вектора на вход сети.
2. Вычисление выхода сети.
3. Вычисление разности между выходом сети и требуемым выходом
(целевым вектором обучающей пары).
4. Корректировка веса сети для минимизации ошибки.
5. Повторение шагов с 1 по 4 для каждого вектора обучающего
множества до тех пор, пока значение ошибки на всем множестве не
достигнет приемлемого уровня.
На рисунке 1.6 показан процесс обучения для одного веса от нейрона р
в скрытом слое j к нейрону q в выходном слое k. Выход нейрона слоя k,
вычитаясь из целевого значения (Target), дает сигнал ошибки. Он
умножается
на
производную
сжимающей
функции
OUT
(1-OUT),
вычисленную для этого нейрона слоя k, давая, таким образом, величину δ.
15
Рис. 1.6. Алгоритм настройки веса в выходном слое
Формула вычисления величины δ выглядит следующим образом 1.1:
δ = OUT (1 - OUT) (Target - OUT)
(1.1)
Затем δ умножается на величину OUT нейрона j, из которого выходит
рассматриваемый вес.
Это произведение в свою очередь умножается на коэффициент
скорости обучения η (обычно от 0.01 до 1.0), и результат прибавляется к
весу.
Такая же процедура выполняется для каждого веса от нейрона
скрытого слоя к нейрону в выходном слое.
16
Следующие уравнения (1.2 и 1.3) иллюстрируют это вычисление:
Δwpq,k = η δq,k OUT
wpq,k (n+1) = wpq,k (n) + Δwpq,,
(1.2)
(1.3)
где:
• wpq,k (n) - величина веса от нейрона p в скрытом слое к нейрону q в
выходном слое на шаге n (до коррекции), так что индекс k относится к слою,
в котором заканчивается данный вес, т.е. с которым он объединен;
• wpq,k (n+1) - величина веса на шаге n+1 (после коррекции);
• δq,k - величина δ для нейрона q, в выходном слое k;
• OUTp,j - величина OUT для нейрона р в скрытом слое j.
Для каждого нейрона в данном скрытом слое должно быть вычислено δ
и скорректированы все веса, ассоциированные с этим слоем. Этот процесс
повторяется поочередно, слой за слоем в направлении входа, пока все веса не
будут подкорректированы (рисунок 1.7).
Рис. 1.7. Настройка веса в скрытом слое
17
Достоинства метода обратного распространения:
• достаточно высокая эффективность. Прямой ход, обратный ход и
вычисления градиента требуют порядка O(Hn + HM) операций;
• через каждый нейрон проходит информация только о связных с ним
нейронах. Это дает возможность легко реализовывать этот метод на
вычислительных устройствах с параллельной архитектурой.
• высокая степень общности. Алгоритм легко записать для
произвольного числа слоёв, произвольного количества входов и выходов,
произвольной функции потерь и произвольных функций активации,
возможно, различных у разных нейронов.
К недостаткам этого метода можно отнести то, что метод не всегда
имеет хорошую сходимость, а так же то, что при чрезмерно большом числе
весов сеть склонна к переобучению.
С первым недостатком приходится бороться путем применения
большого количества различных эвристических ухищрений. [25]
1.5.2. Сеть Кохонена
Сети (слои) Кохонена (Kohonen T.) относятся к самоорганизующимся
нейронным сетям. Самоорганизующаяся сеть позволяет выявлять кластеры
(группы) входных векторов, обладающих некоторыми общими свойствами.
Кластеризация
-
это разделение исследуемого множества объектов на
группы "похожих" объектов, называемых кластерами. Кластеризация
позволяет сгруппировать сходные данные, что облегчает решение ряда задач
Data Mining. [29] В том числе и задачи прогнозирования. Относя новый
объект к одному из кластеров, можно прогнозировать поведение объекта,
поскольку его поведение будет схожим с поведением объектов кластера.
18
Важно
кластера.
отметить
Каждому
роль
кластеру
содержательной
необходимо
интерпретации
присвоить
каждого
содержательное
название, отражающее суть объектов кластера. Для этого необходимо
выявить,
признаки,
объединяющие объекты
в
кластер.
Это
может
потребовать статистического анализа свойств объекта кластера. С помощью
сетей
Кохонена производится
кластеризация
объектов, описываемых
количественными характеристиками.
Сеть (слой) Кохонена (рисунок 1.8) - это однослойная сеть,
построенная из нейронов типа WTA (Winner Takes All - победитель получает
все).
Рис. 1.8. Структура сети Кохонена
Каждый нейрон сети соединен со всеми компонентами m-мерного
входного вектора xi = (xi1, xi2,..., xim). Входной вектор - это описание одного
из объектов, подлежащих кластеризации. Количество нейронов совпадает с
количеством кластеров, которое должна выделить сеть. В качестве нейронов
сети Кохонена применяются линейные взвешенные сумматоры (формула
1.4):
19
𝑚
𝑠𝑗 = 𝑏𝑗 + ∑ 𝑤𝑖𝑗 𝑥𝑖 ,
(1.4)
𝑖=1
где j - номер нейрона, i - номер входа, sj — выход адаптивного
сумматора, wij - вес i -го входа j -го нейрона, bj — порог.
Каждый j-ый нейрон описывается вектором весов
wj = (w1j ,w2j ,… , w mj), где m – число компонентов входных векторов.
С выходов адаптивных сумматоров сигнал поступает на функцию
конкуренции, работающую по правилу "победитель получает всё". Функция
конкуренции находит выход адаптивный сумматор с максимальным
значением выхода.
В сетях Кохонена используется обучение без учителя. Для обучения
сети применяются механизмы конкуренции. При подаче на вход сети вектора
x побеждает тот нейрон, вектор весов которого в наименьшей степени
отличаются от входного вектора. Для нейрона-победителя выполняется
соотношение 1.5:
𝑑(𝑥, 𝑤𝑗 ) = min 𝑑(𝑥, 𝑤𝑖 ),
1≤𝑖≤𝑛
(1.5)
где n - количество нейронов, j - номер нейрона-победителя, d(x, w) расстояние (в смысле выбранной метрики) между векторами x и w . Чаще
всего в качестве меры расстояния используется евклидова мера.
Перед процессом обучения производится инициализация сети, то есть
первоначальное задание векторов весов. В простейшем случае задаются
случайные значения весов.
Процесс обучения сети Кохонена состоит из циклического повторения
ряда шагов: [27]
20
1. Подача исходных данных на входы. Обычно это случайная выборка
одного из входных векторов.
2. Нахождение выхода каждого нейрона.
3. Определение "выигравшего" нейрона (веса которого в наименьшей
степени отличаются от соответствующих компонентов входного вектора),
или нейрона-победителя.
4. Корректировка весов "выигравшего" нейрона по правилу Кохонена по
формуле 1.6.
(𝑘+1)
𝑤𝑖
(𝑘)
= 𝑤𝑖
(𝑘)
+ 𝜂𝑖
(𝑘)
[𝑥 − 𝑤𝑖 ]
(1.6)
(𝑘)
где x - входной вектор, k - номер цикла обучения, 𝜂𝑖 - коэффициент
скорости обучения i -го нейрона в k-ом цикле обучения.
5. Переход на шаг 1, если обучение не завершено. Часто это условие
задается числом циклов обучения. Можно так же проверять достижение
малой величины функционала ошибки.
Недостатки карт Кохонена: [25]
• Субъективность. Не всегда понятно, какие именно особенности карты
обусловлены кластерной структурой данных, а какие - свойствами
потенциальной функции. Сглаженность границ кластеров и степень
детализации карты существенно зависят от выбора параметра β.
• Наличие искажений. Близкие объекты исходного пространства могут
переходить
в
далёкие
точки
на
карте.
В
частности,
объективно
существующие кластеры могут разрываться на фрагменты [9]. И наоборот,
далёкие объекты могут случайно оказаться на карте рядом, особенно, если
они были одинаково далеки от всех кластеров.
• Зависимость от инициализации. На процесс обучения существенно
21
влияет начальное распределение весов. Это
сказывается не только на
расположении кластеров, но даже на их количестве.
Не
секрет,
что
популярность
карт
Кохонена
обусловлена
в
значительной степени их эстетической привлекательностью и общим
впечатлением наукообразия и загадочности, которое они производят на
неискушённых пользователей. На практике они применяются в основном как
вспомогательное средство для предварительного визуального анализа и
понимания общей структуры многомерных данных. [25]
1.5.3. Гибридные нейронные сети
Гибридная нейронная сеть - это нейронная сеть с четкими сигналами,
весами и активационной функцией, но с объединением xi и wi,, p1 и p2 с
использованием непрерывных операций. [27]
Входы, выходы и веса гибридной нейронной сети - вещественные
числа, принадлежащие отрезку [0,1].
Рассмотрим следующие примеры элементарных гибридных нейронных
сетей, а именно: нечеткий нейрон «И» и нечеткий нейрон «ИЛИ».
Сигналы xi и веса wi в случае нечеткого нейрона «И» объединяются с
помощью треугольной конормы pi = S(wi, xi), i = 1,2, а выход образуется с
применением треугольной нормы по формуле 1.7:
y = AND(p1, p2) = T(p1, p2) = T(S(w1,x1),S(w2,,x2))
22
(1.7)
На рисунке 1.9 представлена структура гибридного нейрона «И».
Рис. 1.9. Структура гибридного нейрона "И"
Если принять T = min, S = max, тогда нечеткий нейрон "И" реализует
композицию min-max: y = min {w1Vx1, w2Vx2}.
В случае с нечетким нейроном «ИЛИ» сигналы xi и веса wi
объединяются с помощью треугольной нормы pi = T(wi, xi), при i = 1,2…, а
выход образуется с применением треугольной конормы по формуле 1.8:
y = OR(p1, p2) = S(p1, p2) = S(T(w1,x1),T(w2,,x2))
(1.8)
На рисунке 1.10 представлена структура гибридного нейрона «ИЛИ».
Рис. 1.10. Нечеткий нейрон "ИЛИ"
Если принять T = min, S = max, тогда нечеткий нейрон "ИЛИ"
реализует композицию max- min: y = max {w1x1, w2x2}.
Алгоритм Сугено является наиболее часто используемым при
построении адаптивных систем нейро-нечеткого вывода. [17]
На основе алгоритма нечеткого логического вывода строится система
рассуждений (рисунок 1.11)
23
Рис. 1.11. Система нечетких рассуждений
Система нечетких рассуждений состоят из пяти функциональных
блоков: [17]
• блок фаззификации, преобразующий численные входные значения
в степени соответствия лингвистическим переменным;
• база правил, содержащая набор нечетких правил типа если-то;
• база данных, в которой определены функции принадлежности
нечетких множеств используемых в нечетких правилах;
• блок принятия решений, совершающий операции вывода на
основании имеющихся правил;
• блок дефаззификации, преобразующий результаты вывода в
численные значения.
Традиционно база правил и база данных объединяются в общий блок база
знаний.
Рассмотрим
класс
адаптивных
сетей
функционально
эквивалентных системам нечетких рассуждений. Подобная архитектура
носит название ANFIS (это аббревиатура Adaptive-Network-Based Fuzzy
Inference System - адаптивная сеть нечеткого вывода). Она была предложена
Янгом (Jang) в начале девяностых. [34] ANFIS является одним из первых
вариантов гибридных нейро-нечетких сетей - нейронной сети прямого
распространения сигнала особого типа. Архитектура нейро-нечеткой сети
изоморфна нечеткой базе знаний. В нейро-нечетких сетях используются
дифференцируемые
реализации
треугольных
24
норм
(умножение
и
вероятностное ИЛИ), а также гладкие функции принадлежности. Это
позволяет
применять
для
настройки
нейро-нечетких сетей
быстрые
алгоритмы обучения нейронных сетей, основанные на методе обратного
распространения ошибки.
Ниже описываются архитектура и правила функционирования каждого
слоя ANFIS-сети. ANFIS реализует систему нечеткого вывода Сугено в виде
пятислойной нейронной сети прямого распространения сигнала. Назначение
слоев следующее: [34]
• первый слой-термы входных переменных;
• второй слой - антецеденты (посылки) нечетких правил;
• третий слой - нормализация степеней выполнения правил;
• четвертый слой - заключения правил;
• пятый слой - агрегирование результата, полученного по различным
правилам.
Алгоритм обучения адаптивной системы нейро-нечеткого вывода
можно разбить на следующие шаги [25]:
1. Определение для выборки правил, которые влияют на результат, это
те правила ˆi , которых не равно нулю.
2. Если есть нерассмотренные правила, влияющие на результат
считаем очередное правило и осуществляем переход на шаг 3, иначе на шаг
5.
3. Рассчитываем приращение для параметров функций принадлежностей,
определенных в заключение рассматриваемого правила.
4. Изменяется значение параметров функций принадлежности на
рассчитанную величину и переходим на шаг 2.
5. Рассчитывается выходное значение сети после изменения параметров
выходного слоя.
6. Определяется остаточная ошибка.
25
7. Если есть нерассмотренные правила, влияющие на результат
считываем очередное правило и переходим на шаг 8, иначе на шаг 12.
8. По предпосылкам правил определяем какие узлы первого слоя влияют
на результат.
9. Рассчитываем производную функции принадлежности для
определенных на предыдущем шаге узлов.
10. Рассчитываем приращение для параметров функций принадлежностей.
11. Изменяем значение параметров функций принадлежности на
рассчитанную величину и переходим на шаг 7.
12. Завершаем обучение и совершаем выход из процедуры.
Третий и четвертый шаги алгоритма реализуют обучение узлов
выходного слоя, пяты и шестой шаги вычисляют остаточную ошибку после
обучения выходного слоя, и шаги реализуют обучение узлов первого слоя
методом градиентного спуска.
26
2. НЕЙРОСЕТЕВОЕ ПРОГНОЗИРОВАНИЕ СПРОСА
СТРОИТЕЛЬНЫХ ТОВАРОВ
2.1. Выбор программного средства для решения задачи
Поскольку метод нейронных сетей является трудоемким в реализации,
а мы преследуем цель выбора оптимальной методики, то для его применения
следует выбрать готовые программные решения, которых в настоящее время
существует достаточно много. К ним можно отнести, например, Microsoft
Analysis Services, Microsoft BI Solution Builder, Oracle Data Mining Suite,
Oracle Crystal Ball, SPSS, MATLAB.
2.1.1. Службы Microsoft Analysis Services
В службах SQL Server Службы Analysis Services [42] алгоритм
нейронной сети (Майкрософт) сочетает каждое возможное состояние
входного атрибута с каждым возможным состоянием прогнозируемого
атрибута и использует обучающие данные для вычисления вероятностей.
Далее эти вероятности можно использовать для классификации или
регрессии, а также для прогнозирования исхода прогнозируемого атрибута на
основе входных атрибутов.
В модели интеллектуального анализа данных, которая создается при
помощи алгоритма нейронной сети Microsoft, может содержаться несколько
сетей, что определяется количеством столбцов, используемых для входа и
прогнозирования или только для прогнозирования. Количество сетей,
содержащихся в одной модели интеллектуального анализа данных, зависит
от количества состояний, содержащихся во входных и прогнозируемых
столбцах, используемых моделью интеллектуального анализа данных.
27
2.1.2. Платформа Microsoft BI Solution builder
Платформа Microsoft Power BI или просто Power BI – это новое
направление развития Бизнес – аналитики (BI), представляющее собой
облачные технологии для анализа и визуализации данных. Основное
преимущество данной технологии – это возможность построения красивых
информационных
панелей
(dashboard),
как
правило,
с
ключевыми
показателями деятельности компании, доступных на любом устройстве.
В BI-решениях от Microsoft сочетаются простота внедрения, отличная
масштабируемость и возможность использования знакомой пользователям
среды Microsoft Office.
Power BI содежит в себе два компонента: SQL Server 2008 и
PerfomancePoint Server 2007.
Продукт SQL Server 2008 помогает сделать больше ценных выводов на
основе изучения бизнес-данных и ускорить достижение целевых результатов,
а значит, и завоевать конкурентное преимущество. Кроме того, продукт SQL
Server 2008 предоставляет следующие возможности:
•
службы интеграции SQL Server 2008 позволяют оперативно объединять
многочисленные источники данных;
•
службы аналитики SQL Server 2008 обогащают содержание данных и
позволяют проводить сложный бизнес-анализ;
•
службы отчетов SQL Server 2008 предназначены для составления,
доставки и управления комплексными отчетами.
Сервер Microsoft Office PerformancePoint Server 2007 разрабатывался
специально
для
повышения
эксплуатационной
и
финансовой
производительности во всех отделах и на всех уровнях организации. Являясь
интегрированным приложением, он призван поддерживать формальную
бизнес-аналитику (BI) и процессы управления производительностью.
28
С помощью PerformancePoint Server 2007 можно:
•
отслеживать ход работы благодаря системе показателей или панели
мониторинга;
•
быстро находить причины отклонений от запланированных или
ожидаемых показателей;
•
вносить изменения в корпоративные планы или бюджет в связи с
изменившимися условиями.
2.1.3. Oracle Data Mining Suite
Корпорация Oracle предлагает своим пользователям набор продуктов
класса и сервисов класса Data Mining (Добыча Данных или ИАД
(Интеллектуальный Анализ Данных)). [43] Этот набор помогает компаниям
понять и предвидеть поведение клиентов (покупателей, заказчиков) и
создавать полные интегрированные решения по управлению отношениями с
клиентами (CRM).
В настоящее время используется комплект Oracle Data Mining Suite
(ранее известный как "Oracle Darwin") для построения моделей предсказания
(predictive
models),
обнаруживающих
скрытые
в
ваших
данных
закономерности и новую ценную информацию, которая может быть
использована:
•
в системах раннего обнаружения экстремальных ситуаций;
•
для более полного понимания поведения и запросов клиентов и
рыночной ситуации;
•
для определения эффективности различных видов продаж;
•
как помощь в борьбе со злоумышленниками.
Информация, извлеченная из данных таким образом, обеспечивает
бизнес-анализ, результатом которого является улучшение отношений с
29
клиентами и, тем самым, увеличение доходов и экономия в основном
бизнесе.
2.1.4. Статистический пакет Statistical Package for the Social
Sciences (SPSS)
Пакет SРSS (Statistical Package for the Social Sciences) – универсальный
статистический пакет компании SРSS Inc.[44] По мнению разработчиков
пакета, SPSS является одним из лидирующих программных продуктов в
области статистического анализа данных для решения вопросов в
правительственной, академической и бизнессфере. SРSS является модульной
программой.
Ее
основу
составляет
базовый
модуль
(SPSS
Base),
позволяющий осуществлять управление данными и содержащий наиболее
распространенные методы статистического анализа данных: проведение
описательной статистики; построение линейных и нелинейных моделей;
осуществление
преобразования
данных;
проведение
факторного,
кластерного, дисперсионного анализов; вычисление корреляций; построение
графиков; подготовка отчетов и пр.
Достоинства SPSS:
• развитый аппарат статистического анализа;
• универсальность (т.е. пакет может быть использован для решения
широкогокруга вопросов из различных предметных областей, требующих
проведения статистического анализа данных);
• широкий набор статистических и графических процедур (более 50
типов диаграмм) анализа данных, а также процедур создания отчетов;
• детальная контекстно-ориентированная справочная система,
которая позволяет неопытному пользователю с большей легкостью
ориентироваться в программе;
• совместимость с операционными системами Windows, Mac, Linux.
Недостатки SPSS:
30
• высокие требования к системе компьютера (требуется 1GB
оперативной памяти, 800MB памяти на жестком диске и процессор с
частотой 1GHz и выше);
• высокая цена по сравнению со статистическими пакетами
аналогичного уровня.
2.1.5. Oracle Crystal Ball
Oracle Crystal Ball – приложение к Microsoft Excel для моделирования
бизнес-процессов, определения рисков, прогнозирования неопределенных
переменных и оптимизации полученных результатов. [37] Crystal Ball
помогает
принимать
верные
тактические
решения
для
достижения
стратегических целей компании и получать конкурентные преимущества в
условиях большого числа постоянно меняющихся рыночных показателей.
Основные функции и преимущества:
•
Автоматизация «what-if» анализа. Возможность вычисления рисков:
Какова
вероятность
достижения
целей
компании?
Как
рассчитать
существенные факторы риска? Ответы на эти и на другие вопросы,
задаваемые в рамках методологии «что-если» могут быть получены путем
присвоения возможных значений неизвестным переменным. Crystal Ball
автоматизирует трудоемкие процессы, основанные на сценариях « what-if» с
использованием
разнообразные
методов
значения
моделирования
или
распределяя
Монте-Карло,
вероятности
присваивая
для
каждой
неизвестной переменной. Приложение многократно генерирует различные
значения в рамках указанного допустимого ряда, после чего выполняет
повторный расчет модели, сохраняя результаты каждого сценария «what-if».
•
Расширенные функциональные возможности: для опытных
31
пользователей в состав Crystal Ball включены инструменты для вычисления
корреляций, анализа чувствительности, аппроксимации распределения и
точные средства управления, обеспечивающие более качественный анализ.
•
Легко интерпретируемые графики и отчеты: Crystal Ball позволяет
быстро создавать графики и отчеты, которые иллюстрируют различные
допущения и итоговые прогнозы, существенно облегчая принятие решения.
•
Простота использования: приложение Crystal Ball просто в изучении и
не требует расширенных статистических или компьютерных знаний.
•
Достаточно навыков работы с Microsoft Excel. Большинство
функциональных возможностей Crystal Ball реализуется несколькими
щелчками мыши.
•
Интеграция с EPM приложениям: используя возможности Smart View,
пользователь получает доступ к данным различных EPM-продуктов, таких
как Essbase, Hyperion Planning, Strategic Finance и может использовать их для
дальнейшего анализа в Microsoft Excel. Впоследствии эти данные могут быть
применены как непосредственно для прогнозирования в Crystal Ball, так и
связаны с существующими моделями. При необходимости, результаты
проведенного в системе анализа могут быть отправлены обратно в
приложения EPM.
2.1.6. Пакет MATLAB
Пакет MATLAB (The MathWorks) также предоставляет пользователям
возможность работы с нейронными сетями. [41] Входящий в стандартную
поставку MATLAB "Neural Network Toolbox" [45] предоставляет широкие
возможности для работы с нейронными сетями всех типов.
Пакет прикладных программ Neural Network ToolBox содержит
средства
поведении
для
конструирования
математического
нейронных
аналога
32
сетей,
нейрона.
базирующихся
Пакет
на
обеспечивает
эффективную
поддержку
проектирования,
обучения,
анализа
и
моделирования множества известных типов сетей – от базовых моделей
персептрона до самых современных ассоциативных и самоорганизующихся
сетей. Данная среда предоставляет возможность создания нейронных сетей
как уже по заранее существующим шаблонам. При этом пользователям будет
необходимо определить количество входов и выходов сети, весовые
коэффициенты, связывающие нейроны, функции активации и еще много
различных параметров.
Также система MATLAB Neural Network Toolbox предоставляет
максимальные возможности настройки и контроля сети в процессе обучения,
именно она оптимально подходит в качестве системы прогнозирования
данных.
Преимуществом
пакета
MATLAB
является
то,
что
при
его
использовании пользователь не ограничен моделями нейронных сетей и их
параметрами, которые жестко заложены в нейросимуляторе. Пакет дает
возможность самостоятельно сконструировать ту сеть, которую пользователь
считает оптимальной для решения поставленной задачи. В пакете возможно
конструирование сети любой сложности и нет необходимости привязываться
к ограничениям, накладываемым нейросимулятором.
Таким образом, MATLAB является достаточно гибким и наиболее
подходящим
инструментом,
позволяющим
заменить
различные
статистические программные решения, и по-новому взглянуть на проблему
прогнозирования финансового состояния предприятия.
2.2. Обоснование выбора программного средства для исследования
Выбор программного продукта для использования метода нейронных
сетей был выполнен по следующим критериям: возможность обработать
данные онлайн,
документации.
простота
В
таблице
использования,
2.1
скорость работы,
представлен
33
сравнительный
наличие
анализ
программных средств по выбранным критериям. Знаком «+» отмечены
программные
средства,
обладающие
соответствующим
критерием,
в
противном случае – знаком «–».
Таблица 2.1
Сравнительный анализ программных средств
Программные решения
Обработка
онлайн
данных
Простота
использования
Скорость
работы
Документированность
SAS Business Intelligence
-
-
+
+
Microsoft BI Solution builder +
-
+
+
-
Oracle Data Mining Suite +
-
-
+
+
SPSS
-
+
+
-
Microsoft SQL Server Analysis
Services
+
+
-
+
Oracle Crystal Ball
-
+
-
+
MATLAB
-
+
+
+
В процессе анализа существующих решений было выявлено, что среда
моделирования MATLAB является наиболее подходящим средством ввиду ее
простоты в использовании, высокой скорости работы, а также наличия
большого количества методических материалов по ее использованию, что
очень ценно для потенциальных пользователей.
2.3. Выбор архитектуры и метода обучения нейронной сети в
системе Matlab
2.3.1. Модель обучения нейронной сети
Нейронная сеть, реализованная в среде моделирования MATLAB для
решения задачи прогнозирования в первом случае, представляет собой
однослойную нейронную сеть, схема которой представлена на рисунке 2.1.
34
Рис. 2.1. Модель однослойной нейронной сети
Во втором случае – это нейронная сеть с тремя слоями по десять, пять,
одному нейрону в каждом слое соответственно (рисунок 2.2).
Рис. 2.2. Модель многослойной нейронной сети
Здесь b – это множество входов, w – множество весов, знак «+» –
сумматор. Сеть состоит из шестнадцати входов, одного выходов и трех
слоев, в каждом слое функция активации и количество нейронов различны. В
первом слое количество нейронов равно десяти. Во втором слое (скрытом)
находится пять нейронов. В третьем слое количество нейронов равно
количеству входов. Нейроны первого слоя настроены на гиперболическую
функцию активации, второго слоя – на логарифмическую, а третьего на
линейную функцию активации, которая не изменяет выходной сигнал.
Таким образом, на вход нейронной сети подается сигнал x. Сумматор
«+» умножает каждое входное множества bi на весы wi и затем происходит
35
суммирование взвешенных входов. Затем полученное значение пропускается
через функцию активации соответствующего слоя и рассчитывается выход.
Далее происходит корректировка весов с помощью метода обратного
распространения ошибки и после чего итерация повторяется до тех пор, пока
не будет достигнута заданная точность либо не будет исчерпано количество
итераций.
На рисунке 2.3 отображена структура гибридной сети,
смоделированная системой ANFIS-редактор. [1],[35]
Рис. 2.3. Структура гибридной сети
2.3.2. Алгоритм обучения метода обратного распространения
Обучение
нейронной
сети
выполняется
методом
обратного
распространения ошибки. В процессе обучения происходит подстройка ее
весов таким образом, чтобы некоторое множество входов приводило к
требуемому множеству выходов. При этом изначально предполагается, что
каждому входному множеству соответствует парное ему целевое множество,
задающий требуемый выход. Вместе они являются обучающей парой.
36
На
каждой
итерации
изменение
веса
производится
методом
градиентного спуска по формуле 2.1: [10],[11]
(𝑛)
(𝑛)
(𝑛)
𝜔𝑖𝑗 (𝑡) = 𝜔𝑖𝑗 (𝑡 − 1) + Δ𝜔𝑖𝑗 (𝑡)
(2.1)
Для ограничения пространства поиска при обучении ставится задача
минимизации целевой функции ошибки НС, которая находится по методу
наименьших квадратов по формуле 2.2:
1 𝑝
2
𝐸(𝜔) = ∑ (𝑦𝑗 − 𝑑𝑗 ) ,
2 𝑗=1
(2.2)
где:
• yj – значение j-го выхода нейронной сети;
• dj – целевое значение j-го выхода;
• p – число нейронов в выходном слое.
Комбинация метода наименьших квадратов с методом градиентного
спуска
называется
алгоритмом
Левенберга-Марквардта,
который
и
используется в среде MATLAB. [12]
Полный алгоритм обучения нейронной сети (НС) состоит из пяти
шагов:
1. Подача на вход НС одного из входных сигналов и определение
значения выходов нейронов нейронной сети.
2. Рассчитать для выходного слоя нейронной сети и рассчитать
изменения весов выходного слоя n (2.1).
3. Рассчитать соответственно и Δ𝜔𝑖𝑗𝑛 для остальных слоев НС, n = N-1..1
(2.1).
4. Скорректировать все веса НС по формуле 2.1.
37
5. Если высчитанная по формуле 2.2 ошибка велика, то перейти на шаг 1.
2.3.3. Гибридный алгоритм обучения (MATLAB ANFIS)
ANFIS-редактор
позволяет
автоматически
синтезировать
из
экспериментальных данных нейро-нечеткие сети.
Редактор ANFIS использует гибридный двухпроходный алгоритм. В
прямом ходе определяются параметры слоя 4 и используется метод
наименьших квадратов. В обратном – уточняются параметры первого слоя,
используется обратное распространение ошибки.
Алгоритм обучения прямой ход:
Пусть:
𝑆1 = {{𝑎11, 𝑏11, 𝑐11}, … ,{𝑎𝑛𝑝, 𝑏𝑛𝑝, 𝑐𝑛𝑝}} – параметры предпосылок,
𝑆2 = {𝑞10, 𝑞11, … , 𝑞1𝑛 , … 𝑞𝑝 𝑛0, … , 𝑞𝑝 𝑛𝑛} – параметры заключений,
𝑆 = 𝑆1 ∪ 𝑆2.
При фиксированных параметрах из 𝑆1 имея 𝐾 обучающих примеров,
можно представить задачу обучения в виде 𝐴𝑋 = 𝐵, где 𝑋 содержит
параметры из 𝑆2.
Так как число обучающих примеров обычно больше числа параметров
в 𝑆2, то точное решение данной системы уравнений не возможно, но можно
воспользоваться
методом
наименьших
квадратов
для
нахождения
аппроксимации 𝑋*, которая минимизирует ошибку ||𝐴𝑋 – 𝐵|| ^2.
Для вычислений МНК используется итеративная процедура:
𝑆𝑖+1 = 𝑆𝑖 – (𝑆𝑖𝑎𝑖+1𝑎T𝑖+1 𝑆𝑖)/(1 + 𝑎T𝑖+1 𝑆𝑖𝑎𝑖+1),
(2.3)
𝑋𝑖+1 = 𝑋𝑖 + 𝑆𝑖+1𝑎𝑖+1( 𝑏T𝑖+1 − 𝑎T𝑖+1 𝑋𝑖 ),
(2.4)
38
где:
• 𝑋0 = 0; 𝑆0 = 𝛾𝐼, 𝛾- большое число, 𝐼 – единичная матрица;
• 𝑎T𝑖 - 𝑖-я строка матрицы А;
• 𝑏T𝑖 - 𝑖-ый элемент вектора 𝐵;
•
𝑋* = 𝑋K.
Алгоритм обучения - обратный ход:
Для каждого параметра 𝛼𝑖 из 𝑆1 обновление осуществляется по правилу:
Δ𝛼𝑖 = −𝜂 (𝜕𝐸/ 𝜕𝛼𝑖),
( 2.5)
где:
• 𝐸 – ошибка на обучающей выборке;
• 𝜂 – скорость обучения;
• 𝑘 – размер шага.
2.4.
Моделирование
нейронной
сети
для
прогнозирования
потребительского спроса строительных товаров
2.4.1. Настройка сети обратного распространения
Настройка
нейронной
сети
в среде
MATLAB осуществлялась
следующими командами: [1],[12]
• создание сети, задание количества слоев и количества нейронов в
слое, выбор функции активации:
prognoz=newff(minmax(Data_vh'),[10 1],{'logsig' 'purelin'});
• ограничение итераций обучения, определяемое количеством эпох
prognoz.trainParam.epochs = 1000;
• запуск этапа тренировки, где prognoz – тип сети обучения, Data_vh
39
входные сигналы, Data_vih – обучающая выборка
prognoz = train(prognoz, Data_vh',Data_vih');
• выбор метода нахождения ошибки (корректировки весов)
суммарное квадратичное отклонение
prognoz.performFcn='sse';
• расчет значений выборки (обучающая выборка) для
проверки точности модели
P1 = sim(prognoz,vxod');
• прогнозирование для входных сигналов P2
P2=sim(prognoz,test_vhod');
Настройка многослойной нейронной сети будет отличаться заданием
большего числа слоев – в данном случае три, числа нейронов и выбора для
каждого слоя функции активации:
prognoz=newff(minmax(vxod'),[10 3 1],{ 'tansig','logsig', 'purelin'}).
2.4.3. Настройка гибридной нейронной сети
Настройка гибридной сети будет осуществляться посредством ANFISредактора, встроенного в Matlab. [1],[40]
Загрузка ANFIS-редактора осуществляется по команде anfisedit.
ANFIS-редактор включает в себя 3 верхних меню - File, Edit и View, а так же
следующие рабочие области: визуализации, свойств ANFIS, загрузки данных,
генерация исходной системы нечеткого логического вывода, обучения,
тестирования, вывода текущей информации, а также кнопки Help и Close,
которые позволяют вызвать окно справки и закрыть ANFIS-редактор,
соответственно.
На рисунке 2.4. представлено рабочее окно ANFIS-редактора.
40
Рис. 2.4. Рабочая область ANFIS редактора
Меню File и View одинаковые для всех GUI-модулей, используемых с
системами нечеткого логического вывода.
Для загрузки данных используется кнопка Load Data, после чего в
Редактор можно загрузить входные и тестовые данные.
Для обучения данных в области обучения редактора ANFIS нужно
задать количество эпох для обучения и выбрать метод, с помощью которого
будет происходить обучение. Кроме этого, можно задать значение ошибки,
как условие останова обучения.
После обучения можно проверить работу НС на тестовых данных. Для
этого в области тестирования выбираем Testing data и нажимает Test now.
3. СБОР И АНАЛИЗ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ
41
3.1. Информационное обеспечение задачи. Данные о продажах
Выявленная в результате исследований методика, может найти
применение в прогнозировании работы компаний по продаже строительных
товаров.
Входным
информационным
обеспечением
может
служить
исключительно статистика продаж строительных товаров за определенное
время, на основе которой будет делаться прогноз. В задаче прогнозирования
будем использовать статистические данные продаж компании ООО
«Баустов».
Компания
ООО
«Баустов»
является
крупным
российским
дистрибьютором, а так же производителем строительных и отделочных
материалов. В состав Группы Компаний «Баустов» входят организации,
занимающиеся
оптовыми
продажами
строительных
материалов,
производством лакокрасочной и геотекстильной продукции, а также
выполнением строительных работ на территории Москвы и Московской
области.
Офис компании располагается по адресу: Москва, ул. Новоостаповская,
5. ООО «Баустов» является обладателем крупного склада в Московской
области, который расположен в 10 км от Москвы. Имея склад, компании
очень важно прогнозировать объемы продаж того или иного строительного
товара, особенно в сезонное для него время.
Структурная схема компании ООО «Баустов» наглядно представлена
на рисунке 3.1:
42
Рис. 3.1. Структурная схема ООО «Баустов»
Для практического применения методики необходимо отталкиваться от
реальных данных о продаже строительных товаров. Рассматривать все
строительные материалы вместе, а тем более прогнозировать все за раз
невозможно ввиду совершенно разной статистики продаж того или иного
товара в определенный период времени, что даст весьма усредненный
результат. В рамках настоящей работы будет рассмотрен конкретный товар –
базальтовый
утеплитель
Rockwool
Лайт
Баттс
с
определенными
характеристиками, а именно: плотность 37 кг/м3, ширина 100 мм. На рисунке
представлена выборка данных о продаже товара за последние пять лет с 2012
г. по
2016 г. с шагом в неделю. Данные расположены в порядке месяцев,
начиная с января, заканчивая декабрем, сверху вниз. Всего 48 записей за
каждый год.
43
Рис. 3.2. Таблица данных о продажах утеплителя за 5 лет
Для корректного прогнозирования масштабируем данные по продажам
в системе Matlab. Листинг кода приведен ниже:
Листинг 3.1.
Min = min(A(:,5));
Max = max(A(:,5));
B = Min;
K = 1/(Max - Min);
A(:,5) = (A(:,5) - B) .* K;
В результате получаем данные продаж в интервале [0,1]. Таблица
данных продаж в среде MATLAB изображена на рисунке 3.3:
44
Рис. 3.3. Данные продаж в интервале [0,1]
Как видно из таблицы товар обладает свойством сезонности. Пик продаж
приходится на весну-осень, зимой же наблюдаются минимальные продажи.
Ввиду выраженной сезонности товара, компании очень важно
прогнозировать его объемы продаж для понимания того, сколько данного
товара нужно завести на склад.
Поэтому в данном случае очень важно учитывать этот коэффициент.
Коэффициент сезонности – это показатель, на который изменяется
социальная норма закупок строительного товара в зависимости от времени
года.
Для высчитывания коэффициента сезонности в нашей таблице в
системе MS Excel рассчитываем среднее значение продаж за каждый год (т.е.
сумму продаж за весь год делим на количество месяцев).
45
По формуле рассчитываем коэффициент сезонности для каждой недели
k сезон. = Ni / s.z.,
(3.1)
где Ni – фактическая сумма продаж за определённую неделю; s.z. –
среднее значение по неделям.
Кроме этого, нужно учесть коэффициенты инфляции, а так же
коэффициент изменения рубля по отношению к доллару.
Коэффициент инфляции - это показатель, характеризующий
соотношение цен прошедшего и текущего периодов. Данные об инфляции на
потребительском рынке были взяты с официального сайта Центрального
Банка России за период с 2012 г. по 2016 г.
Для вычисления коэффициента изменения рубля по отношению к
доллару США были взяты данные динамики курса валюты доллар США за
период с 2012 г. по 2016 г. так же с официального сайта ЦБРФ.
Коэффициент изменения рубля по отношению к доллару США
высчитывался аналогично коэффициенту сезонности. На рисунке 3.4
приведена полученная в результате сводная таблица входных данных для
обучения нейронной сети обратного распространения.
Рис 3.4. Сводная таблица входных данных обучения НС
46
Теперь подготовим обучающую и тестовую выборки. Для этого
разделим полученную таблицу на две таблицы: одна выборка для обучения,
вторая – для тестирования работы НС.
На рисунке 3.5. представлена тестовая выборка, с помощью которой
будем проверять точность прогноза, сделанного обученной нейронной сетью.
Для этого мы будем подавать значения за четыре года, получать
прогноз от нейронной сети и сравнивать с реальными данными.
Рис. 3.5. Тестовые данные
3.2. Проведение эксперимента
В ходе эксперимента будем использовать сформированную матрицу
значений продаж, а так же тестовую выборку для проверки результата и
прогнозирования.
Смоделируем однослойную нейронную сеть с характеристиками: 1
слой, 2 нейрона. Запустим полученную программу в Matlab. На рисунке 3.6
изображены параметры нейронной сети. Параметры Gradient, Mu показывают
изменения значений градиента функции и математического ожидания
соответственно при каждой итерации. А параметр Val Fail показывает
количество итераций, при которых ошибка была меньше заданной.
47
Рис. 3.6. Параметры модели нейронной сети
На рисунке 3.7 приведен график зависимости величины ошибки от
количества итераций. По оси X значение эпох, по оси Y – значения
суммарной среднеквадратичной ошибки.
Рис 3.7. Зависимость суммарной квадратичной ошибки от количества эпох
Из графика видно, что с каждой следующей итерацией значение
ошибки уменьшается. Для 1000 эпохи значение суммарной квадратичной
ошибки составляет 2.04*10-3.
48
Далее используя нашу тестовую выборку, спрогнозируем пять
значений, и сравним спрогнозированные данные с реальными. На рисунке 3.8
представлен график, где кружочком выделены реальные данные, а
звездочкой – спрогнозированные.
Рис. 3.8. График спрогнозированных и реальных данных
Как видно из графика реальные данные достаточно сильно отличаются
от данных, которые спрогнозировала нейронная сеть.
Продолжая анализ, обучим нейронную сеть со следующими
параметрами: 1 слой, 10 нейронов. Результаты представлены на рисунке 3.9:
а)
б)
Рисунок 3.9. а) Параметры модели нейронной сети;
б) Зависимость суммарной квадратичной ошибки от количества эпох
49
Из графиков видно, что значение суммарной квадратичной ошибки
стало меньше, теперь оно равно 2,04*10-4.
Проверяем работу нейронной сети для прогнозирования, для этого
построим график прогнозных и реальных значений (рисунок 3.10).
Рис 3.10. Тестирование нейронной сети
Из графика видно, что сеть с данными характеристиками лучше
осуществляет прогноз. Однако по-прежнему прогнозные данные значительно
отличаются от реальных.
Далее от однослойной сети перейдем к более сложной архитектуре –
двухслойной нейронной сети. Зададим следующие параметры [2 3 1].
Результаты ее тестирования приведены на рисунке 3.11:
50
а)
б)
Рисунок 3.11. а) Параметры модели нейронной сети;
б) Зависимость суммарной квадратичной ошибки от количества эпох
Построив график разности прогнозных и реальных значений (рисунок
3.12), наблюдаем, что двухслойная нейронная сеть лучше справляется с
задачей прогнозирования. Ошибка SSE обучения сети стала равна 2,04*10-5.
Рис. 3.12. График отличия прогнозных данных от реальных
51
Теперь увеличим количество нейронов в каждом слое, задав
следующие параметры [8 8 1].
В результате получаем следующие характеристики сети
представленные на рисунке 3.13:
а)
б)
Рисунок 3.13. а) Параметры модели нейронной сети;
б) Зависимость суммарной квадратичной ошибки от количества эпох
На графике а) видно, что сеть обучилась гораздо быстрее. Для
обучения ей потребовалось 120 итераций. Ошибка суммарной квадратичной
ошибки в этом случае составила 2,04*10-15.
Теперь протестируем сеть и построим график прогнозных и реальных
значений. На рисунке 3.14 видно, что прогнозные значения приблизились к
реальным. Данная структура сети является приемлемой для прогнозирования
потребительского спроса строительных товаров.
52
Рис. 3.14. График прогнозных и реальных значений продаж
Увеличивая количество нейронов в скрытом слое, кажется, что чем
больше нейронов добавим, тем правильнее и точнее будет результат. Однако
это не так. Взяв следующие параметры сети [20 10 1], заметим, что сеть стала
обучаться с большей ошибкой и прогнозные данные существенно
отличаются от реальных.
Рис 3.15. График отличия прогнозных данных от реальных
53
Дальше эксперимент будет проводиться с использованием ANFIS –
редактора. Для его вызова в командной строке вводим anfisedit.
Для обучения и прогнозирования в ANFIS создадим два файла:
training.dat, testing.dat. В них будут содержаться данные, необходимые для
обучения нейронной сети и тестовые данные для прогнозирования. Данные в
них – матрицы, в которой 9 столбцов – 8 входных данных и 1 выходной. В
первом файле – 48 строк, во втором – 6.
Содержимое файла training.dat представлено на рисунке 3.16:
Рис. 3.16. Входные данные для ANFIS-редактора
Содержимое файла testing.dat представлено на рисунке 3.17:
Рис. 3.17. Тестовые данные для ANFIS-редактора
54
В меню Load data выбираем Training и From disk, нажимаем кнопку
load data. В появившемся окне выбираем созданный ранее файл training.dat.
В меню Load data выбираем Testing и From disk, нажимаем кнопку load
data. В появившемся окне выбираем созданный ранее файл testing.dat.
Данные для обучения и проверки загружены (рисунок 3.18).
Рис. 3.18. Загрузка входных данных в ANFIS редактор
После нажатия Generate FIS выбираем модель сети. В данном случае в
модели восемь входных переменных, каждой из которых соответствуют по 3
терма типа gaussmf. Выходная переменная задается линейной функцией
(рисунок 3.19).
55
Рис. 3.19. Настройка гибридной сети
После загрузки данных, производим обучение. График значений
ошибки обучения представлен на рисунке 3.20.
Рис. 3.20. График зависимости ошибки обучения от количества эпох
56
Ошибка обучения составила всего 0.000300299. Теперь проверим
обученную сеть на тестовой выборке. Результаты тестирования представлены
на рисунке 3.21:
Рис. 3.21. Разница между прогнозными значениями и реальными данными
Как видно из рисунка, гибридная сеть так же дает достаточно точный
прогноз, а значит, может использоваться для поставленной задачи. Следует
отметь, что использование большого количества входов делает обучение НС
ресурсоемким.
57
3.3. Сравнительный анализ методов
Для сравнения методов обратного распространения и гибридного
метода, сравним ошибки, полученные при обучении.
На рисунке 3.22 представлена гистограмма ошибок, полученных при
обучении методом обратного распространения.
Рис. 3.22. Гистограмма ошибок метода обратного распространения
На рисунке 3.23 отображен график зависимости ошибки обучения от
количества эпох гибридной нейронной сети. Как видно из графика, с каждой
итерацией обучения ошибка становится меньше.
Рис. 3.23. График ошибки обучения гибридной НС
58
Для наглядности сведем данные графиков в одну таблицу. В таблице
отображены: № эпохи, название методов и соответствующие каждому
методу значения ошибок.
Таблица 3.1
Сводные данные значений ошибки обучения
№
Значение ошибки обучения
эпохи
Метод обратного распространения
Гибридная сеть
1
0.306
0.0115
2
0.2759
0.0089
3
0.2457
0.0081
4
0.2156
0.0075
5
0.1855
0.0069
6
0.1553
0.0063
7
0.1252
0.0048
8
0.09508
0.0043
9
0.03482
0.0037
10
0.004695
0.003
Анализируя данные таблицы 3.1, делаем вывод о целесообразности
применения гибридной сети для прогнозирования спроса
в сегменте
строительных товаров, в связи с наименьшим значением ошибки обучения.
Однако следует отметить, что гибридные сети на большом количестве
входных данных требуют больших аппаратных ресурсов.
59
ЗАКЛЮЧЕНИЕ
Цель настоящей магистерской диссертации заключалась в выявлении
оптимальной методики прогнозирования с использованием нейронных сетей
в отрасли строительных материалов.
Для достижения указанной цели были выполнены определенные во
введении
задачи.
А
именно:
изучены
методы
нейросетевого
прогнозирования, из которых были взяты два метода для эксперимента, а так
же проведен анализ программных средств для решения задачи.
На этапе проектирования сформирована структура нейронной сети,
выбран алгоритм обучения. После чего выполнено моделирование нейронной
сети для прогнозирования в системе MATLAB.
Собирая входные данные для обучения НС, был проведен анализ
временного ряда на стационарность и сезонность. В результирующую
таблицу входных данных были добавлены коэффициенты, влияющие на
продажи. Данные, подаваемые на вход НС были отмасштабированы в
интервале [0,1].
Проведение эксперимента показало, что НС не только способны
прогнозировать потребительский спрос строительных товаров, но и
показывать при этом достаточно точный результат. На основании сравнения
значений ошибки сети прогнозирования была определена оптимальная
методика прогноза.
Таким образом, задачи решены в полном объеме, цель достигнута –
определена оптимальная методика прогнозирования с использованием
нейронных сетей в отрасли стройматериалов.
60
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Бильгаева Л.П., Власов К.Г. ПРОГНОЗИРОВАНИЕ ПРОДАЖ В СРЕДЕ
MATLAB // Естественные и математические науки в современном мире: сб.
ст. по матер. XLIX междунар. науч.-практ. конф. № 12(47). – Новосибирск:
СибАК, 2016. – с. 64– 76.
2. Бушуева, Л. И. Методы прогнозирования объема продаж / Л. И. Бушуева //
Маркетинг. 2001. – № 5. – с. 50 – 53
3. Галушкин А.И. Теория нейронных сетей. Кн.1,- М.: ИПРЖР, 2001. – 416с
4. Головко В.А.. Нейронные сети: обучение, организация и применение. М.,
ИПРЖР, 2001. – 256с.
5. Головко В.А.. От многослойных персептронов к нейронным сетям глубокого
доверия: парадигмы обучения и применение. В сб.: Нейроинформатика-2015.
XVII Всероссийская научно-техническая конференция с международным
участием. Лекции по нейроинформатике, с.47–. НИЯУ МИФИ, 2015.
6. Горбань, А. Н. Обучение нейронных сетей / А. Н. Горбань М.: Изд. СССРСША СП "ParaGraph", 1990. – 160с.
7. Горбань А.Н. Нейронные сети на персональном компьютере / А. Н. Горбань,
Д. А. Россиев Новосибирск: Наука. Сибирская издательская фирма РАН,
1996. – 276с.
8. Горбань А.Н., Дунин-Барковский В.Л., Кардин А.Н. и др.
Нейроинформатика, Отв. Ред. Новиков Е.А., РАН, Сиб. Отд., Институт выч.
Моделирования – Новосибирск: Наука, 1998. – 296с.
9. Дебок Г., Кохонен Т.. Анализ финансовых данных с помощью
самоорганизующихся карт. М., "Альпина", 2001. – 317с.
10. Дьяконов В.П., Круглов В.В. MATLAB 6.5 SP1/7/7 SP1/7 SP2 + Simulink 5/6.
Инструменты искусственного интеллекта и биоинформатики. Серия
«Библиотека профессионала». – М.: СОЛОН-ПРЕСС, 2006. – 456с.
61
11. Дьяконов В. П. Matlab 6: учебный курс. – СПб.: Питер, 2001. – 592с.
12. Еремин Д. М., Гарцеев И. Б. Искусственные нейронные сети в
интеллектуальных системах управления. — М.: МИРЭА, 2004. – 75с.
13. Ерохина Л.И. Прогнозирование, планирование в системе управления на
предприятиях сферы сервиса / Л.И. Ерохина, Е.В. Башмачникова; Тольят.
гос. ин-т сервиса. – М.: КНОРУС, 2004. – 202с.
14. Каллан Р. Основные концепции нейронных сетей = The Essence of Neural
Networks First Edition. – М.: Вильямс, 2001. – 288с.
15. Комарцова Л.Г., Максимов А.В.. Нейрокомпьютеры. М., Изд-во МГТУ им.
Баумана, 2004. – 400с.
16. Кохонен Т. Самоорганизующиеся карты. М., "Бином", 2008. – 656с.
17. Круглов В.В., Дли М.И., Голунов Р.Ю.. Нечёткая логика и искусственные
нейронные сети. Физматлит, 2001. –201с.
18. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и
практика. – М.: Горячая линия - Телеком, 2001. – 382 с.
19. Назаров, А. В., Нейросетевые алгоритмы прогнозирования и оптимизации
систем / А. В. Назаров, А. И. Лоскутов СПб.: Наука и техника, 2003 – 384с.
20. Прогнозирование и планирование в условиях рынка: Учеб. Пособие для
вузов. / Под ред. Т.Г. Морозовой, А.В. Пикулькина. – М.: ЮНИТИ–ДАНА,
2001. – 318с.
21. Ромашова И.Б. Прогнозирование в системе управления современным
предприятием / И.Б. Ромашова. − Нижний Новгород: Нижегор. гос.
университет им. Н.И. Лобачевского, 2000. − 328с.
22. Тадеусевич Рышард, Боровик Барбара, Гончаж Томаш, Леппер Бартош.
Элементарное введение в технологию нейронных сетей с примерами
программ / Перевод И. Д. Рудинского. — М.: Горячая линия — Телеком,
2011. – 408с.
23. Тархов Д.А.. Нейронные сети. Модели и алгоритмы. (Справочник.) М.,
Радиотехника, 2005. –256с.
62
24. Терехов В. А., Ефимов Д. В., Тюкин И. Ю. Нейросетевые системы
управления. — М.: Высшая школа, 2002. –184с.
25. Уоссермен, Ф. Нейрокомпьютерная техника: Теория и практика. –М.: Мир,
1992. –184с.
26. Файоль А. Управление − это наука и искусство / А. Файоль, Г. Эмерсон, Ф.
Тэйлор, Г. Форд. − М.: Республика, 1992. − 351с.
27. Хайкин С.. Нейронные сети: полный курс. 2–е изд. М., "Вильямс", 2006.
−1104с.
28. Четыркин, Е. М. Статистические методы прогнозирования / Е. М. Четыркин-М.: Статистика, 1997. −200 с.
29. Чубукова И.А., Data Mining, Лекция 11: Методы классификации и
прогнозирования. Нейронные сети, с.155-159, 2006.
30. Яхъяева Г.Э.. Нечёткие множества и нейронные сети. М., ИнтернетУниверситет Информационных Технологий; БИНОМ. Лаборатория знаний,
2006. −315с.
31. Яхъяева Г.Э.. Основы теории нейронных сетей. Интернет-университет
информационных технологий, изд-во "Открытые системы",2016. − 200с.
32. Kohonen T. 1984. Self-organization and associative memory. Series in
Information Sciences, vol. 8. Berlin: Springer Verlag.
33. Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. —
Springer, 2001.
34. АНС «СибАК» − [Электронный ресурс] / Научно-практические
конференции ученых и студентов. Публикации Scopus. Авторские и
коллективные монографии − Режим доступа: www.sibac.info , свободный.
35. Центральный банк Российской Федерации/ официальный сайт /
[Электронный ресурс]. – Режим доступа:www.cbr.ru, свободный
36.Oracle Cryslat Ball. / – [Электронный ресурс]. – Режим доступа:
www.hyperion.ru/products/appl/r_pr/ , свободный
63
37. MATLAB – book1. / – [Электронный ресурс]. – Режим доступа:
www.matlab.exponenta.ru/neuralnetwork/book1/index.php , свободный
38. MATLAB – book2. / – [Электронный ресурс]. – Режим доступа:
www.matlab.exponenta.ru/neuralnetwork/book2/18/trainlm.php ,свободный
39. Вебинар «Машинное обучение с MATLAB» − [Электронный ресурс]. –
Режим доступа: http://matlab.ru/webinars/mashinnoe-obuchenie-s-matlab ,
требуется регистрация на сайте.
40. MATLABinRussia. Официальный Youtube канал на русском языке −
[Электронный ресурс]. – Режим доступа:
https://www.youtube.com/user/MATLABinRussia , свободный.
64
Отзывы:
Авторизуйтесь, чтобы оставить отзыв