อัลกอริธึมการบีบอัดแบบ lossless ลดเอนโทรปีหรือไม่?


35

ตามที่Wikipedia :

เอนโทรปีของแชนนอนวัดข้อมูลที่มีอยู่ในข้อความซึ่งตรงข้ามกับส่วนของข้อความที่ถูกกำหนด (หรือคาดเดาได้) ตัวอย่างหลัง ได้แก่ ความซ้ำซ้อนในโครงสร้างภาษาหรือคุณสมบัติทางสถิติที่เกี่ยวข้องกับความถี่ที่เกิดขึ้นของตัวอักษรคู่หรือคำคู่สามเท่าเป็นต้น

ดังนั้นเอนโทรปีคือการวัดปริมาณข้อมูลที่มีอยู่ในข้อความ เอนโทรปี coders ถูกใช้เพื่อ losslessy บีบอัดข้อความเช่นนี้ไปยังจำนวนบิตขั้นต่ำที่จำเป็นในการแสดงมัน (เอนโทรปี) สำหรับฉันแล้วดูเหมือนว่าเอนโค้ดปีที่สมบูรณ์แบบจะเป็นสิ่งที่จำเป็นสำหรับการบีบอัดข้อความแบบไม่สูญเสียให้มากที่สุดเท่าที่จะทำได้

อัลกอริธึมการบีบอัดจำนวนมากใช้ขั้นตอนก่อนที่จะทำการเข้ารหัสเอนโทรปีเพื่อลดการส่งข้อความ

ตามที่วิกิพีเดียภาษาเยอรมัน

Entropiekodierer werden häufig mit anderen Kodierern kombiniert. คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ Verfahren dazu, Entropie der Daten zu verringern

เป็นภาษาอังกฤษ:

เอนโทรปีโคเดอร์มักจะถูกรวมเข้ากับเอนโค้ดเดอร์อื่น ๆ ขั้นตอนก่อนหน้านี้ทำหน้าที่ลดปริมาณข้อมูลของเอนโทรปี

ie bzip2 ใช้ Burrows-Wheeler-Transform แล้วตามด้วย Move-to-Front-Transform ก่อนที่จะใช้การเข้ารหัสแบบเอนโทรปี (Huffman การเข้ารหัสในกรณีนี้)

ขั้นตอนเหล่านี้ลดความเป็นเอนโทรปีของข้อความซึ่งจะลดปริมาณข้อมูลที่มีอยู่ในข้อความหรือไม่ ดูเหมือนจะขัดแย้งกับฉันเพราะนั่นหมายความว่าข้อมูลสูญหายระหว่างการบีบอัดป้องกันการบีบอัดแบบไม่สูญเสีย หรือพวกเขาเพียงแปลงข้อความเพื่อปรับปรุงประสิทธิภาพของอัลกอริทึมการเข้ารหัสเอนโทรปี? หรือเอนโทรปีไม่สอดคล้องกับปริมาณข้อมูลในข้อความโดยตรงหรือไม่?


1
อาจเป็นวิธีการประมาณค่าเอนโทรปีได้
ท่อ

คำตอบ:


39

คำอธิบายทั่วไปของเอนโทรปีทำให้เกิดความสับสนในลักษณะนี้เพราะเอนโทรปีไม่ได้เป็นระเบียบและเป็นระเบียบเท่าที่นำเสนอบางครั้ง โดยเฉพาะอย่างยิ่งคำจำกัดความมาตรฐานของเอนโทรปีของแชนนอนกำหนดว่าจะใช้เฉพาะเมื่อตามที่วิกิพีเดียระบุไว้ว่า "ข้อมูลเนื่องจากกิจกรรมอิสระนั้นเป็นส่วนเสริม"

กล่าวอีกนัยหนึ่งกิจกรรมอิสระต้องเป็นอิสระทางสถิติ หากไม่เป็นเช่นนั้นคุณต้องค้นหาการแสดงข้อมูลที่กำหนดเหตุการณ์ด้วยวิธีที่ทำให้พวกเขาเป็นอิสระอย่างแท้จริง มิฉะนั้นคุณจะประเมินค่าสูงกว่าค่าเอนโทรปี

เมื่อต้องการใส่อีกวิธีหนึ่งแชนนอนเอนโทรปีใช้กับการแจกแจงความน่าจะเป็นที่แท้จริงเท่านั้นและไม่ใช้กับกระบวนการสุ่มโดยทั่วไป สำหรับตัวอย่างที่เป็นรูปธรรมของกระบวนการที่ไม่สอดคล้องกับสมมติฐานของเอนโทรปีของแชนนอนให้พิจารณา ...

