Прогнозирование потребительского спроса с использованием нейронных сетей и генетической оптимизации | Наука 21 век

Наука 21 век » Прогнозирование потребительского спроса с использованием нейронных сетей и генетической оптимизации





Прогнозирование потребительского спроса с использованием нейронных сетей и генетической оптимизации

Май 15th, 2012

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

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

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

Для работы с NeuroShell® DayTrader Professional – продуктом, использующим методы неклассического анализа, также требуется специалист для создания адекватной нейронной сети.

Средняя точность прогноза нечеткими системами составляет 80,3%, а методами классического анализа - 74%. При этом устойчивость прогноза во времени нечеткими системами выше на 6%, чем методами классического анализа.

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

Для решения задачи оптимизации размера складских товарных запасов фирмой «Инжэниус Тим» разработан программный продукт «Forecast NOW!», который помогает снижать издержки на хранение, повышать оборачиваемость средств и автоматизировать работу отдела закупок.

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

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

Программа «Forecast NOW!»

Рисунок 1 – Программа «Forecast NOW!»

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

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

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

Шаг в алгоритме обратного распространения выбирается не оптимально. Однако такая неоптимальность во многом позволяет избежать локальных минимумов функции ошибки, которая состоит из множества долин и седел, на ранних этапах.

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

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

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

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

Использование генетической оптимизации позволяет одновременно воспользоваться этим преимуществом, стабилизируя при этом решение в целом.

Генетическая оптимизация – эволюционный алгоритм, в основе которого заложено моделирование биологического процесса эволюции. Каждое решение, в данном случае, нейронная сеть, кодируется в хромосому. Хромосома может быть представлена различными способами, к примеру, бинарным вектором. Веса и пороги сети становятся конкретными генами в хромосоме. Для каждой хромосомы или их пар могут быть применены операции мутации, скрещивания или репликации. Мутация – случайное изменение части гена (например, инвертирование бита), скрещивание – обмен хромосом своими частями, репликация – дублирование хромосомы.

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

В результате стабильность решения повышается на порядок, а точность прогнозирования в среднем на 10-15%.

Пример работы программы представлен на рисунке 2.

Пример построенного прогноза

Рисунок 2 – Пример построенного прогноза

Для тестирования программы «Forecast NOW!» совместно с представителями одной из торговых сетевых компаний были выбраны 362 продукта. Использовалась база данных с историей продаж за 1 год и 1 месяц. Для анализа были отобраны следующие показатели:
- ярко выраженная недельная сезонность;
- наличие другой краткосрочной сезонности;
- отсутствие краткосрочной сезонности;
- наличие/отсутствие тренда;
- товары с высокой/низкой частотой продажи;
- большие/низкие объемы среднесуточных продаж;
- неслучайное отсутствие спроса;
- ограниченный спрос в условиях дефицита товара;
- короткая история продаж (2-3 месяца);
- относительно длительная история продаж (более полугода).

Для каждого товара было построено 8 прогнозов, каждый на неделю. Таким образом, был смоделирован процесс работы пользователя с программой в течение 56 дней. Расписание приезда поставщиков соответствовало действительному. Качество прогноза оценивалось по ошибке sMAPE. Она рассчитывалась исключительно на прогнозируемом промежутке, что позволяет достичь объективности оценки в реальных условиях. Для расчета ошибки были получены реальные продажи на данном участке и вычислено абсолютное отклонение от прогноза в процентах.

Результаты по точности прогнозирования представлены в таблице ниже.

Прогнозирование потребительского спроса с использованием нейронных сетей и генетической оптимизации

Максимальная точность, которая была достигнута, составила 96,3%. Минимальная точность - 68%, а средняя – 80,3%. Среднеквадратичное отклонение составило 5%. Таким образом, основная масса товаров спрогнозирована с точностью от 75 до 85%. Точность выше 75% достигнута на 292 товарах из 362, что составляет 80% от общего числа товаров. Высокая ошибка получена преимущественно на тех товарах, у которых наблюдалась неожиданная смена тренда. Однако даже в таких условиях система показывает хорошую точность прогноза, составляющую порядка 70%. Точность прогнозирования может быть повышена за счет увеличения истории продаж. В этом случае могут быть учтены праздники, имеющие годовую сезонность (Новый Год, 8 марта и пр.).

На рисунке 3 представлен первый этап обработки программы – построение прогнозов. Здесь и далее красной линией показаны реальные продажи, синей – прогнозируемые. Вертикальные пунктирные линии показывают прогнозируемые участки, горизонт прогнозирования 7 дней. Обучение системы происходило на данных, которые предшествуют вертикальным отметкам. Как можно заметить из данного графика, система хорошо адаптируется к резко меняющемуся тренду, даже в том случае, если таких изменений не наблюдалось в истории продаж ранее.

Построение прогнозов

Рисунок 3 - Построение прогнозов

