กลับไปหน้าบทความ

อ่าน 6 นาที

การเขียนโปรแกรมเชิงความน่าจะเป็น

การเขียนโปรแกรมเชิงความน่าจะเป็น ( PP ) เป็นกระบวนทัศน์การเขียนโปรแกรมที่อิงตามข้อกำหนดเชิงประกาศของแบบจำลองความน่าจะเป็นซึ่งการอนุมานจะดำเนินการโดยอัตโนมัติการเขียนโปรแกรมเชิงความ...

การเขียนโปรแกรมเชิงความน่าจะเป็น

การเขียนโปรแกรมเชิงความน่าจะเป็น ( PP ) เป็นกระบวนทัศน์การเขียนโปรแกรมที่อิงตามข้อกำหนดเชิงประกาศของแบบจำลองความน่าจะเป็นซึ่งการอนุมานจะดำเนินการโดยอัตโนมัติ[ 1 ]การเขียนโปรแกรมเชิงความน่าจะเป็นพยายามที่จะรวมการสร้างแบบจำลองความน่าจะเป็นและการเขียนโปรแกรมทั่วไปแบบดั้งเดิมเข้าด้วยกัน เพื่อให้การสร้างแบบจำลองความน่าจะเป็นง่ายขึ้นและใช้งานได้กว้างขวางมากขึ้น[ 2 ] [ 3 ]สามารถใช้เพื่อสร้างระบบที่ช่วยในการตัดสินใจเมื่อเผชิญกับความไม่แน่นอน ภาษาการเขียนโปรแกรมที่ปฏิบัติตามกระบวนทัศน์การเขียนโปรแกรมเชิงความน่าจะเป็นเรียกว่า "ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็น" (PPLs)

แอปพลิเคชัน

การให้เหตุผลเชิงความน่าจะเป็นถูกนำมาใช้สำหรับงานที่หลากหลาย เช่น การทำนายราคาหุ้น การแนะนำภาพยนตร์ การวินิจฉัยคอมพิวเตอร์ การตรวจจับการบุกรุกทางไซเบอร์ และการตรวจจับภาพ[ 4 ]อย่างไรก็ตาม จนกระทั่งเมื่อไม่นานมานี้ (ส่วนหนึ่งเนื่องมาจากกำลังการประมวลผลที่จำกัด) การเขียนโปรแกรมเชิงความน่าจะเป็นมีขอบเขตจำกัด และอัลกอริธึมการอนุมานส่วนใหญ่ต้องเขียนด้วยตนเองสำหรับแต่ละงาน

อย่างไรก็ตาม ในปี 2558 โปรแกรม คอมพิวเตอร์วิชั่นเชิงความน่าจะเป็น 50 บรรทัดถูกนำมาใช้เพื่อสร้างแบบจำลอง 3 มิติของใบหน้ามนุษย์โดยอิงจากภาพ 2 มิติของใบหน้าเหล่านั้น โปรแกรมนี้ใช้กราฟิกผกผันเป็นพื้นฐานของวิธีการอนุมาน และสร้างขึ้นโดยใช้แพ็กเกจ Picture ในJulia [ 4 ] ซึ่งทำให้สามารถทำได้ "ด้วยโค้ด เพียง 50 บรรทัดในสิ่งที่เคยต้องใช้หลายพันบรรทัด" [ 5 ] [ 6 ]

ไลบรารี การเขียนโปรแกรมเชิงความน่าจะเป็น Gen (ซึ่งเขียนด้วยภาษา Julia) ได้ถูกนำไปใช้กับงานด้านการมองเห็นและหุ่นยนต์[ 7 ]

เมื่อไม่นานมานี้ ระบบการเขียนโปรแกรมเชิงความน่าจะเป็นTuring.jlได้ถูกนำไปใช้ในแอปพลิเคชันทางเภสัชกรรม[ 8 ]และเศรษฐศาสตร์ ต่างๆ [ 9 ]