กระบวนการมาร์คอฟ

กระบวนการมาร์คอฟสร้างชุดของเหตุการณ์ที่มีการสุ่มตัวอย่างเหตุการณ์ล่าสุดจากการกระจายที่ขึ้นอยู่กับเหตุการณ์ก่อนหน้านี้หนึ่งเหตุการณ์ขึ้นไป เห็นได้ชัดว่าปรากฏการณ์ในโลกแห่งความจริงจำนวนมากนั้นถูกสร้างแบบจำลองกระบวนการของมาร์คอฟได้ดีกว่าการแจกแจงความน่าจะเป็นแบบแยกอิสระ ตัวอย่างเช่น: ข้อความที่คุณกำลังอ่านอยู่ตอนนี้!

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

H(S)=-ΣผมพีผมΣJ พีผม(J)เข้าสู่ระบบพีผม(J)

สิ่งนี้สามารถแสดงได้เช่น :

H(Y)=-ΣผมJμผมPผมJเข้าสู่ระบบPผมJ

การอ้างถึง Wikipedia อีกครั้งที่นี่ "เป็นการกระจายแบบไม่ระบุชื่อของโซ่" - นั่นคือความน่าจะเป็นโดยรวมที่เหตุการณ์หนึ่ง ๆ จะเกิดขึ้นในระยะยาวμผม

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

  • พวกเขาวิ่งไปที่ต้นไม้
  • ต้นไม้วิ่งมาหาพวกเขา
  • ต้นไม้ที่พวกเขาวิ่ง

แต่เอนโทรปีของแชนนอนจะประเมินทั้งสามสายอย่างเท่าเทียมกัน เอนโทรปีของกระบวนการมาร์คอฟนั้นจะคำนึงถึงความแตกต่างและด้วยเหตุนี้มันจึงกำหนดอัตราเอนโทรปีที่ต่ำลงให้กับกระบวนการ

อัตราเอนโทรปีขึ้นอยู่กับรุ่น

ถ้าคุณซูมออกไปนี่เป็นภาพใหญ่: อัตราเอนโทรปีของลำดับเหตุการณ์ที่กำหนดจากแหล่งที่ไม่รู้จักขึ้นอยู่กับแบบจำลอง คุณจะกำหนดอัตราเอนโทรปีที่แตกต่างให้กับชุดของเหตุการณ์ที่เฉพาะเจาะจงขึ้นอยู่กับวิธีที่คุณสร้างแบบจำลองกระบวนการที่สร้างพวกเขา

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

ความหมายในทางปฏิบัติคือเมื่อไม่ทราบแหล่งที่มาของเหตุการณ์แบบจำลองที่แตกต่างกันจะให้ผลลัพธ์ที่แตกต่างกันและเป็นไปไม่ได้ที่จะรู้ว่าสิ่งใดถูกต้องในระยะยาว - แม้ว่าสิ่งที่กำหนดเอนโทรปีต่ำที่สุด


2
ขอบคุณมาก! สิ่งนี้อธิบายได้อย่างสมบูรณ์ว่าความผิดพลาดในการให้เหตุผลของฉันคืออะไร
เบิร์ต

คำตอบของคุณจะดียิ่งขึ้นหากมีข้อมูลภาพและตัวขยายเสียงเป็นตัวอย่างของกระบวนการที่ทำแบบจำลอง ในตัวอย่างเช่นการบีบอัดข้อมูล LZ แบบจำลองจะสมมติเครื่อง (ถอดรหัส) ที่ทำหน้าที่เป็นคำสั่งอินพุตเช่น (D, L):“ คัดลอกไปยังสัญลักษณ์ L ที่ต่อเนื่องกันจากสัญลักษณ์ L จาก offset D เมื่อเทียบกับตำแหน่งเอาต์พุตปัจจุบัน” หรือ (c):“ คัดลอกสัญลักษณ์ c ไปยังตำแหน่งเอาต์พุตปัจจุบัน” ตัวเข้ารหัส LZ จะแปลงกระแสข้อมูลสัญลักษณ์อินพุตเป็นภาษาคำสั่งของตัวถอดรหัสและสตรีมสัญลักษณ์คำสั่งนั้นมีเอนโทรปี (และความยาว) ที่แตกต่างจากสตรีมที่เข้ารหัส การบีบอัดชนิดอื่นมีเครื่องจักรต่างกัน
piiperi