На рисунке 4 представлен товар с крайне высокочастотными продажами. Сложная ситуация для прогнозирования. Система успешно справляется с прогнозированием товаров подобного рода. Достигнутая точность – 73%.

Высокочастотные продажи

Рисунок 4 – Высокочастотные продажи

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

Ярко выраженная недельная сезонность

Рисунок 5 – Ярко выраженная недельная сезонность

На рисунке 6 представлены продажи товара, имеющие дефекты в виде неслучайного отсутствия спроса, что выражено в виде провала спроса. Именно в эти моменты товара на складе оказывалось недостаточно. Также товар имеет тренд и высокочастотные полу-хаотичные продажи. Это вызвано также проблемами со складом. Как можно заметить, система сглаживает подобные явления, восстанавливает спрос и успешно обучается. Точность прогноза – 88%.

Дефекты в исходном временном ряде

Рисунок 6 – Дефекты в исходном временном ряде

На рисунке 7 представлен товар из разряда скоропортящихся, для которого неправильно выбран уровень закупки. Спрос ограничен 20 ед. товара, видны частые провалы из-за отсутствия товара на складе. Легко заметить сильный дефицит. Точность прогноза - 90%. Дефицит устраняется предложенным страховым запасом.

Пример дефицита

Рисунок 7 – Пример дефицита

На рисунке 8 представлен товар с ярко выраженной длительной сезонностью, сильно изменяющимся трендом. Системой замечается смена тренда, хотя период прогнозирования начинается именно на этом участке. Достигнута точность прогноза 85%. Если при прогнозировании такого товара использовать простые методы учета среднесуточной уходимости товара, то на складе возникнет избыток товара, ввиду резкого изменения величины среднесуточной уходимости. Также ввиду сложного определения сезонности применение сезонной ARIMA становится проблематичным.

Длительная сезонность

Рисунок 8 – Длительная сезонность

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

Оптимальный товарный запас = страховой запас * коэффициент риска + прогнозируемые продажи + минимальный товарный остаток

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

Переходя от прогноза к реальному товарному запасу, были получены следующие результаты. Во всех случаях, когда реальные складские остатки не ограничивали спроса, то есть не наблюдалось неслучайного отсутствия спроса или его ограничения, получены положительные результаты по сокращению числа занятых оборотных средств и избытка. В других же случаях видно, что при отсутствии страхового запаса в магазине время от времени случается дефицит. На графиках рекомендуемый товарный запас и его расход отмечены синим цветом. Красным цветом – реальные остатки и их расход. Почти во всех случаях (за исключением дефицита, который в магазине характерен для скоропортящихся продуктов) товарный запас, предложенный системой, оказался ниже, чем реальный товарный запас. При этом спрос был полностью удовлетворен. В случаях скоропортящегося товара возможно различное, на усмотрение менеджера по закупкам, поведение программы, либо использование страхового запаса и гарантированное (95% вероятность) отсутствие дефицита, либо гарантированное отсутствие избытка. На рисунке 12 можно видеть данный случай. Красный график показывает частое отсутствие товара. Прогноз выше, чем реальные остатки на страховой запас, что позволяет удовлетворить спрос в полной мере. На рисунках 9 - 13 представлены примеры остатков в соответствии с рекомендуемыми закупками.

Пример остатков 1

Рисунок 9 - Пример остатков 1

Пример 2

Пример остатков 2

Рисунок 10 - Пример остатков 2

Пример 3

Пример остатков 3

Рисунок 11 - Пример остатков 3

Пример 4

Пример остатков 4

Рисунок 12 - Пример остатков 4

Пример 5

За счет добавления страхового запаса можно избежать дефицита, если это необходимо.

Пример остатков 5

Рисунок 13 - Пример остатков 5

В ходе проведенного испытания алгоритмов и программного продукта в целом на одном из магазинов торговой сети города можно сделать выводы о целесообразности и экономической эффективности применения данного решения. Достигнутая точность прогнозирования (в среднем 80%) позволяет определять оптимальный товарный запас с высокой точностью. За исключением скоропортящихся продуктов, для которых магазин имеет высокий реальный дефицит, все товарные остатки рекомендуемые системой оказались значительно ниже реальных. В случае скоропортящихся товаров необходимо определить, что является наиболее важным для магазина – отсутствие дефицита или избытка.

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

Сорокин С.В. Грицай А.А. Варанкин Д.А.

Сорокин Сергей Владимирович, кандидат физико-математических наук, Тверской Государственный Университет, доцент кафедры информационных технологий

Грицай Александр Александрович, бакалавр информационных технологий, ООО "Инжэниус Тим", генеральный директор

Варанкин Дмитрий Александрович, бакалавр информационных технологий, ООО "Инжэниус Тим", ведущий разработчик
 







Повышение квалификации. Основы интеллектуальной собственности