การเขียนโปรแกรมเชิงความน่าจะเป็นใน Julia ยังได้รับการรวมเข้ากับการเขียนโปรแกรมเชิงอนุพันธ์โดยการรวมแพ็คเกจ Julia Zygote.jl เข้ากับ Turing.jl [ 10 ]

ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นยังใช้กันทั่วไปในวิทยาศาสตร์ความรู้ความเข้าใจแบบเบย์เซียนเพื่อพัฒนาและประเมินแบบจำลองความรู้ความเข้าใจ[ 11 ]

ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็น

PPL มักจะขยายมาจากภาษาพื้นฐาน ตัวอย่างเช่น Turing.jl [ 12 ]นั้นมีพื้นฐานมาจากJulia , Infer.NETมีพื้นฐานมาจาก. NET Framework [ 13 ]ในขณะที่ PRISM ขยายมาจากProlog [ 14 ] อย่างไรก็ตาม PPL บาง ภาษาเช่นWinBUGSนำเสนอภาษาที่ครบถ้วนในตัวเองซึ่งเชื่อมโยงอย่างใกล้ชิดกับการแสดงทางคณิตศาสตร์ของแบบจำลองทางสถิติ โดยไม่มีต้นกำเนิดที่ชัดเจนจากภาษาโปรแกรมอื่น[ 15 ] [ 16 ]

ภาษา WinBUGS ถูกพัฒนาขึ้นเพื่อใช้ในการคำนวณแบบเบย์เซียนโดยใช้การสุ่มตัวอย่างแบบกิบส์ (Gibbs Sampling) และอัลกอริธึมที่เกี่ยวข้อง แม้ว่าจะเขียนด้วยภาษาโปรแกรมที่ไม่ค่อยเป็นที่รู้จัก (Component Pascal) แต่ภาษานี้ก็ช่วยให้สามารถอนุมานแบบเบย์เซียนสำหรับแบบจำลองทางสถิติที่หลากหลายโดยใช้วิธีการคำนวณที่ยืดหยุ่น ภาษา BUGS เดียวกันนี้สามารถใช้เพื่อระบุแบบจำลองแบบเบย์เซียนสำหรับการอนุมานผ่านตัวเลือกการคำนวณที่แตกต่างกัน ("ตัวสุ่มตัวอย่าง") และข้อกำหนดหรือค่าเริ่มต้น โดยใช้โปรแกรมแบบสแตนด์อโลน WinBUGS (หรือแพ็กเกจ R ที่เกี่ยวข้อง เช่น rbugs และ r2winbugs) และ JAGS (Just Another Gibbs Sampler ซึ่งเป็นโปรแกรมแบบสแตนด์อโลนอีกโปรแกรมหนึ่งที่มีแพ็กเกจ R ที่เกี่ยวข้อง ได้แก่ rjags, R2jags และ runjags) เมื่อไม่นานมานี้ ภาษาอื่นๆ ที่สนับสนุนการระบุและการอนุมานแบบจำลองแบบเบย์เซียนได้อนุญาตให้มีตัวเลือกที่แตกต่างกันหรือมีประสิทธิภาพมากขึ้นสำหรับการคำนวณแบบเบย์เซียนพื้นฐาน และสามารถเข้าถึงได้จากสภาพแวดล้อมการวิเคราะห์ข้อมูลและการเขียนโปรแกรม R เช่นStan , NIMBLE และ NUTS อิทธิพลของภาษา BUGS ปรากฏให้เห็นอย่างชัดเจนในภาษาโปรแกรมรุ่นหลังๆ เหล่านี้ ซึ่งแม้แต่ใช้ไวยากรณ์เดียวกันในบางส่วนของการกำหนดรายละเอียดของแบบจำลอง

PPL หลายตัวกำลังอยู่ในระหว่างการพัฒนาอย่างต่อเนื่อง รวมถึงบางตัวอยู่ในระหว่างการทดสอบเบต้า เครื่องมือยอดนิยมสองตัวคือ Stan และPyMC [ 17 ] [ 18 ]

ความสัมพันธ์