@piiperi ซึ่งฟังดูมีประโยชน์ฉันไม่ทราบรายละเอียดใด ๆ เลย (ฉันมาที่คำถามจากมุมมองการเรียนรู้ของเครื่อง)
senderle

@ ผู้ส่งฉันหมายถึงการขยายบท "อัตราเอนโทรปีขึ้นอยู่กับรุ่น" ด้วยตัวอย่างกระบวนการที่เป็นรูปธรรม คุณพูดถึงกระบวนการที่สร้างเหตุการณ์และข้อมูลภาพวิดีโอเสียง ฯลฯ องค์ประกอบการประมวลผลของคอมเพรสเซอร์สามารถมองเห็นได้เป็นกระบวนการดังกล่าว เอนโทรปีที่แท้จริงคือขั้นตอนสุดท้ายของขั้นตอนการบีบอัดข้อมูล ไม่มีขั้นตอนไปป์ไลน์จริงๆ "ลดเอนโทรปี" แต่แต่ละคำสั่งจะสร้างคำแนะนำสำหรับเครื่องที่สามารถสร้างสตรีมสัญลักษณ์ดั้งเดิมได้ และแต่ละกระแสการเรียนการสอนมีเอนโทรปีที่แตกต่างกันและมักจะมีความยาวแตกต่างกัน (เช่นสั้นกว่า)
piiperi

12

ไม่ถ้าอัลกอริธึมไม่มีการสูญเสียขั้นตอนในลำดับการบีบอัดสามารถลดเอนโทรปี - มิฉะนั้นจะไม่สามารถแตก / ถอดรหัสได้ อย่างไรก็ตามเอนโทรปีเพิ่มเติมอาจถูกเก็บไว้ในข้อมูล 'นอกวง' เช่นรายการที่ต้องได้รับการบำรุงรักษาเพื่อถอดรหัสการแปลงแบบย้ายไปด้านหน้า


ดังนั้นขั้นตอนเพิ่มเติมที่ใช้ในอัลกอริธึมการบีบอัดก่อนการเข้ารหัสแบบเอนโทรปีเพิ่งใช้เพื่อให้เอนโทรปีเตอร์โค้ดใกล้เข้ามามากขึ้นเอนโทรปีหรือไม่ เอนโค้ดปีไม่ได้เข้าใกล้เอนโทรปีของตัวเองเมื่อนำไปใช้กับข้อความที่กำหนดหรือไม่?
เบิร์ต

แน่นอนมันไม่ได้ (ดีขึ้นอยู่กับความหมายที่แน่นอนของ "ปิด")
Grimmy

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

ไม่การแปลงแบบย้ายไปด้านหน้าไม่ได้ส่งรายการแยกที่ต้องโอนไปยังตัวถอดรหัส เว้นแต่คุณจะหมายถึงรายการเริ่มต้น
user253751

แอ๊ะคุณขวาที่ไม่ได้เป็นตัวอย่างที่ดีที่สุด :)
ลุค Schwartzkopff

6

พวกเขาลดเอนโทรปีที่เห็นได้ชัดโดยธรรมชาติในโครงสร้างของข้อความต้นฉบับ หรือกล่าวอีกนัยหนึ่งพวกเขาปรับข้อความเพื่อใช้ประโยชน์จากจุดแข็งของขั้นตอนการบีบอัดถัดไป

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

อีกตัวอย่างที่แท้จริงของโลกคือการบีบอัด png มันคือเอนโทรปีคอมเพรสเซอร์คือ DEFLATE ซึ่งเป็นการผสมผสานระหว่าง Lempel-Ziff และ Huffman ซึ่งหมายความว่าทำงานได้ดีที่สุดกับค่าและรูปแบบที่ทำซ้ำบ่อยๆ พิกเซลที่อยู่ติดกันส่วนใหญ่มักจะเป็นสีที่คล้ายกัน ดังนั้นแต่ละแถวจะถูกกำหนดตัวกรองซึ่งเปลี่ยนค่าพิกเซลดั้งเดิมเป็นการเข้ารหัสที่แตกต่างกัน วิธีนี้ค่าที่ลงท้ายด้วยการเข้ารหัสโดย DEFLATE ส่วนใหญ่จะใกล้เคียงกับ 0 ในกรณีนี้จะทำให้การไล่ระดับสีที่ราบรื่นจากค่าที่แตกต่างกันทั้งหมดเป็นค่าเดียวตลอดทั้งแถวซึ่งส่วน LZ หรือ DEFLATE ทำงานได้อย่างรวดเร็วมาก


