อ่าน 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 ]
ดูเพิ่มเติม
หมายเหตุ
- ^ "การเขียนโปรแกรมเชิงความน่าจะเป็นทำสิ่งที่เคยต้องใช้หลายพันบรรทัดด้วยโค้ดเพียง 50 บรรทัด" . phys.org . 13 เมษายน 2558 . สืบค้นเมื่อ13 เมษายน 2558 .
- ^ "การเขียนโปรแกรมเชิงความน่าจะเป็น" . probabilistic-programming.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 10 มกราคม 2016 . เรียกดูเมื่อวันที่ 24 ธันวาคม 2013 .
- ^ Pfeffer, Avrom (2014), Practical Probabilistic Programming , Manning Publications. หน้า 28. ISBN 978-1 6172-9233-0
- ^ a b c "โค้ดการเรียนรู้ของเครื่องแบบการเขียนโปรแกรมเชิงความน่าจะเป็นแบบสั้น แทนที่โปรแกรมที่ซับซ้อนสำหรับงานด้านคอมพิวเตอร์วิชั่น" . KurzweilAI . 13 เมษายน 2558 . สืบค้นเมื่อ27 พฤศจิกายน 2560 .
- ^ฮาร์เดสตี้, แลร์รี่ (13 เมษายน 2558). " กราฟิกแบบย้อนกลับ"
- ^ "MIT เผยโฉมสคริปต์การเรียนรู้ของเครื่องจักรเพื่อสร้างหัวสุดสยอง" . The Register .
- ^ "ระบบการเขียนโปรแกรม Gen ของ MIT ช่วยลดความยากง่ายในการเรียนรู้สำหรับโครงการ AI" VentureBeat 27มิถุนายน 2019 สืบค้นเมื่อ27 มิถุนายน 2019
- ^ 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 .
- ^ 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
- ^ Innes, Mike; Edelman, Alan; Fischer, Keno; Rackauckas, Chris; Saba, Elliot; Viral B Shah; Tebbutt, Will (2019). "∂P: ระบบการเขียนโปรแกรมเชิงอนุพันธ์เพื่อเชื่อมโยงการเรียนรู้ของเครื่องและการคำนวณทางวิทยาศาสตร์" arXiv : 1907.07587 [ cs.PL ]
- ^ Goodman, Noah D; Tenenbaum, Joshua B; Buchsbaum, Daphna; Hartshorne, Joshua; Hawkins, Robert; O'Donnell, Timothy J; Tessler, Michael Henry. "แบบจำลองความน่าจะเป็นของการรับรู้" . แบบจำลองความน่าจะเป็นของการรับรู้ - ฉบับที่ 2 . สืบค้นเมื่อ27 พฤษภาคม 2023 .
- ^ a b "ภาษาทัวริงสำหรับการเขียนโปรแกรมเชิงความน่าจะเป็น" . GitHub . 28 ธันวาคม 2021.
- ^ a b "Infer.NET" . microsoft.com . Microsoft.
- ^ a b "PRISM: PRogramming In Statistical Modeling" . rjida.meijo-u.ac.jp . เก็บถาวรจากต้นฉบับเมื่อวันที่ 1 มีนาคม 2558 . สืบค้นเมื่อ8 กรกฎาคม 2558 .
- ^ a b "โครงการ BUGS - หน่วยชีวสถิติ MRC" . cam.ac.uk . เก็บถาวรจากต้นฉบับเมื่อวันที่ 14 มีนาคม 2014 . เรียกดูเมื่อวันที่ 12 มกราคม 2011 .
- ^ a b "Stan" . mc-stan.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 3 กันยายน 2012
- ↑ 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
- ^ "อัลกอริทึมเบื้องหลังการเขียนโปรแกรมเชิงความน่าจะเป็น"สืบค้นเมื่อ10 มีนาคม 2560
- ^ De Raedt, Luc; Kimmig, Angelika (1 กรกฎาคม 2015). "แนวคิดการเขียนโปรแกรมเชิงความน่าจะเป็น (ตรรกะ)" . การเรียนรู้ของเครื่อง . 100 (1): 5– 47. doi : 10.1007/s10994-015-5494-z . ISSN 1573-0565 .
- ^ "Analytica -- ภาษาสร้างแบบจำลองเชิงความน่าจะเป็น" . lumina.com .
- ^ "bayesloop - กรอบงานการเขียนโปรแกรมเชิงความน่าจะเป็น" bayesloop.com
- ^ "GitHub -- bayesloop" . GitHub . 7 ธันวาคม 2021.
- ^ "Bean Machine - ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นสากลที่ช่วยให้การวิเคราะห์แบบเบย์เซียนรวดเร็วและแม่นยำ" beanmachine.org
- ^ "Venture -- แพลตฟอร์มการเขียนโปรแกรมเชิงความน่าจะเป็นอเนกประสงค์" . mit.edu . เก็บถาวรจากต้นฉบับเมื่อวันที่ 25 มกราคม 2016 . เรียกดูเมื่อวันที่ 20 กันยายน 2014 .
- ^ "BayesDB บน SQLite ตารางฐานข้อมูลแบบเบย์เซียนสำหรับการสอบถามผลลัพธ์ที่เป็นไปได้ของข้อมูลได้ง่ายเหมือนกับการที่ฐานข้อมูล SQL สอบถามข้อมูลเอง" . GitHub . 26 ธันวาคม 2021.
- ^ "diff-SAT (probabilistic SAT/ASP)" . GitHub . 8 ตุลาคม 2021.
- ^ Dey, Debabrata; Sarkar, Sumit (1998). "PSQL: ภาษาสอบถามสำหรับข้อมูลเชิงสัมพันธ์แบบความน่าจะเป็น" Data & Knowledge Engineering . 28 : 107– 120. doi : 10.1016/S0169-023X(98)00015-9 .
- ^ "Dyna" . www.dyna.org . เก็บถาวรจากต้นฉบับเมื่อวันที่ 17 มกราคม 2016 . เรียกดูเมื่อวันที่ 12 มกราคม 2011 .
- ^ "Charles River Analytics - บริการสร้างแบบจำลองความน่าจะเป็น" . cra.com . 9 กุมภาพันธ์ 2017.
- ^ "ProbLog: การเขียนโปรแกรมเชิงความน่าจะเป็น" . dtai.cs.kuleuven.be .
- ↑โปรบาใช่"ProbaYes - Ensemble, nous valorisations vos données" . probayes.com เก็บถาวรจากต้นฉบับเมื่อวันที่ 5 มีนาคม 2016 . สืบค้นเมื่อ 26 พฤศจิกายน 2556 .
- ↑ "หน้าแรกของฮาคารุ" . hakaru-dev.github.io/ .
- ^ "หน้าหลัก BAli-Phy" . bali-phy.org .
- ^ "ProbCog" . GitHub .
- ^นักพัฒนา PyMC "PyMC" . pymc-devs.github.io .
- ^ stripe/rainier , Stripe, 19 สิงหาคม 2020 , สืบค้นเมื่อ26 สิงหาคม 2020
- ^ "Rainier · การอนุมานแบบเบย์เซียนสำหรับ Scala" . samplerainier.com . สืบค้นเมื่อ26 สิงหาคม 2020 .
- ^ "greta: การสร้างแบบจำลองทางสถิติที่เรียบง่ายและปรับขนาดได้ใน R" . GitHub . สืบค้นเมื่อ2 ตุลาคม 2018 .
- ^ "หน้าหลัก — เอกสารประกอบการใช้งาน pomegranate 0.10.0" . pomegranate.readthedocs.io . สืบค้นเมื่อ2 ตุลาคม 2018 .
- ^ "หน้าแรกของ Lea" . bitbucket.org .
- ^ "หน้าแรกของ WebPPL" . github.com/probmods/webppl .
- ^ "Gen: ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็นอเนกประสงค์พร้อมการอนุมานที่ตั้งโปรแกรมได้"สืบค้นเมื่อ11 มิถุนายน 2024
- ^ "Edward – Home" . edwardlib.org . สืบค้นเมื่อ17 มกราคม 2017 .
- ^ TensorFlow (11 เมษายน 2561). "แนะนำ TensorFlow Probability" . TensorFlow . สืบค้นเมื่อ2 ตุลาคม 2561 .
- ^ "โมดูลความน่าจะเป็น 'Edward2' ของ TensorFlow" . GitHub . สืบค้นเมื่อ11 มิถุนายน 2024 .
- ^ "Pyro" . pyro.ai . สืบค้นเมื่อ 9 กุมภาพันธ์ 2018 .
- ^ "NumPyro" . pyro.ai . สืบค้นเมื่อ23 กรกฎาคม 2021 .
- ^ "การเขียน โปรแกรมเชิงความน่าจะเป็นในภาษา Birch" birch-lang.org สืบค้นเมื่อ20 เมษายน 2561
- ^ "PSI Solver - การอนุมานที่แม่นยำสำหรับโปรแกรมเชิงความน่าจะเป็น" . psisolver.org . สืบค้นเมื่อ18 สิงหาคม 2019 .
- ^ "หน้าหลัก" . www.stat.ubc.ca .
- ^ Perov, Yura; Graham, Logan; Gourgoulias, Kostis; Richens, Jonathan G.; Lee, Ciarán M.; Baker, Adam; Johri, Saurabh (28 มกราคม 2020), MultiVerse: การให้เหตุผลเชิงสาเหตุโดยใช้การสุ่มตัวอย่างความสำคัญในการเขียนโปรแกรมเชิงความน่าจะเป็น , arXiv : 1910.08091
- ^ "ระบบการเขียนโปรแกรมเชิงความน่าจะเป็นของแองกลิกัน" probprog.github.io สืบค้นเมื่อ7 ตุลาคม 2024
- ^ oracle/sandwood , Oracle, 28 พฤษภาคม 2026 , สืบค้นเมื่อ16 มิถุนายน 2026
- ^ 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 .
- ^ "pymc.find_constrained_prior — เอกสารประกอบการพัฒนา PyMC" . www.pymc.io . สืบค้นเมื่อ23 ตุลาคม 2024 .
ลิงก์ภายนอก
- พื้นฐานของการเขียนโปรแกรมเชิงความน่าจะเป็น
- รายชื่อชุดเครื่องมือภาษาขนาดเล็กสำหรับแบบจำลองความน่าจะเป็น
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเขียนโปรแกรมเชิงความน่าจะเป็น
การเขียนโปรแกรมเชิงความน่าจะเป็น ( PP ) เป็นกระบวนทัศน์การเขียนโปรแกรมที่อิงตามข้อกำหนดเชิงประกาศของแบบจำลองความน่าจะเป็นซึ่งการอนุมานจะดำเนินการโดยอัตโนมัติการเขียนโปรแกรมเชิงความ...
แอปพลิเคชัน
การให้เหตุผลเชิงความน่าจะเป็นถูกนำมาใช้สำหรับงานที่หลากหลาย เช่น การทำนายราคาหุ้น การแนะนำภาพยนตร์ การวินิจฉัยคอมพิวเตอร์ การตรวจจับการบุกรุกทางไซเบอร์ และการตรวจจับภาพ [ 4 ] อย่างไรก็ตาม จนกระทั่งเมื่อไม่นานมานี้...
ภาษาการเขียนโปรแกรมเชิงความน่าจะเป็น
PPL มักจะขยายมาจากภาษาพื้นฐาน ตัวอย่างเช่น Turing.jl [ 12 ] นั้นมีพื้นฐานมาจาก Julia , Infer.NET มีพื้นฐานมาจาก.
ความสัมพันธ์
ภาษา การเขียนโปรแกรมเชิงสัมพันธ์แบบความน่าจะเป็น (PRPL) คือภาษาการเขียนโปรแกรมเชิงโปรแกรม (PPL) ที่ออกแบบมาเป็นพิเศษเพื่ออธิบายและอนุมานด้วย แบบจำลองเชิงสัมพันธ์แบบความน่าจะเป็น (PRM)