ฉันใช้ KL Divergence เป็นตัวชี้วัดความแตกต่างกันระหว่าง 2และQ
ถ้า
แต่ถ้า
ฉันใช้ KL Divergence เป็นตัวชี้วัดความแตกต่างกันระหว่าง 2และQ
ถ้า
แต่ถ้า
คำตอบ:
คุณทำไม่ได้และทำไม่ได้ ลองนึกภาพว่าคุณมีตัวแปรสุ่มของการแจกแจงความน่าจะเป็น Q. แต่เพื่อนของคุณ Bob คิดว่าผลลัพธ์มาจากการกระจายความน่าจะเป็น P เขาได้สร้างการเข้ารหัสที่ดีที่สุดซึ่งจะช่วยลดจำนวนบิตที่คาดหวังไว้ ผล. แต่เนื่องจากเขาสร้างการเข้ารหัสจาก P และไม่ใช่จาก Q รหัสของเขาจึงยาวเกินความจำเป็น KL-divergence ทำการวัดว่าจะใช้รหัสนานเท่าใด
ตอนนี้สมมติว่าเขามีเหรียญและเขาต้องการบอกลำดับของผลลัพธ์ที่คุณได้รับ เนื่องจากส่วนหัวและส่วนท้ายมีแนวโน้มเท่ากันเขาจึงให้ทั้งรหัส 1 บิต 0 สำหรับหัว 1 สำหรับหาง ถ้าเขาได้หางที่หัวหางเขาสามารถส่ง 1 1 0 1. ตอนนี้ถ้าเหรียญของเขาตกลงบนขอบเขาอาจไม่สามารถบอกคุณได้! ไม่มีรหัสที่จะส่งคุณจะทำงาน เมื่อมาถึงจุดนี้ KL-divergence ก็หยุดลง
เนื่องจาก KL-divergence หยุดลงคุณจะต้องใช้การวัดอื่นหรือการแจกแจงความน่าจะเป็นอื่น ๆ สิ่งที่คุณควรทำจริง ๆ ขึ้นอยู่กับสิ่งที่คุณต้องการ ทำไมคุณถึงเปรียบเทียบการแจกแจงความน่าจะเป็น การแจกแจงความน่าจะเป็นของคุณมาจากไหนพวกมันประมาณจากข้อมูลหรือไม่
คุณบอกว่าการแจกแจงความน่าจะเป็นนั้นมาจากเอกสารภาษาธรรมชาติและคุณต้องการเปรียบเทียบคู่หมวดหมู่
ก่อนอื่นฉันขอแนะนำการวัดความสัมพันธ์แบบสมมาตร สำหรับแอปพลิเคชันนี้ดูเหมือนว่า A จะคล้ายกับ B เป็น B คล้ายกับ A
คุณลองวัดความคล้ายคลึงกันแบบโคไซน์แล้วหรือยัง? มันค่อนข้างธรรมดาใน NLP
หากคุณต้องการใช้ KL สิ่งหนึ่งที่คุณทำได้คือการประเมินความน่าจะเป็นจากทั้งสองเอกสารแล้วดูว่าคุณต้องการบิตเพิ่มโดยเฉลี่ยสำหรับเอกสารใดเอกสารหนึ่ง นั่นคือ (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2
ในทางปฏิบัติฉันได้พบปัญหานี้เช่นกัน ในกรณีนี้ฉันพบว่าการแทนที่ค่า 0 สำหรับจำนวนที่น้อยมากอาจทำให้เกิดปัญหาได้ ขึ้นอยู่กับค่าที่คุณใช้คุณจะแนะนำ "อคติ" ในค่า KL หากคุณกำลังใช้ค่า KL สำหรับการทดสอบสมมติฐานหรือการใช้อื่น ๆ ที่เกี่ยวข้องกับเกณฑ์ดังนั้นค่าขนาดเล็กนี้อาจทำให้คุณมีอคติกับผลลัพธ์ ฉันได้พบว่าวิธีที่มีประสิทธิภาพที่สุดในการจัดการกับเรื่องนี้คือการพิจารณาการคำนวณ KL บนพื้นที่สมมุติฐานที่สอดคล้องกัน X_i ซึ่งทั้ง P และ Q ไม่เป็นศูนย์ โดยพื้นฐานแล้วสิ่งนี้จะ จำกัด โดเมนของ KL ไปยังโดเมนที่ทั้งคู่ถูกกำหนดและช่วยให้คุณหมดปัญหาเมื่อใช้ KL เพื่อทำการทดสอบสมมติฐาน
การแก้ปัญหาคือไม่อนุญาตให้มีความน่าจะเป็น 0 หรือ 1 ในการแจกแจงโดยประมาณ โดยปกติจะทำได้โดยการปรับให้เรียบเช่นการปรับให้เรียบแบบ Good-Turing, Dirichlet smoothing หรือ Laplace smoothing