นั่นหมายความว่าเอนโทรปีที่เห็นได้ชัดนั้นแตกต่างจากเนื้อหาข้อมูลจริงของข้อความหรือไม่? มันเกี่ยวข้องกับเอนโทรปีของข้อความอย่างไร
เบิร์ต

ด้วย "ชัดเจนเอนโทรปี" ฉันหมายถึงเอนโทรปีที่เอนโทรปีเข้ารหัสสามารถบีบอัดลงไป ตัวเข้ารหัสที่แตกต่างกันจะมีรูปแบบต่าง ๆ ที่พวกเขาค้นหา Huffman ทำได้ดีที่สุดเมื่อมีการใช้สัญลักษณ์ซ้ำสองสามตัวบ่อยครั้งบ่อยครั้ง lempel-ziff จะดีที่สุดเมื่อทำซ้ำชิ้น ฯลฯ
ratchet freak

แต่อัลกอริธึม Lempel-Ziv ไม่ใช่การเข้ารหัสแบบเอนโทรปีใช่ไหม? สิ่งที่ฉันไม่เข้าใจคือเหตุผลที่พวกเขาถูกใช้งานก่อน coders ของเอนโทรปีใน LZMA เมื่อเอนโทรปีของ coder นั้นสามารถบีบอัดข้อความลงไปจนเหลือน้อยที่สุดแล้ว
เบิร์ต

1
@ kutschkem นี่หมายความว่าเอนโทรปีไม่ได้เป็นการวัดที่สมบูรณ์ของเนื้อหาข้อมูลของข้อความ แต่สัมพันธ์กับสิ่งที่กำหนดเป็นสัญลักษณ์ (เช่นตัวละครตัวเดียวถือเป็นสัญลักษณ์เทียบกับ 1 บิตที่ถือว่าเป็นสัญลักษณ์)? ฉันคิดว่าจะอธิบายว่าข้อสันนิษฐานของฉันผิดตรงไหน
เบิร์ต

1
@robert ... มีข้อเสียเปรียบซึ่งเป็นข้อมูล "out-of-band" ที่ลุคกล่าวถึงในคำตอบของเขาซึ่งโดยทั่วไปแล้วจะถูกเพิ่มด้วยขั้นตอนเหล่านั้น (ตารางการค้นหาเพื่อถอดรหัสข้อมูลที่เข้ารหัส) ดังนั้นจึงไม่มีเหตุผลที่จะนิยามเนื้อหาทั้งหมดเป็นสัญลักษณ์เดียวและเข้ารหัสเป็น 0 เพราะจะต้องมีการจัดเก็บข้อมูลที่เข้ารหัส 0 นี้
kutschkem

6

เอนโทรปี coders ไม่บีบอัดข้อความจำนวนบิตขั้นต่ำที่จำเป็นในการเป็นตัวแทน ฉันรู้ว่ามันดึงดูดความคิด แต่ก็ไม่ใช่สิ่งที่พวกเขาทำ พวกเขาไม่ใช่เวทมนตร์และไม่สามารถบรรลุเป้าหมายนั้นได้

พวกเขาทำสิ่งที่มหัศจรรย์น้อยลงเล็กน้อย แต่ก็ยังมีประโยชน์ สมมติว่าเรารู้ว่าตัวละครแต่ละข้อความได้รับการคัดเลือกโดยอิสระจากการแจกแจงบางอย่าง จากนั้นมันจะเป็นไปได้ที่จะสร้างอัลกอริธึมการบีบอัดแบบ lossless ที่บีบอัดข้อความอย่างเหมาะสมที่สุด อัลกอริทึมเหล่านี้เรียกว่าเอนโค้ดปีเอนโค้ดเดอร์

ตอนนี้ข้อความจริงมักจะไม่มีคุณสมบัติความเป็นอิสระ ตัวอย่างเช่นหากคุณเห็น Q อาจเป็นไปได้ว่าตัวอักษรถัดไปคือ U เป็นต้น ยังคงเป็นไปได้ที่จะใช้อัลกอริธึมการเข้ารหัสเอนโทรปีกับข้อความจริง อัลกอริทึมจะยังคงไม่สูญเสียมันยังคงสามารถใช้สำหรับการบีบอัดและในทางปฏิบัติมันมักจะสั้นลงความยาวของข้อความ อย่างไรก็ตามจะไม่ย่อให้สั้นสุดเท่าที่จะเป็นไปได้ ไม่บีบอัดข้อความถึงสิ่งที่ความยาวเท่ากับเอนโทรปีของข้อความ มันบีบอัดมันน้อยกว่านั้น

