Введение:

существует четыре метода автоматической дифференциации:

•Руководство

• Числовой

• Символический

  • автоматический

Ручная дифференциация:

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

Числовые (конечные различия):

Которые используют метод конечных разностей для аппроксимации производных, например предельное определение производной

Вычтем две оценки функции в близких точках

Нам нужно n из n оценок для n-мерного градиента, на этот раз сложность просто не поможет, когда у нас есть модель с миллионами параметров.

Символическая дифференциация

Автоматизированная версия ручной дифференциации

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

Символическая дифференциация:

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

Но по мере дальнейшего увеличения n производная быстро выходит из-под контроля (полиномиальная форма)

  • Выражение набухает

РЕЖИМ автоматической перемотки вперед:

Forward auto diff включает в себя дополнение каждой промежуточной переменной во время оценки функции ее производной.

Реверсивный режим:

Сравнение:

AD и машинное обучение:

• Оптимизация на основе градиента

• Нейронные сети, глубокое обучение, дифференцируемое программирование

•Компьютерное зрение

•Обработка естественного языка

  • Вероятностное моделирование и вывод

Инструменты, разработанные в первую очередь для машинного обучения:

Ссылка:

Байдин, Атилим Гунес и др. «Автоматическая дифференциация в машинном обучении: опрос». Journal of Marchine Learning Research 18 (2018): 1–43.

Сефф, Ари. Что такое автоматическая дифференциация? YouTube, 31 июля 2020 г., www.youtube.com/watch?v=wG_nF1awSSY&t=341s.