Diferencovatelné programování

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Diferencovatelné programování (anglicky differentiable programming) je programovací paradigma, ve kterém lze numerický počítačový program automaticky derivovat. To umožňuje optimalizaci parametrů programu, obvykle pomocí metody gradientního sestupu nebo i dalšími metodami strojového učení, založenými na derivacích vyššího řádu. Diferenciovatelné programování se využívá v široké škále oblastí, zejména pro vědecké výpočty a umělou inteligenci. Jeden z prvních návrhů tohoto programovacího paradigmatu byl předložen týmem Advanced Concepts Team Evropské kosmické agentury počátkem roku 2016.

Diferencovatelné programování obvykle funguje na základě grafu popisujícího tok instrukcí a datové struktury počítačového programu. Práce s ním obecně využívá jeden z následujících dvou přístupů:

* Statické přístupy s kompilovaným grafem jako TensorFlow, Theano, and MXNet. Programy jsou rychlejší a lépe škálují na větší úlohy, ale limitují interaktivitu a uživatelskou přívětivost. +more Taktéž mívají potíže s některými prvky programů jako jsou smyčky a rekurze.

* Přetěžování operátorů, přístupy založené na dynamických grafech, jaké využívá PyTorch a AutoGrad. Jejich dynamická a interaktivní povaha je uživatelsky přívětivá, ale výpočetně náročnější kvůli využití interpretu (zejména při sestavování mnoha malých operací), horší škálovatelnosti a sníženému přínosu optimalizace kompilátoru (balíček [url=https://github. +morecom/FluxML/Zygote. jl]Zygota[/url] pro programovací jazyk Julia však umožňuje stálou just-in-time kompilaci).

Půodní přístupy jsou schopny zpracovat jen svůj nativní programovací jazyk, což omezuje jejich interoperabilitu s jinými programy. Novější přístupy umožňují derivovat libovolný program.

Diferenciovatelné programování bylo aplikováno v oblastech, jako je kombinace hlubokého učení s fyzikálními jevy v robotice, řešení strukturálních problémů fyziky pomocí teorie funkcionálu hustoty, sledování paprsku, zpracování obrazu, a pravděpodobnostní programování.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top