ภาษาการเขียนโปรแกรมเชิงสัมพันธ์แบบความน่าจะเป็น (PRPL) คือภาษาการเขียนโปรแกรมเชิงโปรแกรม (PPL) ที่ออกแบบมาเป็นพิเศษเพื่ออธิบายและอนุมานด้วยแบบจำลองเชิงสัมพันธ์แบบความน่าจะเป็น (PRM)

โดยทั่วไป PRM จะถูกพัฒนาขึ้นโดยใช้ชุดอัลกอริธึมสำหรับการลด การอนุมาน และการค้นพบการแจกแจงที่เกี่ยวข้อง ซึ่งฝังอยู่ใน PRPL ที่เกี่ยวข้อง

การเขียนโปรแกรมเชิงตรรกะความน่าจะเป็น

การเขียนโปรแกรมเชิงตรรกะแบบความน่าจะเป็น (Probabilistic logic programming) เป็นรูปแบบการเขียนโปรแกรมที่ต่อยอดจากการเขียนโปรแกรมเชิงตรรกะแบบดั้งเดิมโดยใช้ความน่าจะเป็น

แนวทางส่วนใหญ่ในการเขียนโปรแกรมตรรกะเชิงความน่าจะเป็นนั้นขึ้นอยู่กับความหมายของการกระจายซึ่งแบ่งโปรแกรมออกเป็นชุดของข้อเท็จจริงเชิงความน่าจะเป็นและโปรแกรมตรรกะ โดยกำหนดการกระจายความน่าจะเป็นบนการตีความของจักรวาล Herbrandของโปรแกรม[ 19 ]

รายชื่อภาษาการเขียนโปรแกรมเชิงความน่าจะเป็น

รายการนี้สรุปประเภทของใบอนุญาตนักบินส่วนตัว (PPL) ที่มีอยู่ในปัจจุบัน และชี้แจงที่มาของใบอนุญาตเหล่านั้น

ชื่อขยายจากภาษาเจ้าบ้าน
อนาลิติกา[ 20 ]ซี++
เบย์สลูป[ 21 ] [ 22 ]ไพธอนไพธอน
เครื่องจักรถั่ว[ 23 ]ไพทอร์ชไพธอน
การลงทุน[ 24 ]โครงการซี++
BayesDB [ 25 ]SQLite , Python
ปริซึม[ 14 ]บี-โปรล็อก
Infer.NET [ 13 ].NET Framework.NET Framework
diff-SAT [ 26 ]การเขียนโปรแกรมชุดคำตอบ , SAT (DIMACS CNF)
PSQL [ 27 ]คำสั่ง SQL
บั๊ก[ 15 ]คอมโพเนนต์ปาสคาล
ไดน่า[ 28 ]บทนำ
ฟิกาโร[ 29 ]สกาล่าสกาล่า
ProbLog [ 30 ]บทนำไพธอน
โปรบีที[ 31 ]ซี++, ไพธอน
สแตน[ 16 ]บั๊กซี++
ฮาคารุ[ 32 ]ฮัสเคลล์ฮัสเคลล์
BAli-Phy (ซอฟต์แวร์) [ 33 ]ฮัสเคลล์ซี++
ProbCog [ 34 ]จาวา, ไพธอน
PyMC [ 35 ]ไพธอนไพธอน
เรเนียร์[ 36 ] [ 37 ]สกาล่า สกาล่า
เกรตา[ 38 ]เทนเซอร์โฟลว์ อาร์
ทับทิม[ 39 ]ไพธอน ไพธอน
ลีอา[ 40 ]ไพธอนไพธอน
WebPPL [ 41 ]โค้ด JavaScriptโค้ด JavaScript
รูปภาพ[ 4 ]จูเลีย จูเลีย
Turing.jl [ 12 ]จูเลียจูเลีย
เจน[ 42 ]จูเลียจูเลีย
เอ็ดเวิร์ด[ 43 ]เทนเซอร์โฟลว์ไพธอน
ความน่าจะเป็นของ TensorFlow [ 44 ]เทนเซอร์โฟลว์ ไพธอน
เอ็ดเวิร์ด2 [ 45 ]ความน่าจะเป็นของ TensorFlow ไพธอน
ไพโร[ 46 ]ไพทอร์ชไพธอน
นัมไพโร[ 47 ]แจ็กซ์ไพธอน
ต้นเบิร์ช[ 48 ]ซี++
PSI [ 49 ]ดี
บลัง[ 50 ]
มัลติเวิร์ส[ 51 ]ไพธอน ไพธอน
แองกลิกัน[ 52 ]โคลจูร์โคลจูร์
แซนด์วูด[ 53 ]ชวาชวา