เมื่อคุณตระหนักถึงคุณสมบัติของเอนโค้ดปีเอนโทรปีแล้วบุคคลที่ผิดธรรมดาก็จะระเหยไป

โดยทั่วไปขั้นตอนที่ไม่มีการสูญเสียใด ๆ จะไม่ลดเอนโทรปีของข้อความ อย่างไรก็ตามมันอาจทำให้ข้อความในรูปแบบที่อัลกอริทึมการบีบอัดอื่น ๆ มีประสิทธิภาพมากขึ้นดังนั้นจึงอาจยังคงมีประโยชน์ (โดยเฉลี่ย) ในทางปฏิบัติ


2

คำว่า "เอนโทรปี" หากมักจะใช้บิตอย่างอิสระเพื่ออ้างถึงสองสิ่งที่แตกต่าง:

  • "จำนวนข้อมูลทั้งหมด" ในข้อความหรือระบบ

  • ข้อมูล "ความหนาแน่น" หรือข้อมูลที่บรรจุแน่น

คำกล่าวอ้างของ OP ของรายการ Wikipedia สำหรับhttps://en.wikipedia.org/wiki/Entropy_(information_theory)หมายถึงตัวแรก:

Shannon's entropy measures the information contained in a message

แต่ (อย่างน้อยตอนที่ฉันเขียนบทความนี้) บทความเดียวกันเริ่มต้นด้วย:

Information entropy is the average rate at which information is produced by a stochastic source of data.

