Jump to content

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

Дифференцируемое программирование — это парадигма программирования , в которой числовая компьютерная программа может быть дифференцирована посредством автоматического дифференцирования . [1] [2] [3] [4] [5] Это позволяет на основе градиента оптимизировать параметры программы , часто посредством градиентного спуска , а также использовать другие подходы к обучению, основанные на информации о производных более высокого порядка. Дифференцируемое программирование нашло применение в самых разных областях, особенно в научных вычислениях и машинном обучении . [5] Одно из первых предложений по систематическому внедрению такой структуры для улучшения алгоритмов обучения было сделано группой перспективных концепций Европейского космического агентства в начале 2016 года. [6]

Подходы [ править ]

Большинство дифференцируемых сред программирования работают путем построения графа, содержащего поток управления и структуры данных в программе. [7] Попытки обычно делятся на две группы:

  • Статические подходы на основе скомпилированных графов , такие как TensorFlow , [примечание 1] Теано и MXNet . Они, как правило, обеспечивают хорошую оптимизацию компилятора и более простое масштабирование для больших систем, но их статическая природа ограничивает интерактивность и типы программ, которые можно легко создавать (например, программы, включающие циклы или рекурсию ), а также усложняют пользователям рассуждать. эффективно о своих программах. [7] Инструментарий для проверки концепции компилятора под названием Myia использует подмножество Python в качестве внешнего интерфейса и поддерживает функции высшего порядка, рекурсию и производные более высокого порядка. [8] [9] [10]

Ограничением более ранних подходов является то, что они способны различать только код, написанный подходящим для платформы способом, что ограничивает их взаимодействие с другими программами. Новые подходы решают эту проблему путем построения графа на основе синтаксиса языка или IR, что позволяет дифференцировать произвольный код. [7] [9]

Приложения [ править ]

Дифференцируемое программирование применялось в таких областях, как сочетание глубокого обучения с физическими двигателями в робототехнике , [12] решение задач электронной структуры с помощью теории дифференцируемого функционала плотности , [13] дифференцируемая трассировка лучей , [14] обработка изображений , [15] и вероятностное программирование . [5]

Многопрофильное приложение [ править ]

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

См. также [ править ]

Примечания [ править ]

  1. ^ TensorFlow 1 использует подход статического графа, тогда как TensorFlow 2 по умолчанию использует подход динамического графа.

