Slovník výrazov AI/Neurónové siete - stavebné prvky

Neurónové siete - stavebné prvky

automatické diferencovanie

Anglický výraz automatic differentiation

pokročiléheslo č. 2745 otázok a odpovedí2 odborné zdroje

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

  1. TensorFlow · Automatic differentiationtensorflow.org
  2. PyTorch · Automatic differentiationdocs.pytorch.org

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.