จะวัดเอนโทรปีของไฟล์ได้อย่างไร?


9

ตอนนี้ฉันกำลังพยายามวัดข้อมูลที่ไม่ซ้ำซ้อน (จริง) ที่ไฟล์ของฉันมีอยู่ บางคนเรียกสิ่งนี้ว่าปริมาณของเอนโทรปี

แน่นอนว่ามีมาตรฐาน p (x) log {p (x)} แต่ฉันคิดว่าแชนนอนเป็นเพียงการพิจารณาจากมุมมองของการส่งผ่านแม้ว่าช่องสัญญาณ ดังนั้นสูตรต้องมีขนาดบล็อก (พูดเป็นบิตโดยทั่วไป 8) สำหรับไฟล์ขนาดใหญ่การคำนวณนี้ค่อนข้างไร้ประโยชน์โดยไม่คำนึงถึงความสัมพันธ์ระยะสั้นและระยะยาวระหว่างสัญลักษณ์

มีต้นไม้ไบนารีและวิธีการ Ziv-Lempel แต่สิ่งเหล่านี้ดูเหมือนเป็นเรื่องวิชาการในธรรมชาติ

ความสามารถในการบีบอัดก็ถือได้ว่าเป็นมาตรวัดของเอนโทรปี สำหรับไฟล์ hiss.wav ของฉัน

  • ต้นฉบับ hiss.wav = 5.2 MB
  • เอนโทรปีผ่านสูตรแชนนอน = 4.6 MB
  • hiss.zip = 4.6 MB
  • hiss.7z = 4.2 MB
  • hiss.wav.fp8 = 3.3 MB

มีวิธีการปฏิบัติที่สมเหตุสมผลในการวัดปริมาณเอนโทรปีใน hiss.wav หรือไม่?


1
ฉันไม่เข้าใจสิ่งที่คุณหมายถึงโดย "นักวิชาการสูง"
David Richerby

อ๊อดตาย ฉันคิดว่าด้วยจำนวนเงินวิจัยทั่วโลกที่ใช้ในการเพิ่มการส่งและจัดเก็บข้อมูลจะมีวิธีที่พัฒนาขึ้นมากขึ้นในการประเมินว่าคุณมีปัญหาเรื่องการสาปแช่งมากแค่ไหน ฉันไม่คิดว่ามันจะเกินขอบเขตของความเป็นไปได้ที่จะมียูทิลิตี้ไฟล์ที่คุณส่งผ่านข้อมูลบางส่วนที่ส่งผลการประมาณการเอนโทรปีเชิงทฤษฎี ผู้ผลิต telcos และดิสก์กำลังเล่นอะไรกันอยู่
พอล Uszak

คำตอบ:


9

เอนโทรปีเป็นคุณลักษณะของเป็นตัวแปรสุ่ม ไฟล์ที่ได้รับมีศูนย์ entropy เนื่องจากมันคง เอนโทรปีมีความหมายในหลาย ๆ สถานการณ์ที่ไม่มีช่องสัญญาณและคุณสามารถนำไปใช้กับชุดสุ่มพูดไฟล์ WAV ที่สร้างจากแหล่งที่กำหนด ในกรณีนี้ของคุณคือไฟล์ WAV ทั้งหมดx

ไฟล์ WAV จริง (ไม่รวมส่วนหัว) สามารถคิดได้ว่าถูกสร้างขึ้นโดยแหล่งที่มาของ Markovian บางแห่ง แหล่งที่มานี้สร้างเสียงแอมพลิจูด ("ตัวอย่าง") ตามลำดับแต่ละอันขึ้นอยู่กับเสียงที่มาก่อน หลังจากรันกระบวนการเป็นเวลานานเอนโทรปีของแต่ละตัวอย่าง (ถูกต้องมากขึ้นเงื่อนไขเอนโทรปีของตัวอย่างก่อนหน้า) จะใกล้เคียงกับค่า จำกัด บางอย่างซึ่งเรากำหนดให้เป็นเอนโทรปีของแหล่งที่มา เอนโทรปีของตัวอย่างคือคูณจำนวนนั้น (ในขีด จำกัด ; ยิ่งแม่นยำยิ่งขึ้นเรากำลังวัดค่าเอนโทรปีแบบมีเงื่อนไข) Lempel และ Ziv แสดงให้เห็นว่าถ้าเอนโทรปีของตัวอย่างเป็นบิตดังนั้นอัลกอริธึมของพวกมันจะบีบตัวอย่างไปยังNNHNHN+o(N)บิตที่มีความน่าจะเป็นสูง (ความน่าจะเป็นสูงกว่าตัวอย่าง) การบีบอัด Lempel – Ziv ค่อนข้างเป็นที่นิยมในทางปฏิบัติเช่นใช้ในgzipรูปแบบที่นิยม

