Топ питань
Часова шкала
Чат
Перспективи

Автоматичне диференціювання

З Вікіпедії, вільної енциклопедії

Remove ads

Автоматичне диференціювання (англ. automatic differentiation, AD) в математиці та символьних обчисленнях — спосіб обчислити похідну для функції, яка задана алгоритмом.

AD використовує той факт, що довільна функція в комп'ютерній програмі все одно буде обчислюватись за допомогою арифметичних дій (+, -, *, /) та елементарних функцій стандартних бібліотек (exp, log, sin, cos, і т.д.). Застосовуючи ланцюгове правило, похідна довільного порядку може бути обчислена з заданою точністю, за кількість операцій, що пропорційна кількості операцій для обчислення самої функції.

Автоматичне диференціювання не є:

Символьне диференціювання не завжди ефективне, оскільки деякі функції важко представити єдиним виразом, а чисельне диференціювання призводить до внесення похибок округлення та дискретизації. Обидва ці методи не є зручними для обчислення похідних високих порядків, оскільки похибка і складність значно зростає. Також обидва ці методи є повільними при обчисленні часткових похідних для функції багатьох аргументів. Автоматичне диференціювання вирішує всі ці проблеми, але вводить додаткову програмну залежність.

Remove ads

Ланцюгове правило вперед і назад

Узагальнити
Перспектива

Основою AD є розклад диференціалів використовуючи ланцюгове правило. Застосувавши його до складеної функції y = g(h(x)) = g(w) отримаємо:

Рух вперед

Зафіксувавши незалежну змінну, і застосовуючи ланцюгове правило до проміжної функції, отримаємо:

Рух назад

Застосовуючи ланцюгове правило до початкової функції по нововведеній змінній отримаємо:

Рух вперед і назад є крайніми випадками застосування ланцюгового правила. Задача ж обчислення повного Якобіана з мінімальною кількістю операцій є NP-повною.

Remove ads

Використання дуальних чисел

Узагальнити
Перспектива

Застосовуючи рух вперед, помістимо поряд із кожним числом, що використовується для обчислення функції, ще одне, яке міститиме значення похідної. Буквально, замінимо дійсне число на конструкцію , де є дійсним числом, а є уявною одиницею, такою, що . Така конструкція називається дуальним числом.

Тоді для арифметичних операцій отримаємо:

Тобто, уявна частина знову буде містити значення похідної від виразу в дійсній частині.

Запишемо дуальні числа без уявної одиниці у вигляді впорядкованої пари і використаємо ланцюгове правило для функції двох аргументів :

де та є похідними по першому та другому аргументу відповідно.

Підставивши замість арифметичні операції та елементарні функції, отримаємо повний набір операцій над дуальними числами:

Remove ads

Реалізація

Реалізація автоматичного диференціювання можлива через:

Джерела

Remove ads
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads