Доказательство концепции управления запасами

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

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

Обучение с подкреплением

Обучение с подкреплением можно рассматривать как агента, взаимодействующего с окружающей средой. Агент выполняет действия, получает вознаграждение и создает картину окружающей среды (и того, как его действия влияют на среду) посредством наблюдений. Ключевой элемент обучения с подкреплением - и то, что отличает его от других методов машинного обучения, - это то, что обучение происходит через цикл взаимодействия (рис. 1), где агент узнает, какие действия приводят к высокому / низкому вознаграждению с учетом его текущего состояния. Таким образом, обучение приравнивается к попытке агента максимизировать ожидаемое будущее вознаграждение.

Проблема с инвентаризацией

Чтобы проверить потенциал обучения с подкреплением для решения проблем в цепочке поставок, мы начали с простой «игрушечной задачи». В обучении с подкреплением есть много подводных камней, и разумно постепенно вводить сложность, чтобы убедиться, что все работает так, как должно. В Streamba мы называем это «ИИ, управляемым тестированием» и считаем, что это важная часть перехода от концепции к производству с подкреплением в разумные сроки.

Наша простая проблема - это вариант проблемы, часто встречающейся в цепочках поставок, особенно в нефтегазовой отрасли, - проблемы управления запасами. Заказы поступают от покупателя, и роль нашего агента заключается в том, чтобы удовлетворить потребности покупателя, то есть предоставить покупателю необходимое количество товаров. Эти предметы могут быть любыми (пивные бутылки, сверла, ноутбуки; например), если они проходят через звено в цепочке поставок, которое может контролировать наш агент. Чтобы удовлетворить спрос клиента, наш агент должен убедиться, что в его инвентаре достаточно товаров, и он делает это, заказывая определенное количество товаров у поставщика.

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

На жаргоне цепочки поставок мы ожидаем, что интеллектуальный агент будет реализовывать доставку «точно в срок» (JIT) - заказывать необходимые материалы в самый последний момент, но при этом удовлетворять потребности клиентов. Теперь нам просто нужно правильно сформулировать это как задачу обучения с подкреплением.

Создание окружающей среды

Чтобы охватить все важные аспекты нашей проблемы, мы разработали среду моделирования. Графическое представление этого показано на рисунке 3. Мы использовали понятие эффективных запасов для учета как избыточных запасов (положительные эффективные запасы), так и неудовлетворенного спроса (отрицательные эффективные запасы) в одной переменной. Предметы, поставленные поставщиком, добавляются к эффективному запасу, а предметы, заказанные клиентом, забираются, а отрицательное вознаграждение агента просто показывает, насколько эффективный запас отличается от нуля. Умный агент хотел бы, чтобы его эффективный инвентарь был близок к нулю, но наш агент еще этого не знает, ему нужно научиться этому самому.

Обучение агента

Так как же на самом деле создать агента, который сможет изучить политику управления запасами с высоким вознаграждением? Итак, мы изучили как Q-обучение, так и градиенты политики, два распространенных алгоритма обучения с подкреплением. У обоих алгоритмов есть свои преимущества и недостатки (например, например), но до сих пор неясно, какие алгоритмы лучше всего подходят для проблем цепочки поставок (подробнее об этом в будущих статьях). Нам особенно понравились градиенты политик, потому что они объединяют все последние достижения в обучении с учителем для решения задач обучения с подкреплением, и их очень легко реализовать. По сути, мы просто подключили классификатор стохастического градиентного спуска из scikit-learn, установили классы как действия в нашей проблеме, функции как наши наблюдения и взвешенные выборки в соответствии с функцией вознаграждения. На первой итерации мы сгенерировали потребительский спрос путем выборки (равномерно) из набора {0, 1, 2} и установили пространство действий нашего агента как заказ для ряда элементов также из набора {0, 1, 2}. Мы запустили его, и он просто заработал, см. Рис. 4.

Хорошо, это простая задача, но здорово, что ее так легко реализовать. Сначала наш агент изо всех сил пытается удовлетворить спрос клиентов, но со временем он учится ничего не делать (то есть заказывать 0 товаров), если у него есть избыточный запас, и заказывать 2 единицы (максимум, который он может), если у него есть невыполненные заказы. Мы исследовали другие профили спроса (например, Пуассон, Пуассон + периодический тренд) и расширили пространство действий, и агент по-прежнему работал (насколько круто ML?).

Что дальше?

Мы планируем распространить эту работу на дела, связанные с более реалистичными профилями спроса со стороны клиентов в цепочке поставок нефти и газа. Мы также изучаем идею повторного использования других моделей машинного обучения, которые мы разработали в другом месте (например, предикторов спроса) внутри агента - подробнее об этом скоро!

Хотите узнать больше?

Если вы в восторге от обучения с подкреплением, мы рекомендуем посмотреть AlphaGo на Netflix »или для некоторых о машинном обучении в целом, нам недавно понравилась эта статья Майкла Джордана. И, конечно же, прочтите наш следующий пост!