ทำไมการเพิ่มความน่าจะเป็นของบันทึกจึงเร็วกว่าการคูณความน่าจะเป็น
ในการวางกรอบคำถามในวิทยาการคอมพิวเตอร์บ่อยครั้งที่เราต้องการคำนวณผลคูณของความน่าจะเป็น: P(A,B,C) = P(A) * P(B) * P(C) วิธีที่ง่ายที่สุดคือการคูณตัวเลขเหล่านี้และนั่นคือสิ่งที่ฉันจะทำ อย่างไรก็ตามเจ้านายของฉันกล่าวว่าการเพิ่มบันทึกของความน่าจะเป็นดีกว่า: log(P(A,B,C)) = log(P(A)) + log(P(B)) + log(P(C)) นี่จะให้ความน่าจะเป็นของบันทึก แต่เราสามารถได้ความน่าจะเป็นหลังจากนั้นถ้าจำเป็น: P(A,B,C) = e^log(P(A,B,C)) การเพิ่มบันทึกถือว่าดีกว่าด้วยเหตุผลสองประการ: มันป้องกัน "underflow" โดยผลิตภัณฑ์ของความน่าจะเป็นมีขนาดเล็กจนมันถูกปัดเศษเป็นศูนย์ สิ่งนี้มักเป็นความเสี่ยงเนื่องจากความน่าจะเป็นมีขนาดเล็กมาก มันเร็วกว่าเพราะสถาปัตยกรรมคอมพิวเตอร์จำนวนมากสามารถทำการเพิ่มได้เร็วกว่าการคูณ คำถามของฉันเกี่ยวกับประเด็นที่สอง นี่คือวิธีที่ฉันได้เห็นมันอธิบาย แต่ไม่คำนึงถึงค่าใช้จ่ายเพิ่มเติมในการรับบันทึก! เราควรจะเปรียบเทียบ "ต้นทุนของล็อก + ค่าใช้จ่ายของการเพิ่ม" กับ "ต้นทุนของการคูณ" มันยังมีขนาดเล็กลงหลังจากที่คำนึงถึงเรื่องนี้หรือไม่? นอกจากนี้หน้า Wikipedia ( ความน่าจะเป็นบันทึก ) นั้นสร้างความสับสนในแง่นี้โดยระบุว่า "การแปลงเป็นไฟล์บันทึกมีราคาแพง แต่เกิดขึ้นเพียงครั้งเดียวเท่านั้น" ฉันไม่เข้าใจสิ่งนี้เพราะฉันคิดว่าคุณจะต้องใช้บันทึกของทุกคำศัพท์อย่างอิสระก่อนที่จะเพิ่ม ฉันพลาดอะไรไป ในที่สุดเหตุผลที่ว่า "คอมพิวเตอร์ทำการเพิ่มเร็วกว่าการคูณ" …