Làm thế nào để thực tế đo entropy của một tập tin?


9

Tôi đang cố gắng đo lường nhiều thông tin không thực tế (thực tế) mà tập tin của tôi chứa. Một số người gọi đây là lượng entropy.

Tất nhiên có nhật ký p (x) {p (x)} tiêu chuẩn, nhưng tôi nghĩ rằng Shannon chỉ xem xét nó từ quan điểm truyền qua một kênh. Do đó công thức yêu cầu kích thước khối (nói theo bit, 8 thường). Đối với một tệp lớn, phép tính này khá vô dụng, bỏ qua các mối tương quan khoảng cách ngắn đến dài giữa các ký hiệu.

Có các phương pháp cây nhị phân và Ziv-Lempel, nhưng chúng có vẻ mang tính học thuật cao.

Độ nén cũng được coi là thước đo của entropy, nhưng dường như không có giới hạn nào thấp hơn về mức độ nén. Đối với tập tin của tôi hiss.wav,

  • hiss.wav gốc = 5,2 MB
  • entropy thông qua công thức Shannon = 4,6 MB
  • hiss.zip = 4,6 MB
  • rít.7z = 4.2 MB
  • hiss.wav.fp8 = 3,3 MB

Có một số phương pháp hợp lý có thể thực hiện để đo bao nhiêu entropy tồn tại trong hiss.wav?


1
Tôi không hiểu ý của bạn là "học thuật cao".
David Richerby

Chết rồi Tôi đã nghĩ rằng với quy mô đô la nghiên cứu được sử dụng trên toàn cầu để tối đa hóa việc truyền tải và lưu trữ dữ liệu, sẽ có một cách phát triển hơn để ước tính số lượng công cụ mà bạn thực sự phải đối phó. Tôi sẽ không nghĩ rằng nó vượt ra ngoài khả năng sẽ có một tiện ích tệp mà bạn chuyển qua một số dữ liệu đưa ra ước tính entropy lý thuyết. Các nhà sản xuất công ty viễn thông và đĩa đang chơi gì?
Paul Uszak

Câu trả lời:


9

Entropy là một tính năng của một biến ngẫu nhiên . Một tập tin nhất định có entropy bằng không, vì nó là hằng số. Entropy có ý nghĩa trong nhiều tình huống trong đó không có kênh và bạn có thể áp dụng nó cho một tập hợp ngẫu nhiên, giả sử, các tệp WAV, được tạo từ một nguồn nhất định. Trong trường hợp này, của bạn là toàn bộ tệp WAV.x

Tệp WAV thực tế (không bao gồm tiêu đề) có thể được coi là được tạo bởi một số nguồn Markovian. Nguồn này tạo ra các biên độ âm thanh ("mẫu") theo một chuỗi, mỗi cái tùy thuộc vào những cái trước nó. Sau khi chạy quá trình rất lâu, entropy của từng mẫu (chính xác hơn là entropy có điều kiện cho các mẫu trước) rất gần với một số giá trị giới hạn, mà chúng tôi xác định là entropy của nguồn. Entropy của mẫu là lần số đó (trong giới hạn; một lần nữa, chính xác hơn, chúng tôi đang đo entropy có điều kiện). Lempel và Ziv đã chỉ ra rằng nếu entropy mẫu là các bit , thì thuật toán của họ nén mẫu thànhNNHNHN+o(N)bit, với xác suất cao (xác suất vượt qua các mẫu). Nén LempelTHER Ziv khá phổ biến trong thực tế, được sử dụng ví dụ trong gzipđịnh dạng phổ biến .

Do kết quả này của Lempel và Ziv, entropy của một nguồn có thể được xấp xỉ bằng cách nén một chuỗi dài các mẫu bằng thuật toán Lempel kèm Ziv. Điều này không ước tính entropy của các mẫu cụ thể, không phải là một khái niệm được xác định rõ (một chuỗi không đổi có entropy bằng 0), mà là entropy của nguồn tạo ra nó.

Một khái niệm liên quan là entropy thuật toán , còn được gọi là độ phức tạp Kolmogorov . Đây là độ dài của chương trình ngắn nhất tạo tệp của bạn. Số lượng này có ý nghĩa cho một tập tin cá nhân. Trong trường hợp một tệp được tạo bởi một nguồn ngẫu nhiên, định lý Zemp của Lempel cho thấy rằng entropy thuật toán của một tệp bị giới hạn, với xác suất cao, bởi entropy Shannon của nó. Thật không may, entropy thuật toán không thể tính toán được, vì vậy nó giống như một khái niệm lý thuyết.

Để hoàn thành bức tranh, tôi khuyên bạn nên đọc bài viết của Shannon về Dự đoán và entropy của tiếng Anh in cho một cách tiếp cận khác để ước tính entropy của một nguồn.


Tôi có. Và bài báo Schurmann & Grassberger. Dựa trên các entropy ước tính của họ cho tiếng Anh, có vẻ như ước tính entropy tốt nhất chúng ta có thể nhận được là thông qua nén với một biến thể PAQ8 như fp8. Có và kết quả của tôi kết hôn khá tốt cho văn xuôi Shakespearean.
Paul Uszak

Vấn đề dường như là mặc dù tôi đã nghĩ rằng phải có một giá trị lý thuyết giới hạn cho entropy của một nguồn. Xác định bằng cách nén chỉ phản ánh hiệu quả của thuật toán nén. Theo kinh nghiệm, gzip của bạn là tốt, nhưng 7z thì tốt hơn. Và fp8 tốt hơn rất nhiều như trong câu hỏi của tôi. Tôi có thể thấy rằng hiss.wav chỉ chứa 10 byte tổng số entropy khi tôi sử dụng fp12000 trong tương lai xa không?
Paul Uszak

Entropy không phải là một tài sản của một tập tin; mỗi tập tin cá nhân có entropy bằng không. Thay vào đó, entropy là một thuộc tính của một nguồn ngẫu nhiên. Một thước đo ngẫu nhiên phù hợp với các tệp cụ thể là độ phức tạp Kolmogorov (còn được gọi là entropy thuật toán), nhưng thật không may, biện pháp này không thể tính toán được.
Yuval Filmus

Khi bạn đang nén một tệp để ước tính entropy của nguồn, bạn sử dụng một định lý đảm bảo rằng tốc độ nén dữ liệu được tạo bởi nguồn tiếp cận entropy của nguồn. Tuy nhiên, các tiện ích nén thực tế không áp dụng thuật toán vanilla LempelTHER Ziv, mà là một phiên bản thực tế hơn của nó. Nếu bạn muốn ước tính entropy, có lẽ bạn nên thực hiện lại thuật toán với mục tiêu này.
Yuval Filmus

Tôi đã loại bỏ một cuộc thảo luận không có kết cấu; ý kiến ​​không dành cho các cuộc thảo luận dài ngoại trừ việc cải thiện bài viết trong tầm tay. Nếu bạn muốn thảo luận một cách trung thực các vấn đề về entropy, vui lòng tạo một phòng trò chuyện. Hãy nhớ giữ cho nó dân sự.
Raphael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.