Probabilistički programski jezik
Probabilistički programski jezik (PPJ) je programski jezik dizajniran za opiše probabilističke modele, a zatim da izvrši zaključak u tim modelima. PPJ je blisko povezani sa grafičkim modelima i Bajesovim mrežama, ali je izraženiji i fleksibilniji.[1] Probabilističko programiranje predstavlja pokušaj da se "[ujedine] opšte namene programa sa probabilističkim modeliranjem."[2]
Probabilističko rezonovanje je temeljna tehnologija mašinskog učenja. Koriste ga kompanije kao što su Gugl, Majkrosoft i Amazon.com. Probabilističko rezonovanje se koristi za predviđanje cena akcija, preporučuje filmove, dijagnostikuje računare, otkriva sajber upade i otkriva slike.[3]
PPJ se često proteže od osnovnog jezika. Izbor osnovnog jezika zavisi od sličnosti modela na ontologiji osnovnog jezička, kao i iz komercijalnih razloga i ličnog izbora. Na primer, Dimple[4] i Chimple[5] se zasnivaju na Javi, Infer.NET se bazira na .NET okvire,[6] dok je PRISM se proteže od Prolog-a.[7] Međutim, neki PPJ kao što su WinBUGS i Stan nude samostalni jezik, bez očiglednog porekla na drugom jeziku.[8][9]
Nekoliko PPJa su u aktivnom razvoju, uključujući i neke u beta testiranju.
Relacija[uredi | uredi izvor]
Probabilistički relacioni programski jezik (PRPJ) je PPJ specijalno dizajniran da opiše i izvede zaključak sa probabilistički relacionalnih modela (PRM).
PRM je obično razvijen sa setom algoritama za smanjenje, zaključkom o tome i otkriće zainteresovanih distribucija, koje su utisnute u odgovarajući PRPJ.
Probabilističko programiranje[uredi | uredi izvor]
Probabilističko programiranje stvara sisteme koji pomažu u donošenju odluka lične neizvesnosti. Probabilističko rezonovanje kombinuje znanje o situaciji sa [ zakonima verovatnoće]. Donedavno, verovatnoća razmišljanja sistema je ograničenog obima, i nije se uspešno obratila realnim situacijama. Probabilističko programiranje je novi pristup koji čini da se probabilističko rezonovanje sistema lakše izgradi i šire primenjuje.[10]
Aplikacije[uredi | uredi izvor]
U 2015, 50-linija PPJ računarskih vizija programa je korišćeno za generisanje 3D modela ljudskih lica na osnovu 2D slike tih lica. Pristup koristi inverznu grafiku kao osnovu svog uticaja.[3] Implementacija PPJ jezika je (i domaćin jezika Julija jezika) doneta na MIT-u i omogućena "u 50 linija koda koji se koriste da se uzme hiljadu [a njihovi eksperimenti koriste svoje] verovatnoća programski jezik koji se zove slika, koja je produžetak Julia jezika, drugi jezik razvijen na MIT-u ".[11][12] Rad na jeziku slike, prikazan je u 2015 računar viziji i nagrađena je priznanjem obrazac konferenciji "Najbolja papirna diploma".[13]
Lista probibalističkih programskih jezika[uredi | uredi izvor]
Name | Extends from | Host language |
---|---|---|
Venture[14] | Scheme | C++ |
Probabilistic-C[15] | C | C |
Anglican[16] | Scheme | Clojure |
IBAL[17] | OCaml | |
PRISM[7] | B-Prolog | |
Infer.NET[6] | .NET Framework | .NET Framework |
dimple[4] | MATLAB, Java | |
chimple[5] | MATLAB, Java | |
BLOG[18] | Java | |
PSQL[19] | SQL | |
BUGS[8] | R | |
FACTORIE[20] | Skala | |
PMTK[21] | MATLAB | MATLAB |
Alchemy[22] | C++ | |
Dyna[23] | Prolog | |
Figaro[24] | Scala | |
Church[25] | Scheme | Various: JavaScript, Scheme |
ProbLog[26] | Prolog | |
ProBT[27] | C++, Pajton | |
Stan (software)[9] | R | C++ |
Hakaru[28] | Haskel | Haskell |
BAli-Phy (software)[29] | Haskell | C++ |
ProbCog[30] | Java, Python | |
Gamble[31] | Racket | |
Tuffy[32] | Java | |
PyMC[33] | Python | Python |
Lea[34] | Python | Python |
Picture[3] | Julija | Julia |
Vidi još[uredi | uredi izvor]
Reference[uredi | uredi izvor]
- ^ „Probabilistic programming does in 50 lines of code what used to take thousands”. phys.org. 13. 4. 2015. Pristupljeno 13. 4. 2015.
- ^ „Probabilistic Programming”. probabilistic-programming.org. Arhivirano iz originala 10. 01. 2016. g. Pristupljeno 18. 01. 2016.
- ^ a b v „Short probabilistic programming machine-learning code replaces complex programs for computer-vision tasks”. KurzweilAI. 13. 4. 2015. Pristupljeno 2015. Proverite vrednost paramet(a)ra za datum:
|access-date=
(pomoć) - ^ a b „Dimple Home Page”. probprog.org. Arhivirano iz originala 06. 01. 2016. g. Pristupljeno 18. 01. 2016.
- ^ a b „Chimple Home Page”. probprog.org. Arhivirano iz originala 14. 05. 2014. g. Pristupljeno 18. 01. 2016.
- ^ a b „Infer.NET”. microsoft.com. Microsoft. Arhivirano iz originala 06. 12. 2016. g. Pristupljeno 18. 01. 2016.
- ^ a b „PRISM Home Page”. Arhivirano iz originala 01. 03. 2015. g. Pristupljeno 18. 01. 2016.
- ^ a b „The BUGS Project - MRC Biostatistics Unit”. cam.ac.uk. Arhivirano iz originala 14. 03. 2014. g. Pristupljeno 18. 01. 2016.
- ^ a b „Stan”. mc-stan.org. Arhivirano iz originala 03. 09. 2012. g. Pristupljeno 18. 01. 2016.
- ^ Pfeffer, Avrom (2014). Practical Probabilistic Programming. Manning Publications. str. 28. ISBN 978-1 6172-9233-0.
- ^ Hardesty, Larry (13. 4. 2015). „Graphics in reverse”.
- ^ „MIT shows off machine-learning script to make CREEPY HEADS”. The Register.
- ^ CVPR 2015 Webpage - Awards
- ^ „Venture -- a general-purpose probabilistic programming platform”. mit.edu. Arhivirano iz originala 25. 01. 2016. g. Pristupljeno 18. 01. 2016.
- ^ „Probabilistic C”. ox.ac.uk. Arhivirano iz originala 04. 01. 2016. g. Pristupljeno 18. 01. 2016.
- ^ „The Anglican Probabilistic Programming System”. ox.ac.uk.
- ^ „IBAL Home Page”. Arhivirano iz originala 26. 12. 2010. g. Pristupljeno 18. 01. 2016.
- ^ „Bayesian Logic (BLOG)”. mit.edu. Arhivirano iz originala 16. 06. 2011. g. Pristupljeno 18. 01. 2016.
- ^ Dey, Debabrata; Sarkar, Sumit (1998). „PSQL: A query language for probabilistic relational data”. Data & Knowledge Engineering. 28: 107—120. doi:10.1016/S0169-023X(98)00015-9.
- ^ „Factorie - Probabilistic programming with imperatively-defined factor graphs - Google Project Hosting”. google.com.
- ^ „PMTK3 - probabilistic modeling toolkit for Matlab/Octave, version 3 - Google Project Hosting”. google.com.
- ^ „Alchemy - Open Source AI”. washington.edu.
- ^ „Dyna Home Page”. Arhivirano iz originala 17. 01. 2016. g. Pristupljeno 18. 01. 2016.
- ^ „Charles River Analytics - Probabilistic Modeling Services”. cra.com. 9. 2. 2017.
- ^ „Church”. mit.edu. Arhivirano iz originala 14. 01. 2016. g. Pristupljeno 18. 01. 2016.
- ^ ProbLog Home Page
- ^ ProbaYes. „ProbaYes - Ensemble, nous valorisations vos données”. probayes.com. Arhivirano iz originala 05. 03. 2016. g. Pristupljeno 18. 01. 2016.
- ^ „Hakaru Home Page”. indiana.edu. Arhivirano iz originala 01. 02. 2016. g. Pristupljeno 18. 01. 2016.
- ^ „BAli-Phy Home Page”. bali-phy.org.
- ^ „ProbCog”. GitHub.
- ^ Gamble Home Page|
- ^ „Tuffy: A Scalable Markov Logic Inference Engine”. stanford.edu.
- ^ devs, PyMC. „PyMC3”. pymc-devs.github.io. Arhivirano iz originala 20. 01. 2016. g. Pristupljeno 18. 01. 2016.
- ^ „Lea Home Page”. bitbucket.org.