ดังนั้นหนึ่งคือจำนวนและหนึ่งคืออัตรา (คล้ายกับระยะทางเทียบกับความเร็ว) บางครั้งเรียกว่าคุณสมบัติ "กว้างขวาง" และ "เข้มข้น" (ดูhttps://en.wikipedia.org/wiki/Intensive_and_extensive_properties#Extensive_properties )

ตัวอย่างคลาสสิกของความแตกต่างคือสัญญาณโคมไฟที่โด่งดังของ Paul Revere: "หนึ่งต่อแผ่นดินและสองทางทะเล" ข้อมูลทั้งหมด 1 บิต (ถ้าเราเพิกเฉยกรณี "ไม่มีถ้าฉันยังไม่ได้ไปที่ North Church") หากพอลเพิ่มโคมไฟอีกชุดหนึ่งในแต่ละหน้าต่างของอาคารนั่นจะเป็น '' 'ซ้ำซ้อน' '': ไม่มีข้อมูลเพิ่มเติมดังนั้นเอนโทรปี "รวม" หรือ "กว้างขวาง" เดียวกัน แต่มีความยาวข้อความมากกว่าเอนโทรปี "แบบเข้มข้น" ที่ต่ำกว่ามาก

ถ้าเขาเริ่มต้นด้วยวิธีนี้ แต่เปลี่ยนไปใช้โคมไฟเพียงชุดเดียวนั่นคือ "การบีบอัดแบบไม่สูญเสีย" เหมือนในคำถามของ OP เอนโทรปี "ที่กว้างขวาง" นั้นเหมือนกัน แต่เอนโทรปี "แบบเข้มข้น" นั้นแตกต่างกัน: เนื่องจากจำนวนของตะเกียงในหน้าต่างที่ 2 มีความสัมพันธ์อย่างมากกับจำนวนที่คุณเห็นในครั้งแรกข้อความซ้ำซ้อนจึงสามารถคาดเดาได้มากขึ้นหรือ สุ่มน้อยกว่าจึงมีเอนโทรปีที่เข้มข้นน้อยกว่ามาก

มีสองสิ่งสำคัญอื่น ๆ ที่ควรจดจำ:

  • อันดับแรกเรามักจะไม่ทราบว่าเอนโทรปีของ "จริง" ของระบบในแง่ใดแง่หนึ่ง บ้านใกล้เรือนเคียงไร้เดียงสาไม่ทราบว่า "3 ตะเกียง" จะเป็นข้อความที่แตกต่างกันหรือว่าสัญญาณในหน้าต่างที่แตกต่างกันจะซ้ำซ้อนหรือไม่ ถ้าพอลเป็นคนขับรถเป็นประจำเราสามารถนับและดูว่าหน้าต่างตรงกันกันหรือไม่ แต่บางทีเราไม่ได้ดูนานพอที่จะเห็นข้อยกเว้นที่หายาก (และอาจสำคัญ!)

  • ประการที่สองมันสำคัญสำหรับคุณวัด ลองพยายามประเมินว่าจดหมายของแต่ละข้อความมีการติดต่อกันมากน้อยเพียงใด (นั่นคืออัตราดังนั้นเอนโทรปี "แบบเข้มข้น" หรือบางครั้งเรียกว่า "เอนโทรปีแบบสัมพัทธ์"):

    • หากคุณเพิ่งสังเกตเห็นว่ามีคนส่งข้อความไปรอบ ๆ ในหน่วย 8 บิต "ประมาณการ" ครั้งแรกของคุณอาจเป็น 8 บิตต่อตัวอักษร
    • หากคุณนับจำนวนตัวอักษรที่แตกต่างกันคุณจะประมาณค่า log2 (26) หรือ 4.7 บิตต่อตัวอักษร (สูงขึ้นอีกเล็กน้อยหากคุณพิจารณาว่ามีช่องว่างตัวพิมพ์เล็กและใหญ่)
    • หากคุณพิจารณาว่า "e" เป็นทางออกที่ดีกว่าสำหรับ "จดหมายถัดไป" มากกว่า "z" คุณจะวัดความถี่จดหมายและรับ 4.14 (ดูhttp://people.seas.harvard.edu/~jones/cscie129/) เอกสาร / stanford_info_paper / entropy_of_english_9.htm )
    • หากคุณนับคู่ตัวอักษรคุณจะพบกับรูปแบบเช่น "qu", "th" ฯลฯ และรับประมาณ 3.56
    • หากคุณนับลำดับของตัวอักษรได้สูงสุด 5 ตัวคุณจะได้รับค่าที่ต่ำกว่าและเป็นโบนัสที่คุณสามารถแยกแยะความแตกต่างของภาษาที่ใช้ในภาษามนุษย์ได้)
    • หากคุณเป็นคนใจแข็งและฉลาดเหมือน NG Burton และ JCR Licklider ใน "ข้อ จำกัด ระยะยาวในโครงสร้างทางสถิติของการพิมพ์ภาษาอังกฤษ" (American Journal of Psychology 68 (1955)) คุณสามารถรับลำดับสูงสุด 10 0000 ตัวอักษรในแถวและค้นหาอีกค่าเอนโทรปี

แต่แน่นอนว่าข้อความสามารถ (และทำ) มีรูปแบบมากมายที่ไม่ได้ถูกจำลองโดยวิธีการแบบ n-gram ดังนั้นเอนโทรปี "ของจริง" จึงยังคงต่ำกว่า

หากคุณจำลองแหล่งที่มาทางทฤษฎีด้วยการแจกโทเค็น Zipfian แบบสุ่มอย่างสมบูรณ์แบบคุณสามารถคำนวณเอนโทรปีที่กว้างขวางและเข้มข้นได้ซึ่งจะขึ้นอยู่กับจำนวนโทเค็นที่แตกต่างกันเท่านั้น กราฟของสิ่งที่ประเภทของรูปลักษณ์เอนโทรปีของแต่ละชอบเป็นตัวเลขที่เพิ่มขึ้นอยู่ใน [ http://www.derose.net/steve/writings/dissertation/Diss.0.html] ทั้งสองประพฤติค่อนข้างแตกต่าง:

หวังว่าจะช่วยหรือน่าสนใจอย่างน้อย ...


1

ฉันสงสัยว่าถ้อยคำในวิกิพีเดียภาษาเยอรมันผิดพลาด คอมเพรสเซอร์เพิ่มเอนโทรปี กล่าวคือไม่ใช่เอนโทรปีโดยรวม แต่เป็นเอนโทรปีต่อบิต : ความหนาแน่นของข้อมูล เช่นการเข้ารหัสความยาวรันและรูปแบบพจนานุกรมถูกนำไปใช้เพื่อย่อข้อมูล ตอนนี้ข้อมูลเดียวกันจะถูกบรรจุในบิตที่น้อยลงดังนั้นแต่ละบิตจึงมีข้อมูลมากขึ้น การเข้ารหัส Huffman ที่ตามมาทำแบบเดียวกันเล็กน้อย มันเป็นแค่การอัดอีกชั้นหนึ่ง

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