Кіріспе

Контекстті араластыру – екі немесе одан көп статистикалық модельдердің келесі символ туралы болжамдарын біріктіретін деректерді сығыстыру алгоритмінің бір түрі. Бұл әдіс көбінесе жеке болжамдардың кез келгенінен дәл болжам беруге мүмкіндік береді. Мысалы, бір қарапайым әдіс (ең жақсысы емес) – әр модельдің берген ықтималдықтарын орташалау. Кездейсоқ орман – тағы бір әдіс: ол жеке модельдердің болжамдарының ең көп кездесетін мәнін (модасын) болжам ретінде шығарады. Модельдерді біріктіру – машиналық оқытудағы белсенді зерттеу саласы. PAQ сериялы деректерді сығыстыру бағдарламалары кірістің жеке биттеріне ықтималдықтарды тағайындау үшін контекстті араластыруды пайдаланады.

Деректерді сығыстыруға қолдану

Егер бізге екі шартты ықтималдық берілген болса, және , және біз X оқиғасының екі шартты да және болатын ықтималдығын бағалауды қалаймыз. Ықтималдық теориясы нәтиже беру үшін жеткіліксіз ақпарат бар. Шын мәнінде, нәтиже кез келген болуы мүмкін жағдайларды құруға болады. Бірақ интуитивті түрде, нәтиже екі мәннің орташасы болады деп күтеміз. Бұл мәселе деректерді сығыстыру үшін маңызды. Бұл қолданбада, және контексттер, – сығылатын деректегі келесі бит немесе символ белгілі бір мәнге ие болу оқиғасы, ал және – екі тәуелсіз модельдің ықтималдық бағалаулары. Сығымдалу коэффициенті бағаланған ықтималдықтың оқиғаның нақты, бірақ белгісіз ықтималдығына қаншалықты жақындығына байланысты. Көбінесе, және контексттері жиі кездесетіндей етіп, оларды әр контексттегі оқиғалардың санын санау арқылы және ықтималдықтарын дәл бағалауға болады, бірақ екі контекст те жиі кездеспеген немесе біріктірілген жағдай үшін статистика жинауға жеткіліксіз есептеу ресурстары (уақыт және жад) бар. Мысалы, мәтін файлын сығымдаймыз делік. Алдыңғы символ нүкте болғанда (контекст ) және соңғы жолдың басы 72 символ бұрын болғанда (контекст ), келесі символ жолдың басы болатынын болжағымыз келеді. Егер соңғы 5 нүктенің 1-інен кейін және 72-бағандағы соңғы 10 жолдың 5-інде жолдың басы бұрын пайда болған болса, осы болжамдарды қалай біріктіру керек? Екі жалпы тәсіл қолданылады: сызықтық және логистикалық араластыру. Сызықтық араластыру дәлелдерге байланысты салмақталған орташа болжамды пайдаланады. Бұл мысалда, көптеген сынақтарға негіделгендіктен, салмағы көбірек. PAQ-тың ескі нұсқалары осы тәсілді қолданады. Жаңа нұсқалары логистикалық (немесе нейрондық желі) араластыруды қолданады, алдымен болжамды log(p/(1-p)) логистикалық доменге түрлендіріп, содан кейін орташалайды. Бұл 0 немесе 1-ге жақын болжамдарға тиімді түрде үлкен салмақ береді, бұл жағдайда. Екі жағдайда да кіріс модельдерінің әрқайсысына қосымша салмақтар берілуі мүмкін және бұрын ең дәл болжамдарды берген модельдерге басымдық беру үшін бейімделуі мүмкін. PAQ-тың ең ескі нұсқаларынан басқа барлық нұсқалары бейімделген салмақты қолданады. Көптеген контексттік араластыру компрессорлары бір уақытта бір битті болжайды. Шығу ықтималдығы – келесі биттің 1 болу ықтималдығы.

Контекстті араластыру компрессорларының тізімі

Егер басқаша көрсетілмесе, төмендегі барлық нұсқалар логистикалық араластыруды қолданады. PAQ-тың барлық нұсқалары (Matt Mahoney, Serge Osnach, Alexander Ratushnyak, Przemysław Skibiński, Jan Ondrus және басқалар), PAQAR және PAQ7-ден бұрынғы нұсқалар сызықтық араластыруды қолданды. Кейінгі нұсқаларда логистикалық араластыру қолданылды. Барлық LPAQ нұсқалары (Matt Mahoney, Alexander Ratushnyak), ZPAQ (Matt Mahoney), WinRK 3.0.3 (Malcolm Taylor) максималды сығылу PWCM режимінде. 3.0.2 нұсқасы сызықтық араластыруға негізделген. NanoZip (Sami Runsas) максималды сығылу режимінде (cc опциясы), xwrt 3.2 (Przemysław Skibiński) максималды сығылу режимінде (i10-дан i14-ке дейінгі опциялар) сөздік кодтаушының артқы бөлігі ретінде қолданылады. cmm1-ден cmm4-ке дейін, M1 және M1X2 (Christopher Mattern) жоғары жылдамдық үшін аз сандағы контексттерді пайдаланады. M1 және M1X2 генетикалық алгоритмді пайдаланып, бөлек оптимизациялық өтуде екі бит маскаланған контексттерді таңдайды. ccm (Christian Martelock), bit (Osman Turan), pimple, pimple2, tc және px (Ilia Muraviev), enc (Serge Osnach) PPM және (сызықтық) контекстті араластыруға негізделген бірнеше әдістерді сынап көреді және ең жақсысын таңдайды. fpaq2 (Nania Francesco Antonio) жоғары жылдамдық үшін бекітілген салмақты орташа есептеуді пайдаланады. cmix (Byron Knoll) көптеген модельдерді араластырады және қазіргі уақытта Үлкен мәтінді сығыстыру эталонында, сондай-ақ Силезия корпусында бірінші орында тұр, және Хаттер сыйлығының жеңімпазынан асып түсті, бірақ тым көп жадты пайдалануға байланысты қатысуға құқығы жоқ.