อ่าน 5 นาที
การเปรียบเทียบซอฟต์แวร์กระบวนการเกาส์เซียน
นี่คือการเปรียบเทียบซอฟต์แวร์วิเคราะห์ทางสถิติที่อนุญาตให้ทำการอนุมานด้วยกระบวนการเกาส์เซียนซึ่งมักใช้การประมาณค่า
การเปรียบเทียบซอฟต์แวร์กระบวนการเกาส์เซียน
นี่คือการเปรียบเทียบซอฟต์แวร์วิเคราะห์ทางสถิติที่อนุญาตให้ทำการอนุมานด้วยกระบวนการเกาส์เซียนซึ่งมักใช้การประมาณค่า
บทความนี้เขียนขึ้นจากมุมมองของสถิติแบบเบย์ซึ่งอาจใช้ศัพท์เฉพาะที่แตกต่างจากที่ใช้กันทั่วไปในวิธีการครีจิงส่วนถัดไปจะอธิบายความหมายทางคณิตศาสตร์/การคำนวณของข้อมูลที่ให้ไว้ในตารางโดยไม่คำนึงถึงบริบทของศัพท์เฉพาะ
คำอธิบายคอลัมน์
ส่วนนี้จะอธิบายความหมายของคอลัมน์ต่างๆ ในตารางด้านล่างโดยละเอียด
ผู้แก้ปัญหา
คอลัมน์เหล่านี้กล่าวถึงอัลกอริธึมที่ใช้ในการแก้ระบบสมการเชิงเส้นที่กำหนดโดยเมทริกซ์ความแปรปรวนร่วมก่อนหน้า กล่าว คือ เมทริกซ์ที่สร้างขึ้นโดยการประเมินเคอร์เนล
- แม่นยำ : มีการนำอัลกอริทึมที่แม่นยำ ทั่วไปมา ใช้หรือไม่ อัลกอริทึมเหล่านี้มักเหมาะสมเฉพาะกับข้อมูลที่มีเพียงไม่กี่พันจุดเท่านั้น
- เฉพาะทาง : มี การนำอัลกอริทึม ที่แม่นยำและ เฉพาะทาง สำหรับปัญหาเฉพาะกลุ่มมาใช้หรือไม่ อัลกอริทึมเฉพาะทางที่รองรับอาจระบุได้ดังนี้:
- Kronecker : อัลกอริทึมสำหรับเคอร์เนลที่แยกได้บนข้อมูลกริด[ 1 ]
- Toeplitz : อัลกอริทึมสำหรับเคอร์เนลคงที่บนข้อมูลที่มีระยะห่างสม่ำเสมอ[ 2 ]
- Semisep. : อัลกอริทึมสำหรับเมทริกซ์ความแปรปรวนร่วมแบบแยกส่วนได้[ 3 ]
- เมทริก ซ์ความ แปรปรวนร่วมแบบเบาบาง : อัลกอริทึมที่ได้รับการปรับให้เหมาะสมสำหรับเมทริกซ์ความแปรปรวนร่วมแบบเบาบาง
- Block : อัลกอริทึมที่ปรับให้เหมาะสมสำหรับเมทริกซ์ความแปรปรวนร่วมแนวทแยงแบบบล็อก
- Markov : อัลกอริทึมสำหรับเคอร์เนลซึ่งแสดง (หรือสามารถกำหนดเป็น) กระบวนการ Markov ได้[ 4 ]
- โดยประมาณ : ระบุว่า มีการใช้งานอัลกอริธึมประมาณค่า แบบทั่วไปหรือแบบเฉพาะทางหรือไม่ อัลกอริธึมประมาณค่าที่รองรับอาจระบุได้ดังนี้:
- Sparse : อัลกอริทึมที่ใช้การเลือกชุดของ "จุดเหนี่ยวนำ" ในพื้นที่อินพุต[ 5 ]หรือโดยทั่วไปแล้วกำหนดโครงสร้างแบบเบาบางให้กับเมทริกซ์ผกผันของเมทริกซ์ความแปรปรวนร่วม
- แบบลำดับชั้น : อัลกอริทึมที่ประมาณเมทริกซ์ความแปรปรวนร่วมด้วย เมทริก ซ์แบบลำดับชั้น[ 6 ]
ป้อนข้อมูล
คอลัมน์เหล่านี้เกี่ยวกับจุดที่ใช้ในการประเมินกระบวนการเกาส์เซียน กล่าวคือถ้ากระบวนการนั้นเป็นจริง
- ND : รองรับการป้อนข้อมูลแบบหลายมิติหรือไม่ หากรองรับ การส่งออกข้อมูลแบบหลายมิติก็สามารถทำได้เสมอโดยการเพิ่มมิติให้กับข้อมูลป้อนเข้า แม้ว่าจะไม่มีการรองรับโดยตรงก็ตาม
- ข้อมูล ที่ไม่ใช่จำนวนจริง : รองรับการป้อนข้อมูล ที่ไม่ใช่ จำนวนจริง แบบใดก็ได้หรือไม่ (ตัวอย่างเช่น ข้อความหรือ จำนวนเชิงซ้อน )
เอาต์พุต
คอลัมน์เหล่านี้แสดงถึงค่าที่ได้จากกระบวนการ และความเชื่อมโยงของค่าเหล่านั้นกับข้อมูลที่ใช้ในการปรับให้เหมาะสม
- ความน่าจะเป็น : รองรับความน่าจะเป็น แบบไม่ เป็นแบบเกาส์เซียน โดยพลการหรือไม่
- ข้อผิดพลาด : รองรับข้อผิดพลาดที่ไม่สม่ำเสมอและมีความสัมพันธ์กันโดยพลการบนจุดข้อมูลสำหรับฟังก์ชันความน่าจะเป็นแบบเกาส์เซียนหรือไม่ สามารถจัดการข้อผิดพลาดได้ด้วยตนเองโดยการเพิ่มส่วนประกอบเคอร์เนล คอลัมน์นี้กล่าวถึงความเป็นไปได้ในการจัดการข้อผิดพลาดแยกต่างหาก การรองรับข้อผิดพลาดบางส่วนอาจระบุได้ดังนี้:
- iid : ข้อมูลทุกจุดต้องเป็นอิสระต่อกันและมีการกระจายตัวเหมือนกัน
- ไม่มีความสัมพันธ์กัน : จุดข้อมูลต้องเป็นอิสระต่อกัน แต่สามารถมีการกระจายตัวที่แตกต่างกันได้
- สภาวะคงที่ : จุดข้อมูลอาจมีความสัมพันธ์กัน แต่เมทริกซ์ความแปรปรวนร่วมต้องเป็นเมทริกซ์โทปลิตซ์โดยเฉพาะอย่างยิ่งหมายความว่าความแปรปรวนต้องกระจายอย่างสม่ำเสมอ
ไฮเปอร์พารามิเตอร์
คอลัมน์เหล่านี้เกี่ยวกับการค้นหาค่าของตัวแปรที่ปรากฏอยู่ในคำจำกัดความของปัญหาเฉพาะนั้น แต่ไม่สามารถอนุมานได้จากการปรับให้เข้ากับกระบวนการเกาส์เซียน ตัวอย่างเช่น พารามิเตอร์ในสูตรของเคอร์เนล
- ก่อนหน้า : รองรับ การระบุค่า ไฮเปอร์ไพรเออร์ แบบกำหนดเอง สำหรับไฮเปอร์พารามิเตอร์ หรือไม่
- ความน่า จะเป็นภายหลัง : รองรับการประมาณค่าความน่าจะเป็นภายหลังนอกเหนือจากการประมาณค่าแบบจุดหรือไม่ อาจใช้ร่วมกับซอฟต์แวร์อื่น ๆ ก็ได้
หากทั้งช่อง "Prior" และ "Posterior" มีค่าเป็น "Manually" ซอฟต์แวร์จะแสดงส่วนต่อประสานสำหรับการคำนวณความน่าจะเป็นแบบมาร์จินัลและเกรเดียนต์ของมันเทียบกับไฮเปอร์พารามิเตอร์ ซึ่งสามารถป้อนเข้าสู่อัลกอริธึมการปรับให้เหมาะสม/การสุ่มตัวอย่าง เช่นการลดเกรเดียนต์หรือMarkov chain Monte Carloได้
การแปลงเชิงเส้น
คอลัมน์เหล่านี้กล่าวถึงความเป็นไปได้ในการปรับจุดข้อมูลให้เข้ากับกระบวนการและกับการแปลงเชิงเส้นของกระบวนการนั้นพร้อมกัน
- อนุพันธ์ : พิจารณาว่าสามารถหาอนุพันธ์ได้มากน้อยเพียงใด จนถึงจำนวนสูงสุดที่อนุญาตโดยความเรียบของเคอร์เนล สำหรับเคอร์เนลที่หาอนุพันธ์ได้ทุกชนิด ตัวอย่างข้อกำหนดบางส่วนอาจเป็นการหาอนุพันธ์ได้สูงสุด หรือการใช้งานได้เฉพาะกับบางเคอร์เนลเท่านั้น อินทิกรัลสามารถหาได้โดยอ้อมจากอนุพันธ์
- จำกัด : อนุญาตให้มีการแปลงเชิงเส้นแบบจำกัดโดยพลการกับจุดข้อมูลที่ระบุ หรือไม่
- ผลรวม : เป็นไปได้หรือไม่ที่จะรวมเคอร์เนลต่างๆ เข้าด้วยกันและเข้าถึงกระบวนการที่สอดคล้องกับตัวบวกแต่ละตัวแยกกัน นี่เป็นกรณีพิเศษของการแปลงเชิงเส้นแบบจำกัด แต่ถูกระบุแยกต่างหากเนื่องจากเป็นคุณลักษณะทั่วไป
ตารางเปรียบเทียบ
| ชื่อ | ใบอนุญาต | ภาษา | ผู้แก้ปัญหา | ป้อนข้อมูล | เอาต์พุต | ไฮเปอร์พารามิเตอร์ | การแปลงเชิงเส้น | ชื่อ | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ที่แน่นอน | เฉพาะทาง | โดยประมาณ | เอ็นดี | ไม่จริง | ความน่าจะเป็น | ข้อผิดพลาด | ก่อน | ด้านหลัง | อนุพันธ์ | จำกัด | ผลรวม | ||||
| ไพเอ็มซี | อะปาเช่ | ไพธอน | ใช่ | โครเนกเกอร์ | เบาบาง | เอ็นดี | เลขที่ | ใดๆ | สัมพันธ์กัน | ใช่ | ใช่ | เลขที่ | ใช่ | ใช่ | ไพเอ็มซี |
| สแตน | บีเอสดี , จีพีแอล | กำหนดเอง | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | ใดๆ | สัมพันธ์กัน | ใช่ | ใช่ | เลขที่ | ใช่ | ใช่ | สแตน |
| scikit-learn | บีเอสดี | ไพธอน | ใช่ | เลขที่ | เลขที่ | เอ็นดี | ใช่ | เบอร์นูลลี | ไม่มีความสัมพันธ์กัน | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | เลขที่ | scikit-learn |
| เอฟบีเอ็ม[ 7 ] | ฟรี | ซี | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | เบอร์นูลลี, ปัวซง | ไม่มีความสัมพันธ์กัน คงที่ | มากมาย | ใช่ | เลขที่ | เลขที่ | ใช่ | เอฟบีเอ็ม |
| GPML [ 8 ] [ 7 ] | บีเอสดี | MATLAB | ใช่ | เลขที่ | เบาบาง | เอ็นดี | เลขที่ | มากมาย | iid | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | เลขที่ | จีพีเอ็มแอล |
| GPstuff [ 7 ] | จีเอ็นยู จีพีแอล | MATLAB , R | ใช่ | มาร์คอฟ | เบาบาง | เอ็นดี | เลขที่ | มากมาย | สัมพันธ์กัน | มากมาย | ใช่ | RBF แรก | เลขที่ | ใช่ | GPstuff |
| GPy [ 9 ] | บีเอสดี | ไพธอน | ใช่ | เลขที่ | เบาบาง | เอ็นดี | เลขที่ | มากมาย | ไม่มีความสัมพันธ์กัน | ใช่ | ใช่ | เลขที่ | เลขที่ | เลขที่ | จีพีวาย |
| GPflow [ 9 ] | อะปาเช่ | ไพธอน | ใช่ | เลขที่ | เบาบาง | เอ็นดี | เลขที่ | มากมาย | ไม่มีความสัมพันธ์กัน | ใช่ | ใช่ | เลขที่ | เลขที่ | เลขที่ | จีพีโฟลว์ |
| GPyTorch [ 10 ] | เอ็มไอที | ไพธอน | ใช่ | โทปลิตซ์, โครเนกเกอร์ | เบาบาง | เอ็นดี | เลขที่ | มากมาย | ไม่มีความสัมพันธ์กัน | ใช่ | ใช่ | RBF แรก | ด้วยตนเอง | ด้วยตนเอง | จีพีไอทอร์ช |
| GPvecchia [ 11 ] | จีเอ็นยู จีพีแอล | อาร์ | ใช่ | เลขที่ | กระจัดกระจาย เป็นลำดับชั้น | เอ็นดี | เลขที่ | ตระกูลเลขชี้กำลัง | ไม่มีความสัมพันธ์กัน | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | จีพีเวคเคีย |
| pyGPs [ 12 ] | บีเอสดี | ไพธอน | ใช่ | เลขที่ | เบาบาง | เอ็นดี | กราฟ, ทำด้วยมือ | เบอร์นูลลี | iid | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | เลขที่ | pyGPs |
| gptk [ 13 ] | บีเอสดี | อาร์ | ใช่ | ปิดกั้น? | เบาบาง | เอ็นดี | เลขที่ | เกาส์เซียน | เลขที่ | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | เลขที่ | จีพีทีเค |
| เซเลอไรต์[ 3 ] | เอ็มไอที | Python , Julia , C++ | เลขที่ | เซมิเซป. [ก] | เลขที่ | 1D | เลขที่ | เกาส์เซียน | ไม่มีความสัมพันธ์กัน | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | เลขที่ | เซเลอไรต์ |
| จอร์จ[ 6 ] | เอ็มไอที | Python , C++ | ใช่ | เลขที่ | ลำดับชั้น | เอ็นดี | เลขที่ | เกาส์เซียน | ไม่มีความสัมพันธ์กัน | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | ด้วยตนเอง | จอร์จ |
| เส้นสัมผัสประสาท[ 14 ] [ b ] | อะปาเช่ | ไพธอน | ใช่ | บล็อก, โครเนกเกอร์ | เลขที่ | เอ็นดี | เลขที่ | เกาส์เซียน | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เส้นสัมผัสประสาท |
| DiceKriging [ 15 ] | จีเอ็นยู จีพีแอล | อาร์ | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่? | เกาส์เซียน | ไม่มีความสัมพันธ์กัน | SCAD RBF | แผนที่ | เลขที่ | เลขที่ | เลขที่ | ไดซ์ครีกิง |
| OpenTURNS [ 16 ] | จีเอ็นยูแอลจีพีแอล | Python , C++ | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | เกาส์เซียน | ไม่มีความสัมพันธ์กัน | ทำด้วยมือ (ไม่มีเกรด) | แผนที่ | เลขที่ | เลขที่ | เลขที่ | เปิดเทิร์น |
| UQLab [ 17 ] | กรรมสิทธิ์ | MATLAB | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | เกาส์เซียน | สัมพันธ์กัน | เลขที่ | แผนที่ | เลขที่ | เลขที่ | เลขที่ | ยูคิวแล็บ |
| ooDACE [ 18 ] | กรรมสิทธิ์ | MATLAB | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | เกาส์เซียน | สัมพันธ์กัน | เลขที่ | แผนที่ | เลขที่ | เลขที่ | เลขที่ | ooDACE |
| เต้นรำ | กรรมสิทธิ์ | MATLAB | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | เกาส์เซียน | เลขที่ | เลขที่ | แผนที่ | เลขที่ | เลขที่ | เลขที่ | เต้นรำ |
| GpGp | เอ็มไอที | อาร์ | เลขที่ | เลขที่ | เบาบาง | เอ็นดี | เลขที่ | เกาส์เซียน | iid | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | เลขที่ | GpGp |
| ซูเปอร์เกาส์ | จีเอ็นยู จีพีแอล | อาร์ซี++ | เลขที่ | โทปลิตซ์[ค] | เลขที่ | 1D | เลขที่ | เกาส์เซียน | เลขที่ | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | เลขที่ | ซูเปอร์เกาส์ |
| สตค | จีเอ็นยู จีพีแอล | MATLAB | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | เกาส์เซียน | ไม่มีความสัมพันธ์กัน | ด้วยตนเอง | ด้วยตนเอง | เลขที่ | เลขที่ | ด้วยตนเอง | สตค |
| GSTools | จีเอ็นยูแอลจีพีแอล | ไพธอน | ใช่ | เลขที่ | เลขที่ | เอ็นดี | เลขที่ | เกาส์เซียน | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ | GSTools |
| ไพครีจ | บีเอสดี | ไพธอน | ใช่ | เลขที่ | เลขที่ | 2 มิติ, 3 มิติ | เลขที่ | เกาส์เซียน | iid | เลขที่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ | ไพครีจ |
| จีพีอาร์ | อะปาเช่ | ซี++ | ใช่ | เลขที่ | เบาบาง | เอ็นดี | เลขที่ | เกาส์เซียน | iid | บางส่วนทำด้วยมือ | ด้วยตนเอง | อันดับแรก | เลขที่ | เลขที่ | จีพีอาร์ |
| เซเลอไรต์2 | เอ็มไอที | ไพธอน | เลขที่ | เซมิเซป. [ก] | เลขที่ | 1D | เลขที่ | เกาส์เซียน | ไม่มีความสัมพันธ์กัน | ด้วยตนเอง[ d ] | ด้วยตนเอง | เลขที่ | เลขที่ | ใช่ | เซเลอไรต์2 |
| SMT [ 19 ] [ 20 ] | บีเอสดี | ไพธอน | ใช่ | เลขที่ | กระจัดกระจาย, PODI [ e ]อื่นๆ | เอ็นดี | เลขที่ | เกาส์เซียน | iid | บาง | บาง | อันดับแรก | เลขที่ | เลขที่ | เอสเอ็มที |
| จีพีแจ็กซ์ | อะปาเช่ | ไพธอน | ใช่ | เลขที่ | เบาบาง | เอ็นดี | กราฟ | เบอร์นูลลี | เลขที่ | ใช่ | ใช่ | เลขที่ | เลขที่ | เลขที่ | จีพีแจ็กซ์ |
| สเตโน | เอ็มไอที | ไพธอน | ใช่ | อันดับต่ำ | เบาบาง | เอ็นดี | เลขที่ | เกาส์เซียน | iid | ด้วยตนเอง | ด้วยตนเอง | โดยประมาณ | เลขที่ | ใช่ | สเตโน |
| อีโกบ็อกซ์-จีพี[ 22 ] | อะปาเช่ | สนิม | ใช่ | เลขที่ | เบาบาง | เอ็นดี | เลขที่ | เกาส์เซียน | iid | เลขที่ | แผนที่ | อันดับแรก | เลขที่ | เลขที่ | อีโก้บ็อกซ์-จีพี |
| ชื่อ | ใบอนุญาต | ภาษา | ที่แน่นอน | เฉพาะทาง | โดยประมาณ | เอ็นดี | ไม่จริง | ความน่าจะเป็น | ข้อผิดพลาด | ก่อน | ด้านหลัง | อนุพันธ์ | จำกัด | ผลรวม | ชื่อ |
| ผู้แก้ปัญหา | ป้อนข้อมูล | เอาต์พุต | ไฮเปอร์พารามิเตอร์ | การแปลงเชิงเส้น | |||||||||||
หมายเหตุ
- ^ a b celerite ใช้เพียงพีชคณิตย่อยเฉพาะของเคอร์เนลซึ่งสามารถแก้ไขได้ใน[ 3 ]
- ^ neural-tangents เป็นแพ็กเกจเฉพาะสำหรับเครือข่ายประสาทเทียมที่มีความกว้างไม่จำกัด
- ^ SuperGauss ใช้ตัวแก้สมการ Toeplitz ที่เร็วมาก ด้วยความซับซ้อนในการคำนวณ.
- ^ celerite2 มีอินเทอร์เฟซ PyMC3
- ^ PODI (Proper Orthogonal Decomposition + Interpolation) เป็นการประมาณค่าสำหรับการถดถอยแบบหลายเอาต์พุตที่มีมิติสูง ฟังก์ชันการถดถอยมีมิติต่ำกว่าผลลัพธ์ และพื้นที่ย่อยจะถูกเลือกด้วย PCA ของข้อมูล (ผลลัพธ์ ตัวแปรตาม) แต่ละองค์ประกอบหลักจะถูกสร้างแบบจำลองด้วยกระบวนการเกาส์เซียนอิสระแบบก่อนหน้า [ 21 ]
ลิงก์ภายนอก
- [1]เว็บไซต์ที่เผยแพร่หนังสือGaussian processes for machine learning ของ C. E. Rasmussen มีรายการซอฟต์แวร์ (บางส่วนล้าสมัย)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเปรียบเทียบซอฟต์แวร์กระบวนการเกาส์เซียน
นี่คือการเปรียบเทียบซอฟต์แวร์วิเคราะห์ทางสถิติที่อนุญาตให้ทำการอนุมานด้วยกระบวนการเกาส์เซียนซึ่งมักใช้การประมาณค่า
คำอธิบายคอลัมน์
ส่วนนี้จะอธิบายความหมายของคอลัมน์ต่างๆ ในตารางด้านล่างโดยละเอียด
ผู้แก้ปัญหา
คอลัมน์เหล่านี้กล่าวถึงอัลกอริธึมที่ใช้ในการแก้ ระบบสมการเชิงเส้น ที่กำหนดโดย เมทริกซ์ความแปรปรวน ร่วมก่อนหน้า กล่าว คือ เมทริกซ์ที่สร้างขึ้นโดยการประเมินเคอร์เนล
ป้อนข้อมูล
คอลัมน์เหล่านี้เกี่ยวกับจุดที่ใช้ในการประเมินกระบวนการเกาส์เซียน กล่าวคือถ้ากระบวนการนั้นเป็นจริง x {\displaystyle x} เอฟ ( x ) {\displaystyle f(x)}