Дифференцируемое программирование

Дифференцируемое программирование в Движении
Применение к цепочкам поставок
На своем ядре Дифференцируемое программирование (DP) предлагает путь к объединению проблем, которые слишком долго оставались разобщенными, и решает их совместно: ассортимент, ценообразование, прогнозирование, планирование, мерчендайзинг. Хотя такое объединение может показаться нереалистично амбициозным, реальность в том, что компании уже применяют невероятное количество скотча к своим процессам, чтобы справиться с бесконечными проблемами, порожденными тем, что эти вызовы были изолированы внутри организации с самого начала. Например, ценообразование очевидно влияет на спрос, и все же как планирование, так и прогнозирование почти всегда выполняются, игнорируя цены полностью.
DP открывает огромные возможности для достижения приблизительно правильных решений с глобальной перспективы на бизнес, в отличие от точного ошибочного подхода, при котором проблемы переносятся внутри организации, а не решаются.
Анекдотически, стремление к приблизительной правильности с учетом бизнеса в целом - это именно то, что делают большинство организаций, ориентированных на электронные таблицы; и из-за отсутствия технологии - как DP - способной охватить перспективу всего бизнеса, электронные таблицы остаются наименее ужасным вариантом.
Электронная коммерция
Возможность привязать 100% проданных единиц к известным клиентам представляет собой огромное количество информации о рынке; однако, когда речь идет о ценообразовании и оптимизации запасов, информация о лояльности обычно даже не используется в настоящее время. DP предлагает возможность перехода от прогнозирования временных рядов к прогнозированию временных графиков, где каждая клиентская-продуктовая пара, когда-либо наблюдаемая, имеет значение; что приводит к более умным решениям как для запасов, так и для цен.
Бренды класса люкс
Оптимизация ценообразования и ассортимента - до уровня магазина - долгое время считалась в значительной степени неразрешимой из-за разреженности данных, то есть очень низкого объема продаж на товар на магазин - так низкого, как одна проданная единица на товар в магазине в год. DP предоставляет возможности для разработки классов решений, которые работают с такими ультра-разреженными данными, потому что они спроектированы для обеспечения гораздо большей эффективности данных, чем обычные методы глубокого обучения.
Бренды моды
Совместная оптимизация запасов и цен является явным требованием - поскольку спрос на многие товары может быть очень чувствителен к цене - однако совместная оптимизация как закупок, так и ценообразования не могла быть достигнута из-за отсутствия инструмента, способного даже постигнуть это взаимодействие - т.е. способность закупать больше по более низкой цене генерирует больший спрос (и наоборот). DP обладает выразительностью для решения этой проблемы.
Производство
Числовая оптимизация крупных многоуровневых сетей распадается, когда пытаются использовать классические численные решатели (см. “За пределами оптимизации методом ветвей и границ” ниже). Действительно, эти решатели становятся в значительной степени непрактичными, когда речь идет о миллионах переменных или стохастических поведениях. К сожалению, производство обладает и тем, и другим, с множеством переменных и стохастическими поведениями. DP предлагает практический подход к справлению с многоуровневыми сетями, не отрекаясь от сложности фактических потоков внутри сети.
MRO (техническое обслуживание, ремонт, обновление)
Если для ремонта системы не хватает одной детали, то вся система - которая может быть самолетом - остается неработоспособной. Вероятностные прогнозы - первый шаг для работы с такими беспорядочными и периодическими паттернами спроса, но разгадать тонкости совпадений необходимых деталей и превращать этот анализ в действенные рекомендации по инвентаризации было слишком сложно для практического использования. DP упрощает решение таких проблем.
Розничные сети
Каннибализация в розничных сетях - обычно между продуктами, но иногда между магазинами - давно признана как первостепенно важная. Эта проблема усугубляется акциями, цель которых именно направить клиентов от одного бренда к другому. DP предлагает возможность решить проблему каннибализации в присутствии акций. Вместо простого “прогнозирования акций”, DP предлагает возможность оптимизировать акции так, как они есть: прибыльные сделки, совместно управляемые как дистрибьюторским каналом, так и брендом.
За пределами шумихи вокруг искусственного интеллекта
Искусственный интеллект (ИИ) определенно был технологическим модным словом 2018 года, и интерес к нему остается сильным и в 2019 году. Однако, хотя Lokad широко использует техники, которые обычно подпадают под модное слово ИИ - например, глубокое обучение - мы были склонны не делать особого упора на часть “ИИ” технологии Lokad. Действительно, что касается количественной оптимизации цепей поставок, упакованный ИИ просто не работает. Цепи поставок совершенно не похожи, скажем, на компьютерное зрение: данные, метрики и задачи крайне разнообразны. В результате компании, которые покупали предполагаемые “готовые” решения ИИ, начинают понимать, что эти решения просто никогда не сработают, за исключением, возможно, в самых простых ситуациях, где “глупые” правила на основе систем также сработали бы хорошо. В основе своей цепи поставок - это сложные, созданные человеком системы, и обычно неразумно ожидать, что ИИ-система - основанная только на данных - сама по себе переоткроет фундаментальные идеи о домене, такие как:
- проведение акций для бренда класса “люкс” - это большая ошибка.
- отрицательные заказы на продажу в ERP на самом деле являются возвратами товаров.
- свежие продукты питания должны транспортироваться в указанных температурных диапазонах.
- варианты цветов могут быть хорошими заменителями одежды, но не варианты размеров.
- техническое обслуживание самолетов зависит от налета и количества полетов.
- продажи в Великобритании на самом деле в фунтах стерлингов, даже если в ERP отображается евро как валюта.
- люди покупают запчасти для своих транспортных средств, а не для себя.
- каждый бриллиант уникален, но цены в основном зависят от карата, чистоты, цвета и огранки.
- любая недостающая запчасть NOGO на самолете приводит к его наземной стоянке.
- многие химические заводы требуют недели для перезапуска после выключения.