Ссылки [ править ]

  1. ^ Иззо, Дарио; Бискани, Франческо; Мерета, Алессио (2017). «Дифференцируемое генетическое программирование». Генетическое программирование . Конспекты лекций по информатике. Том. 10196. стр. 35–51. arXiv : 1611.04766 . дои : 10.1007/978-3-319-55696-3_3 . ISBN  978-3-319-55695-6 . S2CID   17786263 .
  2. ^ Байдин, Атилим Гюнес; Перлмуттер, Барак А.; Радуль Алексей Андреевич; Сискинд, Джеффри Марк (2018). «Автоматическая дифференциация в машинном обучении: опрос» . Журнал исследований в области маржинального обучения . 18 (153): 1–43.
  3. ^ Ван, Фэй; Декер, Джеймс; Ву, Силун; Эссертель, Грегори; Ромпф, Тиарк (2018). «Обратное распространение ошибки с обратными вызовами: основы эффективного и выразительного дифференцируемого программирования» (PDF) . Ин Бенджио, С.; Уоллах, Х.; Ларошель, Х.; Грауман, К. (ред.). NIPS'18: Материалы 32-й Международной конференции по нейронным системам обработки информации . Карран Ассошиэйтс. стр. 10201–10212.
  4. ^ Иннес, Майк (2018). «О машинном обучении и языках программирования» (PDF) . Конференция SysML 2018 . Архивировано из оригинала (PDF) 17 июля 2019 г. Проверено 4 июля 2019 г.
  5. ^ Перейти обратно: а б с д Иннес, Майк; Эдельман, Алан; Фишер, Кено; Ракаукас, Крис; Саба, Эллиот; Вирал Б. Шах; Теббутт, Уилл (2019). «Дифференцируемая система программирования, соединяющая машинное обучение и научные вычисления». arXiv : 1907.07587 .
  6. ^ «Дифференциальный интеллект» . Октябрь 2016 года . Проверено 19 октября 2022 г.
  7. ^ Перейти обратно: а б с д Иннес, Майкл; Саба, Эллиот; Фишер, Кено; Ганди, Дайрия; Марко Кончетто Рудилоссо; Ниту Мария Джой; Кармали, Теджан; Пал, Авик; Шах, Вирус (2018). «Модное моделирование с помощью флюса». arXiv : 1811.01457 .
  8. ^ Мерриенбур, Барт ван; Брелё, Оливье; Бержерон, Арно; Ламблин, Паскаль (3 декабря 2018 г.). «Автоматическая дифференциация в ML: где мы находимся и куда нам следует двигаться» . НИПС'18 . Том. 31. стр. 8771–81.
  9. ^ Перейти обратно: а б с Брелё, О.; ван Мерриенбоер, Б. (2017). «Автоматическая дифференциация в Myia» (PDF) . Архивировано из оригинала (PDF) 24 июня 2019 г. Проверено 24 июня 2019 г.
  10. ^ Перейти обратно: а б «TensorFlow: статические графики» . Учебники: изучение PyTorch . PyTorch.org . Проверено 4 марта 2019 г.
  11. ^ Иннес, Майкл (2018). «Не развертывайте Adjoint: дифференциация программ SSA-формы». arXiv : 1810.07951 .
  12. ^ Деграв, Йонас; Херманс, Мишель; Дамбре, Джони; Виффелс, Фрэнсис (2016). «Дифференцируемый физический двигатель для глубокого обучения в робототехнике». arXiv : 1611.01652 .
  13. ^ Ли, Ли; Хойер, Стефан; Педерсон, Райан; Солнце, Руокси; Чубук, Экин Д.; Райли, Патрик; Берк, Кирон (2021). «Уравнения Кона-Шэма как регуляризатор: использование предварительных знаний в физике машинного обучения» . Письма о физических отзывах . 126 (3): 036401. arXiv : 2009.08551 . Бибкод : 2021PhRvL.126c6401L . doi : 10.1103/PhysRevLett.126.036401 . ПМИД   33543980 .
  14. ^ Ли, Цзы-Мао; Айттала, Миика; Дюран, Фредо; Лехтинен, Яакко (2018). «Дифференцируемая трассировка лучей Монте-Карло посредством выборки по краям» . Транзакции ACM с графикой . 37 (6): 222:1–11. дои : 10.1145/3272127.3275109 . S2CID   52839714 .
  15. ^ Ли, Цзы-Мао; Гарби, Микаэль; Адамс, Эндрю; Дюран, Фредо; Рэган-Келли, Джонатан (август 2018 г.). «Дифференцируемое программирование для обработки изображений и глубокого обучения в Halide» . Транзакции ACM с графикой . 37 (4): 139:1–13. дои : 10.1145/3197517.3201383 . S2CID   46927588 .
  16. ^ Аль-Курайши, Мохаммед; Зоргер, Питер К. (октябрь 2021 г.). «Дифференцируемая биология: использование глубокого обучения для моделирования молекулярных механизмов на основе биофизики и данных» . Природные методы . 18 (10): 1169–1180. дои : 10.1038/s41592-021-01283-4 . ПМЦ   8793939 . ПМИД   34608321 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0b3003252ad38ce3509bfe78a593ff58__1708408680
URL1:https://arc.ask3.ru/arc/aa/0b/58/0b3003252ad38ce3509bfe78a593ff58.html
Заголовок, (Title) документа по адресу, URL1:
Differentiable programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)