Пробабилистички програмски језик

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

Пробабилистички програмски језик (ППЈ) је програмски језик дизајниран за опише пробабилистичке моделе, а затим да изврши закључак у тим моделима. ППЈ је блиско повезани са графичким моделима и Бајесовим мрежама, али је израженији и флексибилнији.[1] Пробабилистичко програмирање представља покушај да се "[уједине] опште намене програма са пробабилистичким моделирањем."[2]

Пробабилистичко резоновање је темељна технологија машинског учења. Користе га компаније као што су Гугл, Мајкрософт и Amazon.com. Пробабилистичко резоновање се користи за предвиђање цена акција, препоручује филмове, дијагностикује рачунаре, открива сајбер упаде и открива слике.[3]

ППЈ се често протеже од основног језика. Избор основног језика зависи од сличности модела на онтологији основног језичка, као и из комерцијалних разлога и личног избора. На пример, Dimple[4] и Chimple[5] се заснивају на Јави, Infer.NET се базира на  .NET оквире,[6] док је PRISM се протеже од Prolog-а.[7] Међутим, неки ППЈ као што су WinBUGS и Stan нуде самостални језик, без очигледног порекла на другом језику.[8][9]

Неколико ППЈа су у активном развоју, укључујући и неке у бета тестирању.

Релација[уреди]

Пробабилистички релациони програмски језик (ПРПЈ) је ППЈ специјално дизајниран да опише и изведе закључак са пробабилистички релационалних модела (ПРМ).

ПРМ је обично развијен са сетом алгоритама за смањење, закључком о томе и откриће заинтересованих дистрибуција, које су утиснуте у одговарајући ПРПЈ.

Пробабилистичко програмирање[уреди]

Пробабилистичко програмирање ствара системе који помажу у доношењу одлука личне неизвесности. Пробабилистичко резоновање комбинује знање о ситуацији са [ законима вероватноће]. До недавно, вероватноћа размишљања система је ограниченог обима, и није се успешно обратила реалним ситуацијама. Пробабилистичко програмирање је нови приступ који чини да се пробабилистичко резоновање система лакше изгради и шире примењује.[10]

Апликације[уреди]

У 2015., 50-линија ППЈ рачунарских визија програма је коришћено за генерисање 3D модела људских лица на основу 2D слике тих лица. Приступ користи инверзну графику као основу свог утицаја.[3] Имплементација ППЈ језика је (и домаћин језика Јулија језика) донета на MIT-у и омогућена "у 50 линија кода који се користе да се узме хиљаду [а њихови експерименти користе своје] вероватноћа програмски језик који се зове слика, која је продужетак Јулиа језика, други језик развијен на MIT-у ".[11][12] Рад на језику слике, приказан је у 2015 рачунар визији и награђена је признањем образац конференцији "Најбоља папирна диплома".[13]

Листа пробибалистичких програмских језика[уреди]

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, Јава
chimple[5] MATLAB, Java
BLOG[18] Java
PSQL[19] SQL
BUGS[8] R
FACTORIE[20] Скала
PMTK[21] MATLAB MATLAB
Alchemy[22] C++
Dyna[23] Пролог
Figaro[24] Scala
Church[25] Scheme Various: JavaScript, Scheme
ProbLog[26] Prolog
ProBT[27] C++, Пајтон
Stan (software)[9] R C++
Hakaru[28] Хаскел Haskell
BAli-Phy (software)[29] Haskell C++
ProbCog[30] Java, Python
Gamble[31] Racket
Tuffy[32] Java
PyMC[33] Python Python
Леа[34] Python Python
Picture[3] Јулија Julia

Види још[уреди]

Референце[уреди]

  1. ^ „Probabilistic programming does in 50 lines of code what used to take thousands”. phys.org. 13. 4. 2015. Приступљено 13. 4. 2015. 
  2. ^ „Probabilistic Programming”. probabilistic-programming.org. 
  3. 3,0 3,1 3,2 „Short probabilistic programming machine-learning code replaces complex programs for computer-vision tasks”. KurzweilAI. 13. 4. 2015. Приступљено 2015.  Проверите вредност парамет(а)ра за датум: |access-date= (помоћ)
  4. 4,0 4,1 „Dimple Home Page”. probprog.org. 
  5. 5,0 5,1 „Chimple Home Page”. probprog.org. 
  6. 6,0 6,1 „Infer.NET”. microsoft.com. Microsoft. 
  7. 7,0 7,1 „PRISM Home Page”. Архивирано из оригинала на датум 01. 03. 2015. Приступљено 18. 01. 2016. 
  8. 8,0 8,1 „The BUGS Project - MRC Biostatistics Unit”. cam.ac.uk. Архивирано из оригинала на датум 14. 03. 2014. Приступљено 18. 01. 2016. 
  9. 9,0 9,1 „Stan”. mc-stan.org. 
  10. ^ Pfeffer, Avrom , Practical Probabilistic Programming, Manning Publications. 2014. ISBN 978-1 6172-9233-0. стр. 28.
  11. ^ Hardesty, Larry (13. 4. 2015). „Graphics in reverse”. 
  12. ^ http://www.theregister.co.uk/2015/04/14/mit_shows_off_machinelearning_script_to_make_creepy_heads/
  13. ^ CVPR 2015 Webpage - Awards
  14. ^ „Venture -- a general-purpose probabilistic programming platform”. mit.edu. 
  15. ^ „Probabilistic C”. ox.ac.uk. 
  16. ^ „The Anglican Probabilistic Programming System”. ox.ac.uk. 
  17. ^ „IBAL Home Page”. Архивирано из оригинала на датум 26. 12. 2010. Приступљено 18. 01. 2016. 
  18. ^ „Bayesian Logic (BLOG)”. mit.edu. Архивирано из оригинала на датум 16. 06. 2011. Приступљено 18. 01. 2016. 
  19. ^ „PSQL: A query language for probabilistic relational data”. doi:10.1016/S0169-023X(98)00015-9. 
  20. ^ „Factorie - Probabilistic programming with imperatively-defined factor graphs - Google Project Hosting”. google.com. 
  21. ^ „PMTK3 - probabilistic modeling toolkit for Matlab/Octave, version 3 - Google Project Hosting”. google.com. 
  22. ^ „Alchemy - Open Source AI”. washington.edu. 
  23. ^ „Dyna Home Page”. Архивирано из оригинала на датум 17. 01. 2016. Приступљено 18. 01. 2016. 
  24. ^ „Charles River Analytics - Probabilistic Modeling Services”. cra.com. 
  25. ^ „Church”. mit.edu. Архивирано из оригинала на датум 14. 01. 2016. Приступљено 18. 01. 2016. 
  26. ^ ProbLog Home Page
  27. ^ ProbaYes. „ProbaYes - Ensemble, nous valorisations vos données”. probayes.com. 
  28. ^ „Hakaru Home Page”. indiana.edu. 
  29. ^ „BAli-Phy Home Page”. bali-phy.org. 
  30. ^ „ProbCog”. GitHub. 
  31. ^ Gamble Home Page|
  32. ^ „Tuffy: A Scalable Markov Logic Inference Engine”. stanford.edu. 
  33. ^ devs, PyMC. „PyMC3”. pymc-devs.github.io. 
  34. ^ „Lea Home Page”. bitbucket.org. 

Спољашње везе[уреди]