เนื่องจากผลลัพธ์ของ Lempel และ Ziv นี้ทำให้เอนโทรปีของแหล่งข้อมูลสามารถประมาณได้โดยการบีบตัวอย่างลำดับที่ยาวนานโดยใช้อัลกอริทึม Lempel – Ziv สิ่งนี้ไม่ได้ประเมินเอนโทรปีของตัวอย่างที่เฉพาะเจาะจงซึ่งไม่ใช่แนวคิดที่กำหนดไว้อย่างดี (ลำดับที่คงที่มีศูนย์เอนโทรปี) แต่เป็นเอนโทรปีของแหล่งที่มาที่สร้างมันขึ้นมา

แนวคิดที่เกี่ยวข้องคือเอนโทรปีของอัลกอริทึมที่เรียกว่าเป็นความซับซ้อน Kolmogorov มันเป็นความยาวของโปรแกรมที่สั้นที่สุดที่สร้างไฟล์ของคุณ ปริมาณนี้เหมาะสมสำหรับแต่ละไฟล์ ในกรณีของไฟล์ที่สร้างขึ้นโดยแหล่งสุ่มทฤษฎีบท Lempel – Ziv แสดงให้เห็นว่าเอนโทรปีของอัลกอริทึมของไฟล์ถูกล้อมรอบด้วยความน่าจะเป็นสูงโดยเอนโทรปีของแชนนอน น่าเสียดายที่เอนโทรปีของอัลกอริทึมไม่สามารถคำนวณได้ดังนั้นจึงเป็นแนวคิดทางทฤษฎีมากกว่า

เพื่อให้ภาพสมบูรณ์ฉันขอแนะนำให้อ่านกระดาษของ Shannon เรื่องPrediction และ entropy ของภาษาอังกฤษที่พิมพ์ออกมาเพื่อหาวิธีอื่นในการประมาณค่าเอนโทรปีของแหล่งข้อมูล


ฉันมี. และกระดาษ Schurmann & Grassberger จากเอนโทรปีที่ประมาณการของพวกเขาสำหรับภาษาอังกฤษดูเหมือนว่าการประมาณค่าเอนโทรปีที่ดีที่สุดที่เราสามารถทำได้คือผ่านการบีบอัดด้วยตัวแปร PAQ8 เช่น fp8 มีและผลลัพธ์ของฉันแต่งงานค่อนข้างดีสำหรับร้อยแก้วของเชกสเปียร์
Paul Uszak

ปัญหาดูเหมือนว่าแม้ว่าฉันจะคิดว่าจะต้องมีค่าทางทฤษฎีที่ จำกัด สำหรับเอนโทรปีของแหล่งที่มา ความมุ่งมั่นโดยการบีบอัดสะท้อนให้เห็นถึงประสิทธิภาพของขั้นตอนวิธีการบีบอัดเท่านั้น สังเกตุ gzip ของคุณดี แต่ 7z ดีกว่า และ fp8 นั้นดีขึ้นมากตามที่ปรากฏในคำถามของฉัน ฉันจะพบว่า hiss.wav มีเอนโทรปีทั้งหมด 10 ไบต์เท่านั้นเมื่อฉันใช้ fp12000 ในอนาคตอันไกล?
Paul Uszak

เอนโทรปีไม่ใช่คุณสมบัติของไฟล์ ทุกไฟล์ของแต่ละคนมีศูนย์เอนโทรปี ค่อนข้างเอนโทรปีเป็นคุณสมบัติของแหล่งที่มาแบบสุ่ม การวัดแบบสุ่มที่เหมาะสมสำหรับไฟล์เฉพาะคือความซับซ้อนของ Kolmogorov (หรือเรียกอีกอย่างว่าเอนโทรปีของอัลกอริทึม) แต่น่าเสียดายที่การวัดนี้ไม่สามารถคำนวณได้
Yuval Filmus

เมื่อคุณกำลังบีบอัดไฟล์เพื่อประมาณค่าเอนโทรปีของแหล่งข้อมูลคุณใช้ทฤษฎีบทที่รับประกันว่าอัตราการบีบอัดข้อมูลที่สร้างโดยแหล่งข้อมูลจะเข้าใกล้เอนโทรปีของแหล่งที่มา อย่างไรก็ตามยูทิลิตี้การบีบอัดจริงไม่ได้ใช้อัลกอริทึมของวานิลลา Lempel – Ziv แต่เป็นเวอร์ชั่นที่ใช้งานได้จริงมากกว่า หากคุณต้องการประเมินเอนโทรปีบางทีคุณควรปรับใช้อัลกอริทึมใหม่โดยคำนึงถึงเป้าหมายนี้
Yuval Filmus

ฉันลบการสนทนาที่ไม่สร้างสรรค์ ความคิดเห็นไม่ได้มีไว้สำหรับการสนทนาที่มีความยาวยกเว้นการปรับปรุงการโพสต์ในมือ หากคุณต้องการพูดคุยเรื่องของเอนโทรปีโดยสุจริตโปรดสร้างห้องแชท อย่าลืมเก็บมันไว้ด้วย
ราฟาเอล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.