Введение:
существует четыре метода автоматической дифференциации:
•Руководство
• Числовой
• Символический
- автоматический
Ручная дифференциация:
Это посмотреть на функцию и вручную дифференцировать ее, используя базовые производные правила, закодировать результат и вызвать его.
Числовые (конечные различия):
Которые используют метод конечных разностей для аппроксимации производных, например предельное определение производной
Вычтем две оценки функции в близких точках
Нам нужно 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.