ความยากลำบาก

  • การให้เหตุผลเกี่ยวกับตัวแปรในฐานะการแจกแจงความน่าจะเป็นทำให้เกิดความยากลำบากสำหรับโปรแกรมเมอร์มือใหม่ แต่ความยากลำบากเหล่านี้สามารถแก้ไขได้โดยการใช้การแสดงภาพเครือข่ายเบย์เซียนและกราฟของการแจกแจงตัวแปรที่ฝังอยู่ในตัวแก้ไขซอร์สโค้ด[ 54 ]
  • เนื่องจาก PPL จำนวนมากอาศัยการระบุค่าความน่าจะเป็นล่วงหน้าของตัวแปรที่สนใจ การระบุค่าความน่าจะเป็นล่วงหน้าที่ทราบข้อมูลจึงมักเป็นเรื่องยากสำหรับมือใหม่ ในบางกรณี ไลบรารีเช่น PyMC มีวิธีการอัตโนมัติในการค้นหาพารามิเตอร์ของค่าความน่าจะเป็นล่วงหน้าที่ทราบข้อมูล[ 55 ]

ดูเพิ่มเติม

หมายเหตุ

  1. ^ "การเขียนโปรแกรมเชิงความน่าจะเป็นทำสิ่งที่เคยต้องใช้หลายพันบรรทัดด้วยโค้ดเพียง 50 บรรทัด" . phys.org . 13 เมษายน 2558 . สืบค้นเมื่อ13 เมษายน 2558 .
  2. ^ "การเขียนโปรแกรมเชิงความน่าจะเป็น" . probabilistic-programming.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 10 มกราคม 2016 . เรียกดูเมื่อวันที่ 24 ธันวาคม 2013 .
  3. ^ Pfeffer, Avrom (2014), Practical Probabilistic Programming , Manning Publications. หน้า 28. ISBN 978-1 6172-9233-0
  4. ^ a b c "โค้ดการเรียนรู้ของเครื่องแบบการเขียนโปรแกรมเชิงความน่าจะเป็นแบบสั้น แทนที่โปรแกรมที่ซับซ้อนสำหรับงานด้านคอมพิวเตอร์วิชั่น" . KurzweilAI . 13 เมษายน 2558 . สืบค้นเมื่อ27 พฤศจิกายน 2560 .
  5. ^ฮาร์เดสตี้, แลร์รี่ (13 เมษายน 2558). " กราฟิกแบบย้อนกลับ"
  6. ^ "MIT เผยโฉมสคริปต์การเรียนรู้ของเครื่องจักรเพื่อสร้างหัวสุดสยอง" . The Register .
  7. ^ "ระบบการเขียนโปรแกรม Gen ของ MIT ช่วยลดความยากง่ายในการเรียนรู้สำหรับโครงการ AI" VentureBeat 27มิถุนายน 2019 สืบค้นเมื่อ27 มิถุนายน 2019
  8. ^ Semenova, Elizaveta; Williams, Dominic P.; Afzal, Avid M.; Lazic, Stanley E. (1 พฤศจิกายน 2020). "โครงข่ายประสาทเทียมแบบเบย์เซียนสำหรับการทำนายความเป็นพิษ" . Computational Toxicology . 16 100133. doi : 10.1016/j.comtox.2020.100133 . ISSN 2468-1113 . S2CID 225362130 .  
  9. ^ Williams, Dominic P.; Lazic, Stanley E.; Foster, Alison J.; Semenova, Elizaveta; Morgan, Paul (2020), "การทำนายการบาดเจ็บของตับที่เกิดจากยาด้วยการเรียนรู้ของเครื่องจักรแบบเบย์เซียน" , Chemical Research in Toxicology , 33 (1): 239– 248, doi : 10.1021/acs.chemrestox.9b00264 , PMID 31535850 , S2CID 202689667  
  10. ^ Innes, Mike; Edelman, Alan; Fischer, Keno; Rackauckas, Chris; Saba, Elliot; Viral B Shah; Tebbutt, Will (2019). "∂P: ระบบการเขียนโปรแกรมเชิงอนุพันธ์เพื่อเชื่อมโยงการเรียนรู้ของเครื่องและการคำนวณทางวิทยาศาสตร์" arXiv : 1907.07587 [ cs.PL ]
  11. ^ Goodman, Noah D; Tenenbaum, Joshua B; Buchsbaum, Daphna; Hartshorne, Joshua; Hawkins, Robert; O'Donnell, Timothy J; Tessler, Michael Henry. "แบบจำลองความน่าจะเป็นของการรับรู้" . แบบจำลองความน่าจะเป็นของการรับรู้ - ฉบับที่ 2 . สืบค้นเมื่อ27 พฤษภาคม 2023 .
  12. ^ a b "ภาษาทัวริงสำหรับการเขียนโปรแกรมเชิงความน่าจะเป็น" . GitHub . 28 ธันวาคม 2021.
  13. ^ a b "Infer.NET" . microsoft.com . Microsoft.
  14. ^ a b "PRISM: PRogramming In Statistical Modeling" . rjida.meijo-u.ac.jp . เก็บถาวรจากต้นฉบับเมื่อวันที่ 1 มีนาคม 2558 . สืบค้นเมื่อ8 กรกฎาคม 2558 .
  15. ^ a b "โครงการ BUGS - หน่วยชีวสถิติ MRC" . cam.ac.uk . เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มีนาคม 2014 . เรียกดูเมื่อวันที่ 12 มกราคม 2011 .
  16. ^ a b "Stan" . mc-stan.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 3 กันยายน 2012
  17. Abril-Pla O, Andreani V, Carroll C, Dong L, Fonnesbeck CJ, Kochurov M, Kumar R, Lao J, Luhmann CC, Martin OA, Osthege M, Vieira R, Wiecki T, Zinkov R. (2023) PyMC: กรอบการเขียนโปรแกรมความน่าจะเป็นที่ทันสมัยและครอบคลุมใน Python เพียร์เจคอมพิวเตอร์ วิทยาศาสตร์ 9:e1516ดอย : 10.7717/peerj-cs.1516
  18. ^ "อัลกอริทึมเบื้องหลังการเขียนโปรแกรมเชิงความน่าจะเป็น"สืบค้นเมื่อ10 มีนาคม 2560
  19. ^ De Raedt, Luc; Kimmig, Angelika (1 กรกฎาคม 2015). "แนวคิดการเขียนโปรแกรมเชิงความน่าจะเป็น (ตรรกะ)" . การเรียนรู้ของเครื่อง . 100 (1): 5– 47. doi : 10.1007/s10994-015-5494-z . ISSN 1573-0565 . 
  20. ^ "Analytica -- ภาษาสร้างแบบจำลองเชิงความน่าจะเป็น" . lumina.com .
  21. ^ "bayesloop - กรอบงานการเขียนโปรแกรมเชิงความน่าจะเป็น" bayesloop.com
  22. ^ "GitHub -- bayesloop" . GitHub . 7 ธันวาคม 2021.
  23. ^ "Bean Machine - ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นสากลที่ช่วยให้การวิเคราะห์แบบเบย์เซียนรวดเร็วและแม่นยำ" beanmachine.org
  24. ^ "Venture -- แพลตฟอร์มการเขียนโปรแกรมเชิงความน่าจะเป็นอเนกประสงค์" . mit.edu . เก็บถาวรจากต้นฉบับเมื่อวันที่ 25 มกราคม 2016 . เรียกดูเมื่อวันที่ 20 กันยายน 2014 .
  25. ^ "BayesDB บน ​​SQLite ตารางฐานข้อมูลแบบเบย์เซียนสำหรับการสอบถามผลลัพธ์ที่เป็นไปได้ของข้อมูลได้ง่ายเหมือนกับการที่ฐานข้อมูล SQL สอบถามข้อมูลเอง" . GitHub . 26 ธันวาคม 2021.
  26. ^ "diff-SAT (probabilistic SAT/ASP)" . GitHub . 8 ตุลาคม 2021.
  27. ^ Dey, Debabrata; Sarkar, Sumit (1998). "PSQL: ภาษาสอบถามสำหรับข้อมูลเชิงสัมพันธ์แบบความน่าจะเป็น" Data & Knowledge Engineering . 28 : 107– 120. doi : 10.1016/S0169-023X(98)00015-9 .
  28. ^ "Dyna" . www.dyna.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 17 มกราคม 2016 . เรียกดูเมื่อวันที่ 12 มกราคม 2011 .
  29. ^ "Charles River Analytics - บริการสร้างแบบจำลองความน่าจะเป็น" . cra.com . 9 กุมภาพันธ์ 2017.
  30. ^ "ProbLog: การเขียนโปรแกรมเชิงความน่าจะเป็น" . dtai.cs.kuleuven.be .
  31. โปรบาใช่"ProbaYes - Ensemble, nous valorisations vos données" . probayes.com ​เก็บถาวรจากต้นฉบับเมื่อวันที่ 5 มีนาคม 2016 . สืบค้นเมื่อ 26 พฤศจิกายน 2556 .
  32. "หน้าแรกของฮาคารุ" . hakaru-dev.github.io/ .
  33. ^ "หน้าหลัก BAli-Phy" . bali-phy.org .
  34. ^ "ProbCog" . GitHub .
  35. ^นักพัฒนา PyMC "PyMC" . pymc-devs.github.io .
  36. ^ stripe/rainier , Stripe, 19 สิงหาคม 2020 , สืบค้นเมื่อ26 สิงหาคม 2020
  37. ^ "Rainier · การอนุมานแบบเบย์เซียนสำหรับ Scala" . samplerainier.com . สืบค้นเมื่อ26 สิงหาคม 2020 .
  38. ^ "greta: การสร้างแบบจำลองทางสถิติที่เรียบง่ายและปรับขนาดได้ใน R" . GitHub . สืบค้นเมื่อ2 ตุลาคม 2018 .
  39. ^ "หน้าหลัก — เอกสารประกอบการใช้งาน pomegranate 0.10.0" . pomegranate.readthedocs.io . สืบค้นเมื่อ2 ตุลาคม 2018 .
  40. ^ "หน้าแรกของ Lea" . bitbucket.org .
  41. ^ "หน้าแรกของ WebPPL" . github.com/probmods/webppl .
  42. ^ "Gen: ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นอเนกประสงค์พร้อมการอนุมานที่ตั้งโปรแกรมได้"สืบค้นเมื่อ11 มิถุนายน 2024
  43. ^ "Edward – Home" . edwardlib.org . สืบค้นเมื่อ17 มกราคม 2017 .
  44. ^ TensorFlow (11 เมษายน 2561). "แนะนำ TensorFlow Probability" . TensorFlow . สืบค้นเมื่อ2 ตุลาคม 2561 .
  45. ^ "โมดูลความน่าจะเป็น 'Edward2' ของ TensorFlow" . GitHub . สืบค้นเมื่อ11 มิถุนายน 2024 .
  46. ^ "Pyro" . pyro.ai . สืบค้นเมื่อ 9 กุมภาพันธ์ 2018 .
  47. ^ "NumPyro" . pyro.ai . สืบค้นเมื่อ23 กรกฎาคม 2021 .
  48. ^ "การเขียน โปรแกรมเชิงความน่าจะเป็นในภาษา Birch" birch-lang.org สืบค้นเมื่อ20 เมษายน 2561
  49. ^ "PSI Solver - การอนุมานที่แม่นยำสำหรับโปรแกรมเชิงความน่าจะเป็น" . psisolver.org . สืบค้นเมื่อ18 สิงหาคม 2019 .
  50. ^ "หน้าหลัก" . www.stat.ubc.ca .
  51. ^ Perov, Yura; Graham, Logan; Gourgoulias, Kostis; Richens, Jonathan G.; Lee, Ciarán M.; Baker, Adam; Johri, Saurabh (28 มกราคม 2020), MultiVerse: การให้เหตุผลเชิงสาเหตุโดยใช้การสุ่มตัวอย่างความสำคัญในการเขียนโปรแกรมเชิงความน่าจะเป็น , arXiv : 1910.08091
  52. ^ "ระบบการเขียนโปรแกรมเชิงความน่าจะเป็นของแองกลิกัน" probprog.github.io สืบค้นเมื่อ7 ตุลาคม 2024
  53. ^ oracle/sandwood , Oracle, 28 พฤษภาคม 2026 , สืบค้นเมื่อ16 มิถุนายน 2026
  54. ^ Gorinova, Maria I.; Sarkar, Advait; Blackwell, Alan F.; Syme, Don (1 มกราคม 2016). "สภาพแวดล้อมการเขียนโปรแกรมเชิงความน่าจะเป็นแบบหลายตัวแทนที่มีชีวิตสำหรับผู้เริ่มต้น". รายงานการประชุม CHI ประจำปี 2016 ว่าด้วยปัจจัยมนุษย์ในระบบคอมพิวเตอร์ CHI '16. นิวยอร์ก, นิวยอร์ก, สหรัฐอเมริกา: ACM. หน้า  2533–2537 . doi : 10.1145/2858036.2858221 . ISBN 9781450333627. S2CID  3201542 .
  55. ^ "pymc.find_constrained_prior — เอกสารประกอบการพัฒนา PyMC" . www.pymc.io . สืบค้นเมื่อ23 ตุลาคม 2024 .
  • พื้นฐานของการเขียนโปรแกรมเชิงความน่าจะเป็น
  • รายชื่อชุดเครื่องมือภาษาขนาดเล็กสำหรับแบบจำลองความน่าจะเป็น
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Probabilistic_programming&oldid=1359630593#Applications "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเขียนโปรแกรมเชิงความน่าจะเป็น

