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

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

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