Я читал Байдин и др., Автоматическое дифференцирование в машинном обучении: обзор, 2018 ( Arxiv ), который различает символьную дифференциацию и автоматическое дифференцирование (AD) . Затем он говорит:
н.э. не является символической дифференциацией.
Символьная дифференциация - это автоматическое манипулирование [символическими] выражениями .
AD можно рассматривать как выполнение нестандартной интерпретации компьютерной программы
где эта интерпретация включает в себя увеличение стандартных вычислений с вычислением различных производных.
Оценочные трассы составляют основу методики AD.
[A вычислительный график (Бауэр, 1974) визуализирует отношения зависимостей (входных, рабочих, выходных) переменных в оценочных трассах .]
Затем описывается, как вычислить производную с AD (в прямом или обратном режиме). Описание в основном преобразует трассировку оценки / вычислительный график.
Autograd, Chainer и PyTorch предоставляют реверсивный режим общего назначения AD.
В нем также рассматриваются Theano, TensorFlow и другие, но в основном сравниваются define-and-run / статический вычислительный граф (Theano, TF) и define-by -run / динамический вычислительный граф (PyTorch, TF Eager).
(В моем понимании это было бы ортогонально к вопросу о том, как выполняется AD, или, по большей части, это просто изменило бы, как реализован AD, но не так сильно, как концепция AD.)
Theano - это оптимизатор и компилятор вычислительных графов [...], который в настоящее время обрабатывает
производные в высокооптимизированной форме символической дифференциации. Результат можно интерпретировать как
гибрид символического дифференцирования и обратного режима AD, но Theano не использует универсальный
обратное накопление, как мы описываем в этой статье. (Личное общение с авторами.)
Я не уверен, что авторы предполагают, что Theano / TF не предоставляют AD общего назначения в обратном режиме (что было бы неправильно в моем понимании).
Я не совсем понимаю, как Теано не использует обратное накопление общего назначения.
Кроме того, я не понимаю, как символическая дифференциация отличается от нашей эры, учитывая это определение.
Или: Чем символические выражения отличаются от вычислительных графов?
Связано также дифференцируемое программирование
дифференцируемые ориентированные графы, собранные из функциональных блоков
, где я снова не вижу разницы с вычислительным графом.
А обратное распространение (BP) :
Полученный алгоритм по существу эквивалентен преобразованию функции оценки сети, составленной с помощью целевой функции в обратном режиме AD, которая, как мы
увидим, фактически обобщает идею обратного распространения.
Я не вижу, как обратный режим AD является более общим, чем обратное распространение. Это? Как?
Шмидхубер, Глубокое обучение в нейронных сетях: обзор, 2014 (раздел 5.5) ( также ) гласит:
BP также известен как обратный режим автоматического дифференцирования (Griewank, 2012) .