Saya baru-baru ini menemukan artikel menarik berikut yang mengklaim secara efisien mengompresi set data acak dengan selalu lebih dari 50%, terlepas dari jenis dan format data.
Pada dasarnya ia menggunakan bilangan prima untuk secara unik membangun representasi potongan data 4-byte yang mudah untuk didekompresi mengingat bahwa setiap angka adalah produk unik bilangan prima. Untuk menghubungkan urutan ini dengan bilangan prima, ia menggunakan kamus.
Pertanyaanku adalah:
- Apakah ini benar-benar layak seperti yang disarankan oleh penulis? Menurut kertas, hasilnya sangat efisien dan selalu kompres data ke ukuran yang lebih kecil. Bukankah ukuran kamus akan sangat besar?
- Tidak bisakah ini digunakan untuk secara berulang mengkompres ulang data yang dikompres menggunakan algoritma yang sama? Jelas, dan telah didemonstrasikan, bahwa teknik seperti itu (di mana data yang dikompres kembali dikompres sebanyak mungkin, secara dramatis mengurangi ukuran file) tidak mungkin; memang, tidak akan ada penipisan antara set semua data acak dan data terkompresi. Jadi mengapa ini terasa mungkin?
- Bahkan jika tekniknya belum sempurna, itu jelas dapat dioptimalkan dan sangat ditingkatkan. Mengapa ini tidak banyak diketahui / dipelajari? Jika memang klaim dan hasil eksperimen ini benar, tidak bisakah ini merevolusi komputasi?
Jawaban:
Itu tidak mungkin. Anda tidak dapat mengompresi data acak , Anda perlu beberapa struktur untuk memanfaatkan. Kompresi harus dapat dibalik, sehingga Anda tidak dapat mengompresi semuanya hingga 50% karena ada string yang jauh lebih kecil dari daripada panjangnya yang n .n/2 n
Ada beberapa masalah utama dengan makalah ini:
Mereka menggunakan 10 file uji tanpa indikasi konten mereka. Apakah datanya benar-benar acak? Bagaimana mereka dihasilkan?
Mereka mengklaim mencapai rasio kompresi setidaknya 50%, sementara data uji mereka menunjukkan mereka mencapai paling banyak 50%.
Apa? Bilangan prima adalah bilangan prima terlepas dari pangkalannya.
Masalah # 1 dengan dekompresi: faktorisasi utama adalah masalah yang sulit, bagaimana mereka melakukannya secara efisien?
Masalah # 2 dengan dekompresi ( ini adalah kicker ): mereka mengalikan bilangan prima bersama-sama, tetapi dengan melakukannya Anda kehilangan informasi tentang pesanan, karena . Saya pikir tidak mungkin untuk melakukan kompresi sama sekali menggunakan teknik mereka.2⋅5=10=5⋅2
Saya rasa makalah ini tidak bagus.
sumber
Saya akan tunduk pada Tom van der Zanden yang tampaknya telah membaca koran dan menemukan kelemahan dalam metode ini. Meskipun saya tidak membaca makalah secara detail, dari abstrak dan tabel hasil, sepertinya klaim yang dipercaya luas.
Apa yang mereka klaim adalah rasio kompresi 50% yang konsisten pada file teks (bukan "semua file"), yang mereka catat hampir sama dengan LZW dan sekitar 10% lebih buruk daripada (mungkin tanpa urutan) Huffman coding. Mengompresi file teks sebesar 50% tidak sulit dicapai dengan menggunakan metode yang cukup sederhana; ini adalah tugas sarjana di banyak program ilmu komputer.
Saya setuju bahwa makalah ini tidak terlalu bagus sebagai penelitian yang dipublikasikan, dan saya tidak berpikir itu berbicara dengan baik dari pengulas bahwa ini diterima. Terlepas dari detail yang jelas hilang yang membuat hasil tidak mungkin untuk direproduksi (misalnya apa file teks itu), dan tidak ada upaya untuk mengikatnya ke bidang kompresi, tidak ada gunanya mereka benar-benar memahami apa yang dilakukan algoritma mereka.
Situs web konferensi mengklaim rasio penerimaan 1: 4, yang membuat Anda bertanya-tanya apa yang mereka tolak.
sumber
Anda bertanya:
Ya tentu saja. Bahkan untuk contoh pilihan mereka sendiri ("FOX SILVER CEPAT MELOMPAT DARI LAZY DOG"), mereka tidak mencapai kompresi, karena kamus berisi setiap substring teks 4-byte (minus 4 byte untuk satu pengulangan dari ") THE ") ... dan versi" terkompresi "dari teks harus menyertakan seluruh kamus plus semua omong kosong bilangan prima ini.
Sekali lagi Anda tampaknya memiliki pemahaman intuitif yang baik tentang situasi tersebut. Anda secara intuitif menyadari bahwa tidak ada skema kompresi yang bisa efektif pada semua input, karena jika ya, kita bisa menerapkannya berulang-ulang untuk mengompresi input apa pun menjadi satu bit - dan kemudian ke ketiadaan!
Dengan kata lain: Setelah Anda mengompres semua file .wav Anda ke .mp3, Anda tidak akan mendapatkan peningkatan dalam ukuran file dengan zip mereka. Jika kompresor MP3 Anda telah melakukan tugasnya, tidak akan ada pola yang tersisa untuk dieksploitasi oleh kompresor ZIP.
(Hal yang sama berlaku untuk enkripsi: jika saya mengambil file nol dan mengenkripsi sesuai dengan algoritma kriptografi pilihan saya, file yang dihasilkan lebih baik tidak kompresibel , atau algoritma enkripsi saya bocor "pola" ke dalam outputnya!)
Klaim dan hasil eksperimen ini tidak benar.
Seperti yang telah dicatat oleh Tom van der Zanden, "algoritma kompresi" Chakraborty, Kar, dan Guchait cacat karena tidak hanya tidak mencapai rasio kompresi, tetapi juga ireversibel (dalam matematika, "tidak bijektif"): ada banyak teks yang semuanya "kompres" ke gambar yang sama, karena algoritme mereka pada dasarnya adalah perkalian dan perkalian adalah komutatif.
Anda harus merasa senang bahwa pemahaman intuitif Anda tentang konsep-konsep ini membawa Anda ke kesimpulan yang tepat secara instan. Dan, jika Anda dapat meluangkan waktu, Anda harus merasa kasihan kepada penulis makalah yang jelas menghabiskan banyak waktu untuk memikirkan topik tersebut tanpa memahaminya sama sekali.
Direktori file satu tingkat di atas URL yang Anda posting berisi 139 "makalah" dengan kualitas yang sama, semua tampaknya diterima ke dalam "Prosiding Konferensi Internasional tentang Penelitian yang Berkembang dalam Komputasi, Informasi, Komunikasi dan Aplikasi." Tampaknya ini adalah konferensi palsu dari tipe yang biasa. Tujuan konferensi semacam itu adalah untuk memungkinkan akademisi yang curang mengklaim "publikasi dalam jurnal", sementara juga memungkinkan penyelenggara yang tidak bermoral menghasilkan banyak uang. (Untuk informasi lebih lanjut tentang konferensi palsu, lihat utas reddit ini atau berbagai posting StackExchange tentang hal ini .) Konferensi palsu ada di setiap bidang. Belajarlah untuk memercayai naluri Anda dan tidak percaya semua yang Anda baca dalam "proses konferensi", dan Anda akan baik-baik saja.
sumber
Entropy secara efektif membatasi kinerja kompresi lossless terkuat yang mungkin. Dengan demikian tidak ada algoritma yang dapat mengompres set data acak dengan selalu lebih dari 50%.
sumber
Metode kompresi, yang dapat dipulihkan, secara umum menemukan pola dan mengekspresikannya dengan cara yang sederhana. Beberapa sangat pintar, beberapa sangat sederhana. Di beberapa titik tidak ada pola. Proses ini telah 'mendidihkan' data yang ditetapkan menjadi pola unik yang paling sederhana. Setiap upaya kompresi dari titik itu menghasilkan set data yang lebih besar, atau melemahkan keunikannya. Dalam skema kompresi angka ajaib selalu ada kelemahan, atau sedikit tangan, atau kerugian. berhati-hatilah terhadap proses yang mengklaim tidak melakukan WinZip atau RAR terbaru.
sumber