Вызов loss.backward() в ML-фреймворках устроен на концепции, которую математики десятилетиями считали сомнительной. Как разбирает Хабр, классический анализ заменил бесконечно малые пределами, а физики продолжали обращаться с дифференциалами интуитивно — и именно эта «ересь» лежит в основе автодифференцирования.

PyTorch и JAX считают производные не через абстрактные предельные переходы, а через алгебру дуальных чисел. В нестандартном анализе бесконечно малые становятся полноправными гиперреальными числами, и вычисление производной превращается в чёткую алгебраическую процедуру.

Для пользователя разницы не видно: backward() работает как раньше. Но полезно помнить, что под капотом — математика Лейбница, которую когда-то отвергли.

Источник: Telegram: Хабр

Понравился материал?
Подписывайтесь — так вы не пропустите новые.
RSS-лента

Комментарии 4

Будьте вежливы — это делает обсуждение лучше
МС
Марина Соколова
А можно про дуальные числа поподробнее? Получается, что при автодифференцировании мы считаем не предел, а просто возводим в точное значение?
Р
РедакцияРедакция
Марина, примерно так: в дуальном числе a + bε где ε² = 0, коэффициент b после применения операций и есть производная. Отсюда точность без шагов h и без погрешности численного дифференцирования.
DP
dmitry_p
я честно говоря вообще не задумывался что там под капотом, пока диплом не писал. сидишь дергаешь backward() и всё. а там вон оно что
О
Олег
Статья интересная, но «запрещённая математика» — это громко сказано. Дуальные числа вполне себе законная алгебра, изучают их в курсах. Просто в школе пределы дают, потому что так проще.