В этом отношении глубокое обучение оказалось чрезвычайно успешным, потому что, в отличие от многих предыдущих подходов в машинном обучении, глубокое обучение является глубоко композиционным: можно широко настраивать структуру модели для лучшего обучения в конкретной ситуации. Настройка структуры модели отличается от настройки входных данных модели - задача, известная как инженерия признаков - которая обычно была единственным вариантом для большинства не-глубоких алгоритмов машинного обучения, таких как случайные леса.
Однако, по мере того как фреймворки глубокого обучения возникли из “Больших Проблем” машинного обучения, а именно компьютерного зрения, распознавания речи, синтеза речи, автоматического перевода. Эти фреймворки были разработаны и настроены в глубину для сценариев, которые абсолютно не похожи на проблемы, с которыми сталкиваются цепи поставок. Таким образом, хотя возможно использовать эти фреймворки для целей оптимизации цепей поставок, это было не простым и не легким делом. В заключение, с помощью фреймворков глубокого обучения можно добиться многого для цепей поставок, но несоответствие между цепями поставок и существующими фреймворками глубокого обучения сильно; это увеличивает затраты, задержки и ограничивает практическую применимость этих технологий.
За пределами оптимизации методом ветвей и границ
Большинство проблем в цепях поставок имеют как угол обучения - вызванный неполным знанием о будущем, неполным знанием о текущем состоянии рынка и иногда даже неполным знанием самой системы цепочки поставок (например, неточности в инвентаризации), так и числовой угол оптимизации. Решения должны быть оптимизированы с учетом экономических факторов, удовлетворяя множество нелинейных ограничений (например, минимальные заказные партии при закупках или размеры партий при производстве).
В области числовой оптимизации целочисленное программирование и связанные с ним техники, такие как метод ветвей и границ, доминировали в течение десятилетий. Однако эти алгоритмы метода ветвей и границ и связанные с ними программные решения в основном не смогли обеспечить гибкость и масштабируемость, необходимые для предоставления операционных решений для многих, если не для большинства, вызовов цепей поставок. Целочисленное программирование является фантастически эффективным инструментом при решении сложных задач с небольшим количеством переменных (например, размещение компонентов в устройстве потребительской электроники), но показывает драстические ограничения при решении проблем крупномасштабного уровня, когда включен случайный элемент (например, балансировка запасов между 10 миллионами SKU при столкновении как с вероятным спросом, так и с вероятными временами транспортировки).
Одним из наиболее недооцененных аспектов глубокого обучения является то, что его успех является результатом как прорывов в области обучения, так и прорывов в области оптимизации. Это связано с тем, что научное сообщество обнаружило, что чрезвычайно эффективные алгоритмы выполняют оптимизацию крупномасштабных задач. Не только эти алгоритмы оптимизации “глубокого обучения” - все вращающиеся вокруг стохастического градиентного спуска - значительно более эффективны, чем их аналоги метода ветвей и границ, но они гораздо лучше подходят для вычислительного оборудования, которое у нас есть, а именно SIMD CPU и (GP)GPU, что на практике обеспечивает ускорение в два или три порядка. Эти прорывы в чистой числовой оптимизации имеют большое значение для цепей поставок с целью оптимизации решений. Однако, если фреймворки глубокого обучения уже отчасти не подходили для решения проблем обучения в цепях поставок, то они еще менее подходят для решения проблем оптимизации в цепях поставок. Действительно, эти проблемы оптимизации еще более зависят от выразительности фреймворка, чтобы позволить ученым по цепям поставок реализовать ограничения и метрики, которые должны быть соответственно применены и оптимизированы.
К дифференцируемому программированию
В теории нет разницы между теорией и практикой. Но, на практике, есть. Уолтер Дж. Савич, Паскаль: Введение в искусство и науку программирования (1984)
Дифференцируемое программирование (DP) - это ответ, чтобы привнести в цепи поставок лучшее из того, что предлагает глубокое обучение как с точки зрения обучения, так и с точки зрения числовой оптимизации. Через DP ученые по цепям поставок могут максимально использовать свои человеческие инсайты для создания числовых рецептов, выстроенных - в глубину - с бизнес-целями. Нет абсолютного разграничения между глубоким обучением и дифференцируемым программированием: это скорее континуум от наиболее масштабируемых систем (глубокое обучение) к наиболее выразительным системам (дифференцируемое программирование) с множеством программных конструкций, которые постепенно становятся доступными - за счет сырой масштабируемости - при переходе к дифференцируемому программированию. Тем не менее, наш опыт в Lokad показывает, что переход от инструментов, в основном разработанных для компьютерного зрения, к инструментам, разработанным для вызовов цепей поставок, именно делает разницу между “интересным” прототипом, который никогда не попадает в производство, и промышленным системой, развернутой в масштабе.
Глубокое обучение | Дифференцируемое программирование | |
---|---|---|
Основная цель | Обучение | Обучение+Оптимизация |
Типичное использование | Обучение один раз, оценка многократно | Обучение один раз, оценка один раз |
Гранулярность ввода | Толстые объекты (изображения, голосовые последовательности, сканирование лидара, полные текстовые страницы) | Тонкие объекты (продукты, клиенты, SKU, цены) |
Разнообразие ввода | Однородные объекты (например, изображения, все имеющие одинаковое соотношение высоты/ширины) | Гетерогенные объекты (связные таблицы, графики, временные ряды) |
Объем ввода | От мегабайт до петабайт | От килобайт до десятков гигабайт |
Аппаратное ускорение | Аппаратное ускорение | Хорошее |
Экспрессивность | Статические графики тензорных операций | (Почти) произвольные программы |
Стохастические числовые методы | Встроенные | То же |
Типичное использование - это тонкая, но важная точка. С точки зрения “Большого ИИ”, время обучения может быть (почти) произвольно долгим: нормально, если вычислительная сеть обучается недели, если не месяцы. Позже полученную вычислительную сеть обычно необходимо оценить в реальном времени (например, распознавание образов для автономного вождения). Этот подход совершенно не похож на цепочки поставок, где лучшие результаты достигаются путем повторного обучения сети каждый раз. Более того, с точки зрения ДП, обученные параметры часто являются теми самыми результатами, которые мы стремимся получить; что делает всю оценку в реальном времени несущественной. Ожидания относительно входных данных как по гранулярности, разнообразию и объему также сильно различаются. Обычно перспектива “Большого ИИ” подчеркивает практически бесконечные объемы обучающих данных (например, все текстовые страницы веб-сайта), где основным вызовом является нахождение методов, способных эффективно использовать эти массивные наборы данных. В отличие от этого, проблемы цепочек поставок должны решаться с ограниченным количеством структурированных, но разнообразных данных. Это направляет глубокое обучение к тензорным фреймворкам, которые могут быть массово ускорены за счет специализированного аппаратного обеспечения, сначала графических процессоров, а теперь все чаще - TPU. Дифференцируемое программирование, основанное на стохастическом градиентном спуске, также обладает многими хорошими свойствами для аппаратного ускорения, но в меньшей степени по сравнению со статическими графиками тензорных операций. Важность стохастических числовых методов двойная. Во-первых, эти методы играют важную роль с точки зрения обучения. Вариационные автоэнкодеры или отсевы - примеры таких числовых методов. Во-вторых, эти методы также играют важную роль с точки зрения моделирования, чтобы правильно учитывать вероятностные поведения в системах цепочек поставок (например, изменяющиеся лидирующие времена). Напротив, существует огромный разрыв между дифференцируемым программированием и смешанным целочисленным программированием - доминирующим подходом за последние несколько десятилетий было выполнение сложных численных оптимизаций.
Смешанное целочисленное программирование | Дифференцируемое программирование | |
---|---|---|
Основная цель | Оптимизация | Обучение+Оптимизация |
Гранулярность и разнообразие ввода | Тонкие объекты, гетерогенные | То же |
Объем ввода | От байт до десятков мегабайт | От килобайт до десятков гигабайт |
Аппаратное ускорение | Плохое | Хорошее |
Экспрессивность | Неравенства над линейными и квадратичными формами | (Почти) произвольные программы |
Стохастические числовые методы | Нет | Встроенные |
В защиту инструментов смешанного целочисленного программирования, эти инструменты - когда они успешно справляются с задачей - иногда доказывают - в математическом смысле - что они получили оптимальное решение. Ни глубокое обучение, ни дифференцируемое программирование не предоставляют никакого формального доказательства в этом отношении.
Заключение
Дифференцируемое программирование - это крупный прорыв для цепочек поставок. Оно построено на основе глубокого обучения, которое оказалось чрезвычайно успешным в решении многих проблем “Большого ИИ”, таких как компьютерное зрение, но переработано в своей сути, чтобы быть подходящим для реальных вызовов, стоящих перед реальными цепочками поставок. Lokad развивает свою технологию прогнозирования на основе глубокого обучения, чтобы перейти к дифференцируемому программированию, которое является следующим поколением нашей прогностической технологии. Однако, ДП - это не просто предсказание, оно объединяет оптимизацию и обучение, открывая решения для огромного количества проблем, для которых ранее не было жизнеспособных решений.