00:00:07 Дифференцируемое программирование как новый термин.
00:01:38 Основная идея градиентной оптимизации в глубоком обучении.
00:03:48 Прорыв в автоматическом дифференцировании при вычислении градиентов.
00:06:00 Происхождение дифференцируемого программирования и его влияние на машинное обучение.
00:07:43 Сложность на первый взгляд простых задач и итерационный прогресс в области искусственного интеллекта.
00:09:33 Переход от нейронных сетей к глубокому обучению и дифференцируемому программированию.
00:11:22 Преимущества дифференцируемого программирования в оптимизации цепей поставок.
00:13:26 Связывание ценообразования, прогнозирования спроса и распределения запасов в управлении цепями поставок.
00:15:00 Дифференцируемое программирование в машинном обучении и решение неопределенностей.
00:16:00 Дифференцируемое программирование в управлении цепями поставок и сравнение с крупными технологическими компаниями.
00:18:19 Применение техник искусственного интеллекта из других областей к проблемам управления цепями поставок.
00:20:15 Преимущества дифференцируемого программирования для прогнозного моделирования и оптимизации в цепях поставок.
00:22:01 Предстоящие вызовы для дифференцируемого программирования в управлении цепями поставок.
00:24:16 Заключительные мысли.

Резюме

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

Расширенное резюме

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

Ян Лекун, директор исследований по искусственному интеллекту в Facebook, недавно предложил, что термин “глубокое обучение” утратил свою актуальность как модное слово и предложил использовать “дифференцируемое программирование” для отражения новых разработок в программном обеспечении. Верморель прокомментировал постоянную эволюцию терминологии в области искусственного интеллекта, отметив, что как только находится решение для проблемы, оно больше не считается искусственным интеллектом и получает новое название, причем дифференцируемое программирование является последним примером.

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

Исторически нейронные сети, предшествующие глубокому обучению, использовали сложные техники, такие как обратное распространение ошибки, для вычисления градиентов. Эти техники были сложными в реализации и работали относительно медленно. Прорыв произошел около десяти лет назад, когда исследователи начали использовать автоматическое дифференцирование, технику, впервые открытую в 1960-х годах. Автоматическое дифференцирование упрощает вычисление градиентов, но оно оставалось в значительной степени незамеченным научным сообществом до более позднего времени, когда его потенциал был осознан.

Обсуждение вращается вокруг концепции дифференцируемого программирования и его развития, а также его применения в оптимизации цепей поставок.

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

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

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

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

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

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

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

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

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

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

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

Полный текст

Kieran Chandler: Сегодня мы продолжим нашу мини-серию, рассмотрев ее истоки. Итак, Джоаннес, дифференцируемое программирование - еще одно модное слово в мире технологий. Действительно ли нам нужно еще одно?

Joannes Vermorel: Думаю, да. Это очень интересно, потому что как только у людей появляется решение, которое работает для проблем, вдруг это уже не искусственный интеллект. Оно получает другое название. Искусственный интеллект - это общий термин, чтобы сказать, что это terra incognita; мы не знаем, как решать эти классы проблем. Как только у нас есть решение, у решения есть название, и обычно это серия относительно итеративных прорывов с множеством итераций. Затем оно получает название, отражающее то, что доминирует в численном рецепте этого решения.

Kieran Chandler: Хорошо, а затем мы переходим к дифференцируемому программированию. Какова история за этим? Откуда появилось название и как мы к этому пришли?

Joannes Vermorel: Название происходит от одного из ингредиентов, которые обеспечивают глубокое обучение, а именно идеи градиентной оптимизации. Что это значит? Градиентная оптимизация означает, что у вас есть модель с потенциально миллионами параметров. Способ, которым вы будете обучать эти параметры, заключается в наличии целевой функции, уравнения, которое говорит вам, хорошие или плохие ваши результаты. Идея заключается в том, что каждый раз, когда вы смотрите на точку данных, у вас есть информация, которая проходит через эту функцию, и вы можете вычислить градиент. Градиент говорит вам, что если вы немного повернете параметры в этом направлении, это локально улучшит целевую функцию. Это идея, лежащая в основе стохастического градиентного спуска, который является алгоритмом, используемым для оптимизации современных алгоритмов машинного обучения и всего глубокого обучения, например.

Итак, у нас есть этот градиентный подход с множеством параметров, и идея заключается в том, чтобы каждый раз, когда вы наблюдаете новую точку данных, немного перемещать параметры, чтобы постепенно становиться лучше. Проблема тогда заключается в том, как вычислить этот градиент. Кстати, градиент - это просто большое название для многомерных производных. Если у вас есть алгебра школьного уровня, вы смотрите на производные, на наклон кривой в одномерном пространстве. Если у вас есть много измерений, вы будете называть их градиентом. Поскольку у вас много параметров, вы хотите вычислить наклон для каждого из этих параметров.

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

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

