Presná definícia
Čo znamená automatické diferencovanie?
Automatické diferencovanie vypočíta presné derivácie programu rozkladom na elementárne operácie so známymi lokálnymi deriváciami. Na rozdiel od symbolickej diferenciácie nemanipuluje celým algebraickým výrazom a na rozdiel od konečných diferencií nepoužíva malý numerický krok. Hlboké učenie používa najmä spätný režim, efektívny pre jednu skalárnu stratu a mnoho parametrov.
Skúsenosť a kontext
Ako sa pojem používa v praxi
Pri implementácii novej straty sa operácie nechajú v autograd grafe a na malej dávke sa porovnajú s konečnými diferenciami. Tím dáva pozor na in-place zmeny, konverzie na nediferencovateľné typy a odpojenie tenzora, ktoré môžu prerušiť graf. Pre vektorové výstupy sa zvolí vhodný súčin Jacobian-vektor alebo vektor-Jacobian namiesto tvorby celej matice. Pri vyšších deriváciách sa sleduje pamäť.
Overiteľnosť
Odborné zdroje
Praktické odpovede
Často kladené otázky
Je to numerická aproximácia?
Nie, deriváciu skladá z derivácií vykonaných operácií.
Kedy je vhodný spätný režim?
Pri malom počte výstupov a mnohých parametroch.
Čo môže prerušiť gradient?
Odpojenie hodnoty, nediferencovateľná operácia alebo nevhodná in-place zmena.
Musí sa zostaviť celá matica?
Nie, často stačí jej súčin s vektorom.
Prečo používať konečné diferencie?
Ako nezávislý test implementácie na malom príklade.
Prihlásiť / registrovať