Автоматичне диференціювання (англ. automatic differentiation, AD) в математиці та символьних обчисленнях — спосіб обчислити похідну для функції, яка задана алгоритмом.
AD використовує той факт, що довільна функція в комп'ютерній програмі все одно буде обчислюватись за допомогою арифметичних дій (+, -, *, /) та елементарних функцій стандартних бібліотек (exp, log, sin, cos, і т.д.). Застосовуючи ланцюгове правило, похідна довільного порядку може бути обчислена з заданою точністю, за кількість операцій, що пропорційна кількості операцій для обчислення самої функції.
Автоматичне диференціювання не є:
Символьне диференціювання не завжди ефективне, оскільки деякі функції важко представити єдиним виразом, а чисельне диференціювання призводить до внесення похибок округлення та дискретизації. Обидва ці методи не є зручними для обчислення похідних високих порядків, оскільки похибка і складність значно зростає. Також обидва ці методи є повільними при обчисленні часткових похідних для функції багатьох аргументів. Автоматичне диференціювання вирішує всі ці проблеми, але вводить додаткову програмну залежність.
Ланцюгове правило вперед і назад
Основою AD є розклад диференціалів використовуючи ланцюгове правило. Застосувавши його до складеної функції y = g(h(x)) = g(w) отримаємо:
- Рух вперед
Зафіксувавши незалежну змінну, і застосовуючи ланцюгове правило до проміжної функції, отримаємо:
- Рух назад
Застосовуючи ланцюгове правило до початкової функції по нововведеній змінній отримаємо:
Рух вперед і назад є крайніми випадками застосування ланцюгового правила. Задача ж обчислення повного Якобіана з мінімальною кількістю операцій є NP-повною.
Використання дуальних чисел
Застосовуючи рух вперед, помістимо поряд із кожним числом, що використовується для обчислення функії, ще одне, яке міститиме значення похідної. Буквально, замінимо дійсне число на конструкцію , де є дійсним числом, а є уявною одиницею, такою, що . Така конструкція називається дуальним числом.
Тоді для арифметичних операцій отримаємо:
Тобто, уявна частина знову буде містити значення похідної від виразу в дійсній частині.
Запишемо дуальні числа без уявної одиниці у вигляді впорядкованої пари і використаємо ланцюгове правило для функції двох аргументів :
де та є похідними по першому та другому аргументу відповідно.
Підставивши замість арифметичні операції та елементарні функції, отримаємо повний набір операцій над дуальними числами:
Реалізація
Реалізація автоматичного диференціювання можлива через:
- автоматичне перетворення вихідного коду,
- перевантаження функцій та операторів.
Джерела
- www.autodiff.org An "entry site to everything you want to know about automatic differentiation" [ 14 квітня 2021 у Wayback Machine.]
В іншому мовному розділі є повніша стаття Automatic differentiation(англ.). Ви можете допомогти, розширивши поточну статтю за допомогою з англійської.
|
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Avtomatichne diferenciyuvannya angl automatic differentiation AD v matematici ta simvolnih obchislennyah sposib obchisliti pohidnu dlya funkciyi yaka zadana algoritmom AD vikoristovuye toj fakt sho dovilna funkciya v komp yuternij programi vse odno bude obchislyuvatis za dopomogoyu arifmetichnih dij ta elementarnih funkcij standartnih bibliotek exp log sin cos i t d Zastosovuyuchi lancyugove pravilo pohidna dovilnogo poryadku mozhe buti obchislena z zadanoyu tochnistyu za kilkist operacij sho proporcijna kilkosti operacij dlya obchislennya samoyi funkciyi Avtomatichne diferenciyuvannya ne ye ni simvolnim diferenciyuvannyam ni chiselnim diferenciyuvannyam Simvolne diferenciyuvannya ne zavzhdi efektivne oskilki deyaki funkciyi vazhko predstaviti yedinim virazom a chiselne diferenciyuvannya prizvodit do vnesennya pohibok okruglennya ta diskretizaciyi Obidva ci metodi ne ye zruchnimi dlya obchislennya pohidnih visokih poryadkiv oskilki pohibka i skladnist znachno zrostaye Takozh obidva ci metodi ye povilnimi pri obchislenni chastkovih pohidnih dlya funkciyi bagatoh argumentiv Avtomatichne diferenciyuvannya virishuye vsi ci problemi ale vvodit dodatkovu programnu zalezhnist Lancyugove pravilo vpered i nazadOsnovoyu AD ye rozklad diferencialiv vikoristovuyuchi lancyugove pravilo Zastosuvavshi jogo do skladenoyi funkciyi y g h x g w otrimayemo d y d x d y d w d w d x displaystyle frac dy dx frac dy dw frac dw dx Ruh vpered Zafiksuvavshi nezalezhnu zminnu i zastosovuyuchi lancyugove pravilo do promizhnoyi funkciyi otrimayemo y x y w 1 w 1 x y w 1 w 1 w 2 w 2 x y w 1 w 1 w 2 w 2 w 3 w 3 x displaystyle frac partial y partial x frac partial y partial w 1 frac partial w 1 partial x frac partial y partial w 1 left frac partial w 1 partial w 2 frac partial w 2 partial x right frac partial y partial w 1 left frac partial w 1 partial w 2 left frac partial w 2 partial w 3 frac partial w 3 partial x right right cdots Ruh nazad Zastosovuyuchi lancyugove pravilo do pochatkovoyi funkciyi po novovvedenij zminnij otrimayemo y x y w 1 w 1 x y w 2 w 2 w 1 w 1 x y w 3 w 3 w 2 w 2 w 1 w 1 x displaystyle frac partial y partial x frac partial y partial w 1 frac partial w 1 partial x left frac partial y partial w 2 frac partial w 2 partial w 1 right frac partial w 1 partial x left left frac partial y partial w 3 frac partial w 3 partial w 2 right frac partial w 2 partial w 1 right frac partial w 1 partial x cdots Ruh vpered i nazad ye krajnimi vipadkami zastosuvannya lancyugovogo pravila Zadacha zh obchislennya povnogo Yakobiana z minimalnoyu kilkistyu operacij ye NP povnoyu Vikoristannya dualnih chiselZastosovuyuchi ruh vpered pomistimo poryad iz kozhnim chislom sho vikoristovuyetsya dlya obchislennya funkiyi she odne yake mistitime znachennya pohidnoyi Bukvalno zaminimo dijsne chislo a displaystyle a na konstrukciyu a a e displaystyle a a varepsilon de a displaystyle a ye dijsnim chislom a e displaystyle varepsilon ye uyavnoyu odiniceyu takoyu sho e 2 0 displaystyle varepsilon 2 0 Taka konstrukciya nazivayetsya dualnim chislom Todi dlya arifmetichnih operacij otrimayemo a a e b b e a b a b e a b a b e displaystyle a a varepsilon b b varepsilon a b a b varepsilon a b a b varepsilon a a e b b e a b a b b a e a b a b e displaystyle a a varepsilon b b varepsilon ab ab ba varepsilon ab ab varepsilon Tobto uyavna chastina znovu bude mistiti znachennya pohidnoyi vid virazu v dijsnij chastini Zapishemo dualni chisla bez uyavnoyi odinici u viglyadi vporyadkovanoyi pari a a displaystyle langle a a rangle i vikoristayemo lancyugove pravilo dlya funkciyi dvoh argumentiv g displaystyle g g a a b b g a b g a a b a g b a b b displaystyle g langle a a rangle langle b b rangle langle g a b g a a b a g b a b b rangle de g a displaystyle g a ta g b displaystyle g b ye pohidnimi g displaystyle g po pershomu ta drugomu argumentu vidpovidno Pidstavivshi zamist g displaystyle g arifmetichni operaciyi ta elementarni funkciyi otrimayemo povnij nabir operacij nad dualnimi chislami a a b b a b a b a a b b a b a b a a b b a b a b a b a a b b a b a b a b b 2 b 0 sin a a sin a a cos a cos a a cos a a sin a exp a a exp a a exp a log a a log a a a a gt 0 a a k a k k a k 1 a a 0 a a a a sign a a 0 displaystyle begin aligned left langle a a right rangle left langle b b right rangle amp left langle a b a b right rangle left langle a a right rangle left langle b b right rangle amp left langle a b a b right rangle left langle a a right rangle left langle b b right rangle amp left langle ab a b ab right rangle left langle a a right rangle left langle b b right rangle amp left langle frac a b frac a b ab b 2 right rangle quad b neq 0 sin left langle a a right rangle amp left langle sin a a cos a right rangle cos left langle a a right rangle amp left langle cos a a sin a right rangle exp left langle a a right rangle amp left langle exp a a exp a right rangle log left langle a a right rangle amp left langle log a a a right rangle quad a gt 0 left langle a a right rangle k amp left langle a k ka k 1 a right rangle quad a neq 0 left left langle a a right rangle right amp left langle left a right a mbox sign a right rangle quad a neq 0 end aligned RealizaciyaRealizaciya avtomatichnogo diferenciyuvannya mozhliva cherez avtomatichne peretvorennya vihidnogo kodu perevantazhennya funkcij ta operatoriv Dzherelawww autodiff org An entry site to everything you want to know about automatic differentiation 14 kvitnya 2021 u Wayback Machine V inshomu movnomu rozdili ye povnisha stattya Automatic differentiation angl Vi mozhete dopomogti rozshirivshi potochnu stattyu za dopomogoyu perekladu z anglijskoyi Divitis avtoperekladenu versiyu statti z movi anglijska Perekladach povinen rozumiti sho vidpovidalnist za kincevij vmist statti u Vikipediyi nese same avtor redaguvan Onlajn pereklad nadayetsya lishe yak korisnij instrument pereglyadu vmistu zrozumiloyu movoyu Ne vikoristovujte nevichitanij i nevidkorigovanij mashinnij pereklad u stattyah ukrayinskoyi Vikipediyi Mashinnij pereklad Google ye korisnoyu vidpravnoyu tochkoyu dlya perekladu ale perekladacham neobhidno vipravlyati pomilki ta pidtverdzhuvati tochnist perekladu a ne prosto skopiyuvati mashinnij pereklad do ukrayinskoyi Vikipediyi Ne perekladajte tekst yakij vidayetsya nedostovirnim abo neyakisnim Yaksho mozhlivo perevirte tekst za posilannyami podanimi v inshomovnij statti Dokladni rekomendaciyi div Vikipediya Pereklad