Кирен Чандлер: Хорошо, многое было сказано. Давайте попробуем немного разобраться. Вы сказали, что некоторые из этих идей появились в 50-х и 60-х годах. Это действительно не так быстрое развитие, которое мы видим в области искусственного интеллекта и тому подобное. Так что на самом деле достижение дифференцируемого программирования было достигнуто через довольно итеративный подход?

Жоанн Верморель: Абсолютно, но реальность в том, что даже глубокое обучение до этого было очень итеративным, и нейронные сети до этого были очень итеративными. Я имею в виду, темп прогресса был довольно быстрым за последние 50-60 лет. Он был невероятно быстрым. И что любопытно, так это то, что в начале 60-х годов люди думали, что “О, если мы сможем решить умножение, расширение или все эти сложные вычисления, то идентификация собаки будет очень простой. В конце концов, любой человек на улице может сказать, что это собака, но для вычисления логарифма требуется суперобученный математик. Так что, очевидно, вычисление логарифма намного сложнее, чем определение, есть ли перед вами собака”.

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

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

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

Кирен Чандлер: А как насчет дифференцируемого программирования? Что послужило вдохновением для этого?

Жоанн Верморель: Ключевым, очень интересным открытием был переход от нейронных сетей к глубокому обучению. Идея заключалась в полном отказе от всей биологической вдохновленности и в понимании того, что, если мы хотим двигаться вперед, нам нужно отказаться от биологической вдохновленности и сосредоточиться на том, что действительно работает с компьютерным оборудованием. Одним из ключевых открытий, которые позволили развитию глубокого обучения, была его модульность. Вы можете строить модели машинного обучения таким образом, что они будут крайне модульными; вы можете комбинировать их, стекать, конкатенировать и смешивать их разными способами.

Кирен Чандлер: И почему это так важно для цепей поставок?

Жоанн Верморель: Это связано с тем, что мы хотим смешивать такие вещи, как цены, продукты, клиенты, местоположения, контейнеры и все виды разнообразных объектов, которые необходимо объединить для решения проблем цепей поставок. Вам нужно учитывать всю эту разнообразность. Когда у вас появляются модели, которые можно комбинировать множеством способов, вы получаете язык программирования, буквально. Интересно то, что люди начали создавать инструменты в глубоком обучении, которые становились все ближе к настоящим языкам программирования. Например, Microsoft выпустила свой вычислительный набор сетей, CNTK, в котором был BrainScript, язык программирования, специфичный для глубокого обучения. Следующим этапом было полноценное программирование.

Кирен Чандлер: Так что это похоже на подход с использованием конструктора Лего, объединение разных блоков из разных мест и комбинирование этих моделей разными способами. Как это работает на практике? Как вы реализуете это программирование?

Жоанн Верморель: Лего были практически архетипом того, что люди имели с глубоким обучением, действительно. Речь шла о комбинировании блоков, но в довольно ограниченных рамках. Между глубоким обучением и дифференцируемым программированием есть спектр без четкой границы. Разница заключается в том, что люди перешли от Лего, где дело сводилось только к сборке частей, к программированию, где вы можете делать то же самое, но с программной выразительностью. Для цепей поставок это означает, что вы можете пересматривать проблемы и выражать свое решение более лаконично и точно в отношении проблемы, которую вы пытаетесь решить.

Кирен Чандлер: Можете привести пример?

Жоанн Верморель: Конечно, давайте попробуем совместно оптимизировать ценообразование, прогнозирование спроса и распределение запасов. Когда вы об этом задумываетесь, все эти вещи полностью связаны. Я прогнозирую спрос, но я знаю, что если я изменю свою стратегию ценообразования, я изменю спрос. Если я изменю спрос, это повлияет на то, сколько мне нужно произвести и запастись, потому что спрос будет другим. Все эти вещи полностью связаны, и у них есть зависимости, которые вы можете буквально записать.

Кирен Чандлер: Это сложно в некотором смысле. Если у меня больше спроса, мне нужно больше запасов, чтобы удовлетворить спрос. Это довольно очевидно, и если я установлю цену на более высоком уровне, то для спроса, который я сохраню, у меня будет больший маржа. Есть много вещей, которые являются полными, практическими расчетами, но вопрос в том, как вы объединяете все эти ингредиенты, чтобы сделать что-то, что является и предсказанием, и оптимизацией?

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

Кирен Чандлер: Так что вы хотите сказать с этими пустыми местами, что вы фактически пишете программу, где вы на самом деле не знаете все ответы?

Жоанн Верморель: Да, это правильно.

Кирен Чандлер: Как вы можете знать это и быть уверенным, что вы действительно получите правильный ответ, если есть эти пустые места?

Жоанн Верморель: Действительно, это похоже на явление в машинном обучении. Вы учитесь, поэтому у вас нет гарантий, что вы получите хорошие результаты. Тем не менее, я не думаю, что сейчас это отличается от глубокого обучения и всех предыдущих методов машинного обучения. Например, программы машинного обучения теперь обыгрывают всех человеческих игроков в играх, таких как Го и шахматы. Так что это не так, будто у нас не было ясных признаков того, что это действительно работает, даже превосходя возможности человека для решения проблем, которые до сих пор довольно узкие, в отличие от определения местоположения собаки в грязной городской среде, что является гораздо более сложной проблемой.

Кирен Чандлер: Вы упомянули некоторые перспективы цепочки поставок для дифференцируемого программирования. С точки зрения исследований и разработки, насколько близко то, что мы делаем здесь в Lokad, по сравнению с тем, что делают Facebook и другие крупные технологические компании в области дифференцируемого программирования?

Жоанн Верморель: Я считаю, что крупные игроки в сфере технологий, такие как Google, Facebook и Microsoft, имеют гораздо больший бюджет на исследования и разработку. В Lokad мы делаем все возможное, но будем реалистами, у меня даже нет 1% бюджета на искусственный интеллект, как у Microsoft или Facebook. Это реальность для большинства B2B-компаний в настоящее время. Эти рынки все еще довольно узкие, и нет компании в цепочке поставок, которая бы сказала, что у нас есть 2000 исследователей по искусственному интеллекту. Однако хорошая новость в том, что такие гиганты, как Google, Amazon и Facebook, фактически публикуют много, поэтому большая часть их исследований публикуется. Это означает, что одна из главных проблем, с которыми мы сталкиваемся в Lokad, - это тщательно следить за всеми этими публикациями и постепенно черпать вдохновение из них. Мы переосмысливаем то, что они делают, но с точки зрения цепочки поставок, потому что эти большие команды работают над большими проблемами искусственного интеллекта, такими как компьютерное зрение, распознавание речи, синтез речи и обработка естественного языка, что совсем не то, что люди пытаются решить в цепочке поставок.

Кирен Чандлер: Как можно перейти от таких больших проблем искусственного интеллекта, как распознавание изображений и распознавание речи, к цепочке поставок? Как они могут быть связаны вообще?

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

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

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

Кирен Чандлер: Какова основная выгода с точки зрения Lokad от дифференцируемого программирования? Это идея, что вы можете ответить на все эти неизвестные, которые есть в цепочке поставок, и на все эти пустые места, где вы на самом деле не знаете, что произойдет в будущем?

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

Кирен Чандлер: Стать намного более выразительным - вот ключевой момент, чтобы убедиться, что вы можете, знаете ли, создавать числовые рецепты, которые действительно соответствуют бизнес-проблеме, которая у вас перед глазами. Знаете ли, если у вас есть доступ к языку программирования, то вы становитесь намного более, я бы сказал, выразительным и гибким. Внезапно это становится, знаете ли, на практике намного проще сделать так, чтобы все подходило. Хорошо, давайте начнем завершать. Вы упомянули в начале, что дифференцируемое программирование было началом долгого пути с множеством предстоящих проблем.

Жоанн Верморель: Да, где мы находимся на этом пути и какие самые большие проблемы, с которыми мы столкнемся… Самая большая проблема, вероятно, заключается в том, чтобы установить ряд, вероятно, идентифицировать ряд конструкций и строительных блоков, знаете ли, строительных блоков программирования, которые действительно хорошо работают для цепочки поставок. Итак, помните, автоматическое дифференцирование позволяет дифференцировать любую программу, это верно, но, как вы указывали, это не значит, что вы останавливаетесь или начинаете вливать параметры в свою программу и говорите: “Ну, все будет работать, потому что я могу оптимизировать свои параметры”. Нет, реальность в том, что не любая программа работает. Да, вы можете дифференцировать любую программу, у которой есть эти параметры, но реальность в том, что если бы вы, знаете ли, писали программу наугад с параметрами посередине, когда вы запускаете свою оптимизацию, знаете ли, ваше автоматическое дифференцирование, результаты, которые вы получите, будут полным дерьмом. Так что нет, это должны быть, нам нужно идентифицировать конкретные способы создания этих проблем, которые действительно дают не только хорошие результаты, но и очень стабильные и надежные. Вы видите, вы предпочитаете, мы хотим иметь вещи, которые мы можем перенести в производство, поэтому быть лучше в среднем недостаточно. Вы хотите иметь не только лучшее, но и очень надежное, и поэтому вы не создаете, знаете ли, одноразовые чудеса, что-то, что является критически плохим. Вы хотите получить результаты, которые очень стабильны, очень надежны и не терпят катастрофических сбоев раз в год. И это, вероятно, частично еще впереди нас.

Кирен Чандлер: Великолепно. Хорошо, это все на сегодня. Спасибо за ваше время, Жоанн.

Жоанн Верморель: Спасибо.

Кирен Чандлер: Большое спасибо за просмотр. Мы вернемся на следующей неделе с последней частью этой мини-серии о дифференцируемом программировании. Но до тех пор, спасибо за просмотр.