การเขียนโปรแกรมเชิงความน่าจะเป็น ( PP ) เป็นกระบวนทัศน์การเขียนโปรแกรมที่อิงตามข้อกำหนดเชิงประกาศของแบบจำลองความน่าจะเป็นซึ่งการอนุมานจะดำเนินการโดยอัตโนมัติการเขียนโปรแกรมเชิงความ...

แอปพลิเคชัน

การให้เหตุผลเชิงความน่าจะเป็นถูกนำมาใช้สำหรับงานที่หลากหลาย เช่น การทำนายราคาหุ้น การแนะนำภาพยนตร์ การวินิจฉัยคอมพิวเตอร์ การตรวจจับการบุกรุกทางไซเบอร์ และการตรวจจับภาพ [ 4 ] อย่างไรก็ตาม จนกระทั่งเมื่อไม่นานมานี้...

ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็น

PPL มักจะขยายมาจากภาษาพื้นฐาน ตัวอย่างเช่น Turing.jl [ 12 ] นั้นมีพื้นฐานมาจาก Julia , Infer.NET มีพื้นฐานมาจาก.

ความสัมพันธ์

ภาษา การเขียนโปรแกรมเชิงสัมพันธ์แบบความน่าจะเป็น (PRPL) คือภาษาการเขียนโปรแกรมเชิงโปรแกรม (PPL) ที่ออกแบบมาเป็นพิเศษเพื่ออธิบายและอนุมานด้วย แบบจำลองเชิงสัมพันธ์แบบความน่าจะเป็น (PRM)