В настоящее время получение точных прогнозов запасов имеет важное значение для многих компаний. Прогноз позволяет уменьшить количество хранимых на складе материалов и тем самым, сократить инвестиции в материалы.
В конкретном случае компаний “Pool” эта потребность возрастает, поскольку они должны
поддерживать качество обслуживания, а также минимизировать инвестиции в основные средства. Задачу решает нейронная сеть, обученная и адаптированная под потребности компании.
Описание ситуации
Компании “Пула” арендуют определенные виды контейнеров для нескольких групп клиентов. Контейнера находятся на территории расположенных в разных местах распределительных складов, . Каждый склад обслуживает заранее известный набор местных клиентов, которые всегда арендуют разные контейнеры на этом складе. Есть и другие клиенты, которые могут получать контейнеры с других складов в зависимости от их местоположения.
Маршрут следования арендованных контейнеров начинается с одного из распределительных складов компании. Там клиенты загружают свои
грузовики этими контейнерами, когда это необходимо. Для клиентов важно находить свои контейнеры непосредственно на складе, поскольку их немедленная доступность повышает качество обслуживания. После использования контейнеров клиенты возвращают их на распределительный склад, где они готовятся для повторного использования.
Компания “Pool” проводит свои инвентаризационные расчеты в конце каждой недели. Известен текущий запас каждого вида контейнеров на каждом складе . Также известно сколько каждого типа контейнеров прибудет в течение недели. Неизвестная информация -сколько контейнеров клиенты заберут с каждого склада.
Знание о предстоящем потреблении позволили бы компании корректировать количество запасов, которые она должна хранить на каждом складе. Чрезвычайно важно свести к минимуму количество запасов: неиспользуемые контейнера наносят ущерб компании, поскольку ее основным источником дохода является постоянная ротация этих предметов. Прогнозируемый остаток запасов может быть распределен среди иногородних клиентов, требуя, чтобы они загружали свои грузовики на определенных складах, где есть избыток. При необходимости можно осуществлять перемещение контейнеров между складами с целью балансирования их запасов.
Цели
Целью компании являлось наиболее точное прогнозирование количества контейнеров, которые каждый клиент собирается забрать с каждого склада; таким образом, компания планировала сократить запасы на складах и
увеличить свою прибыль. Прогноз должен быть адаптируемым, чтобы он автоматически приспосабливался к новым требованиям каждого клиента.
Чтобы решить эту проблему было принято решение применить методы искусственного интеллекта, в частности нейронные сети. Эти методы успешно применяются для экономических прогнозов с множеством вариантов.
Нейронные сети за счет процедуры переобучения также хорошо адаптируются к системным изменениям.
Существует огромное количество внешних переменных, которые могут влиять на систему (факторы окружающей среды, эпидемии, колебания спроса и т.д.), которые зависят от конкретных видов деятельности каждого клиента. Невозможность анализировать каждого клиента индивидуально вынудило разработчиков делать прогнозы, основанные только на нескольких известных переменных. Несмотря на эти ограничения, удалось улучшить управление запасами компании.
Результаты
Как показывают полученные результаты, нейронные сети представляют собой отличный инструмент прогнозирования поведения клиентов компании “Пул”
, даже несмотря на доступной для обучения ограниченный объем исторической информации, . Они особенно хорошо работают , когда рабочая информация нелинейна, с шумом или с временными зависимостями, или когда ее необходимо быстро адаптировать к новым ситуациям.
С другой стороны, трудно осознать процесс получения результата, потому что нейронные сети используют подход “черного ящика”. Кроме того, в определенных ситуациях периоды обучения могут быть слишком длительными (не в данном случае): обучение сети только для одного клиента, на одном складе и для одного определенного типа товара обычно занимает около 4-5 минут; это подразумевает всего несколько часов расчета для всего процесса.
В настоящее время эта система используется для прогнозирования запасов на всех семи складах компании. Во время всего периода использования поведение системы было очень удовлетворительным.
Несмотря на то, что бывают недели, когда ошибка для конкретной статьи составляет почти 4%, в целом частота ошибок прогнозирования остается менее 2%.
Эта работа является примером реальной полезности искусственного интеллекта в решении производственных и бизнес-задач. Примененный метод обеспечил экономическую прибыль компании, так как он сохранил качество обслуживания и увеличил количество предлагаемых для аренды контейнеров без увеличения затрат на основные средства.
Описание технического решения
Дальнейший текст содержит уникальное описание процесса принятия решения разработчиком. Эта часть увлекательна и полезна, но при условии наличия у вас базовой подготовки в теории нейросетей.
Выбор модели нейронной сети
Для целей прогнозирования наиболее интересными моделями являются многослойные прямые (Бишоп, 1995) и рекуррентные сети (Хаммер, 2000). Эти модели использовались многими исследователями для решения финансовых проблем и других задач прогнозирования.
Модель данных
Единственной информацией, доступной для прогнозирования запасов, была база данных с данными о перемещениях клиентов на складах за последние два года. Обширное исследование не проводилось, поскольку существовало большое количество внешних переменных, которые зависят от деятельности каждого клиента. Такое исследование потребовало бы огромных усилий, и все равно было бы невозможно включить новых клиентов в приложение без изменений.
Был определен ряд переменных, таких как как сезонность продукции
и атмосферные условия, которые могли бы участвовать в модели, также являются непредсказуемыми, поэтому их нельзя использовать в качестве
постоянного источника данных. В результате в процессе обучения использовались только исторические данные.
Подготовка модели данных
В качестве входных данных были включены даты, разделенные на дни и недели. Для анализа это важный фактор, т.к. клиент не работает одинаково круглый год (есть клиенты, которые работают только в определенные сезоны, в зависимости от вида их продуктов). Точно так же у каждого клиента есть свои предпочтения относительно дня недели, в который он хочет забрать товары.
На этапе настройки нейросеть была протестирована без включения даты в качестве входных данных, включая месяц, и без множества других комбинаций, но результат был хуже. Год не включен, потому что когда в компанию поступает новая информация о клиенте сеть адаптируется с помощью процесса переобучения , .
В анализ было включено временное окно, в котором показано количество контейнеров, собранных клиентом за предыдущие шесть дней. Аналогичным образом, были протестированы различные размеры окон, но они не уменьшали ошибку прогнозирования.
Для стандартных функций активации нейронов рекомендуется кодировать входные данные между 0 и 1. Для кодирования недели года была использована кодировка Джонсона; эта кодировка обладает некоторыми интересными характеристиками, которыми может воспользоваться сеть: две последовательные недели кодируются с разницей всего в один бит, как последняя неделя года и первая неделя следующего года.
Для каждого дня недели был включен отдельный нейрон . Воскресенье не было включено, потому что это не рабочий день. Кодирование временного окна было рассчитано путем деления количества контейнеров , арендуемых каждый день, на максимальное значение. Это максимальное значение может изменяться, если клиент увеличивает свой спрос. Тем не менее, эта проблема легко решается путем переобучения нейронной сети с новым максимальным значением. Разработчики протестировали статистическую нормализацию, но результирующие значения вышли за пределы интервала [0..1], и сетевой вывод
имел высокую частоту ошибок.
Выходной слой включает только один нейрон, который представляет количество контейнеров, собранных конкретным клиентом в указанный день. Это значение должно быть умножено на вышеупомянутый максимум, чтобы вернуть выходное
значение к исходной единице измерения.
Сетевая модель
Поскольку не существует правила выбора конкретной топологии для данной задачи, были опробованы многочисленные сетевые структуры: рекуррентные сети и сети без обратной связи, разное количество скрытых слоев и разное количество нейронов на слой.
В таблице показаны результаты тестирования сети.