TensorFlow Probability คือคลังข้อมูลสำหรับการให้เหตุผลเชิงความน่าจะเป็นและการวิเคราะห์ทางสถิติใน TensorFlow ในฐานะส่วนหนึ่งของระบบนิเวศ TensorFlow ความน่าจะเป็นของ TensorFlow นำเสนอการบูรณาการวิธีการความน่าจะเป็นกับเครือข่ายเชิงลึก การอนุมานตามการไล่ระดับสีโดยใช้การสร้างความแตกต่างอัตโนมัติ และความสามารถในการปรับขนาดให้กับชุดข้อมูลและแบบจำลองขนาดใหญ่ที่มีการเร่งด้วยฮาร์ดแวร์ (GPU) และการคำนวณแบบกระจาย
หากต้องการเริ่มต้นใช้งาน TensorFlow Probability โปรดดู คู่มือการติดตั้ง และดู บทช่วยสอนสมุดบันทึก Python
ส่วนประกอบ
เครื่องมือแมชชีนเลิร์นนิงที่น่าจะเป็นของเรามีโครงสร้างดังนี้:
เลเยอร์ 0: TensorFlow
การดำเนินการเชิงตัวเลข โดยเฉพาะคลาส LinearOperator
ช่วยให้การใช้งานแบบไร้เมทริกซ์สามารถใช้ประโยชน์จากโครงสร้างเฉพาะ (แนวทแยง ระดับต่ำ ฯลฯ) เพื่อการคำนวณที่มีประสิทธิภาพ สร้างและดูแลโดยทีม TensorFlow Probability และเป็นส่วนหนึ่งของ tf.linalg
ใน core TensorFlow
เลเยอร์ 1: หน่วยการสร้างทางสถิติ
- การแจกแจง (
tfp.distributions
): ชุดใหญ่ของการแจกแจงความน่าจะเป็นและสถิติที่เกี่ยวข้องกับชุดและซีแมนทิกส์ การออกอากาศ - Bijectors (
tfp.bijectors
): การแปลงตัวแปรสุ่มแบบย้อนกลับและแบบประกอบได้ Bijector จัดให้มีคลาสที่หลากหลายของการแจกแจงที่แปลงแล้ว ตั้งแต่ตัวอย่างคลาสสิก เช่น การแจกแจงแบบ log-normal ไปจนถึงโมเดลการเรียนรู้เชิงลึกที่ซับซ้อน เช่น โฟลว์ autoregressive ที่สวมหน้ากาก
เลเยอร์ 2: การสร้างโมเดล
- การแจกแจงร่วม (เช่น
tfp.distributions.JointDistributionSequential
): การแจกแจงร่วมเหนือการแจกแจงแบบพึ่งพาซึ่งกันและกันตั้งแต่หนึ่งรายการขึ้นไป หากต้องการทราบข้อมูลเบื้องต้นเกี่ยวกับการสร้างแบบจำลองด้วยJointDistribution
ของ TFP โปรดดูที่ Colab นี้ - เลเยอร์ความน่าจะเป็น (
tfp.layers
): เลเยอร์โครงข่ายประสาทเทียมที่มีความไม่แน่นอนเหนือฟังก์ชันที่เลเยอร์เหล่านั้นแสดง ซึ่งจะขยายเลเยอร์ TensorFlow
ชั้นที่ 3: การอนุมานความน่าจะเป็น
- Markov chain Monte Carlo (
tfp.mcmc
): อัลกอริทึมสำหรับการประมาณอินทิกรัลผ่านการสุ่มตัวอย่าง รวมถึง Hamiltonian Monte Carlo , Metropolis-Hastings แบบเดินสุ่ม และความสามารถในการสร้างเคอร์เนลการเปลี่ยนแปลงแบบกำหนดเอง - การอนุมานแบบแปรผัน (
tfp.vi
): อัลกอริทึมสำหรับการประมาณอินทิกรัลผ่านการปรับให้เหมาะสม - เครื่องมือเพิ่มประสิทธิภาพ (
tfp.optimizer
): วิธีการเพิ่มประสิทธิภาพ Stochastic ขยายเครื่องมือเพิ่มประสิทธิภาพ TensorFlow รวมถึง Stochastic Gradient Langevin Dynamics - Monte Carlo (
tfp.monte_carlo
): เครื่องมือสำหรับการคำนวณความคาดหวังของ Monte Carlo
ความน่าจะเป็นของ TensorFlow อยู่ระหว่างการพัฒนาและอินเทอร์เฟซอาจมีการเปลี่ยนแปลง
ตัวอย่าง
นอกจาก บทช่วยสอนสมุดบันทึก Python ที่แสดงอยู่ในการนำทางแล้ว ยังมีสคริปต์ตัวอย่างบางส่วนให้เลือก:
- ตัวเข้ารหัสอัตโนมัติแบบแปรผัน — การเรียนรู้การเป็นตัวแทนด้วยโค้ดแฝงและการอนุมานแบบแปรผัน
- ตัวเข้ารหัสอัตโนมัติ Vector-Quantized — การเรียนรู้การแสดงแบบไม่ต่อเนื่องด้วยการหาปริมาณเวกเตอร์
- โครงข่ายประสาทเทียมแบบเบย์ —โครงข่ายประสาทเทียมที่มีความไม่แน่นอนเกี่ยวกับน้ำหนักของมัน
- การถดถอยโลจิสติกแบบเบย์ — การอนุมานแบบเบย์สำหรับการจำแนกประเภทไบนารี
รายงานปัญหา
รายงานข้อบกพร่องหรือคำขอคุณสมบัติโดยใช้ เครื่องมือติดตามปัญหาความน่าจะเป็นของ TensorFlow