Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Контекстті араластыру – екі немесе одан көп статистикалық модельдердің келесі символ туралы болжамдарын біріктіретін деректерді сығыстыру алгоритмінің бір түрі. Бұл әдіс көбінесе жеке болжамдардың кез келгенінен дәл болжам беруге мүмкіндік береді. Мысалы, бір қарапайым әдіс (ең жақсысы емес) – әр модельдің берген ықтималдықтарын орташалау. Кездейсоқ орман – тағы бір әдіс: ол жеке модельдердің болжамдарының ең көп кездесетін мәнін (модасын) болжам ретінде шығарады. Модельдерді біріктіру – машиналық оқытудағы белсенді зерттеу саласы. PAQ сериялы деректерді сығыстыру бағдарламалары кірістің жеке биттеріне ықтималдықтарды тағайындау үшін контекстті араластыруды пайдаланады.
Context mixing is a type of data compression algorithm in which the next symbol predictions of two or more statistical models are combined to yield a prediction that is often more accurate than any of the individual predictions. For example, one simple method (not necessarily the best) is to average the probabilities assigned by each model. The random forest is another method: it outputs the prediction that is the mode of the predictions output by individual models. Combining models is an active area of research in machine learning. The PAQ series of data compression programs use context mixing to assign probabilities to individual bits of the input.
Деректерді сығыстыруға қолдану
Егер бізге екі шартты ықтималдық берілген болса, және , және біз X оқиғасының екі шартты да және болатын ықтималдығын бағалауды қалаймыз. Ықтималдық теориясы нәтиже беру үшін жеткіліксіз ақпарат бар. Шын мәнінде, нәтиже кез келген болуы мүмкін жағдайларды құруға болады. Бірақ интуитивті түрде, нәтиже екі мәннің орташасы болады деп күтеміз. Бұл мәселе деректерді сығыстыру үшін маңызды. Бұл қолданбада, және контексттер, – сығылатын деректегі келесі бит немесе символ белгілі бір мәнге ие болу оқиғасы, ал және – екі тәуелсіз модельдің ықтималдық бағалаулары. Сығымдалу коэффициенті бағаланған ықтималдықтың оқиғаның нақты, бірақ белгісіз ықтималдығына қаншалықты жақындығына байланысты. Көбінесе, және контексттері жиі кездесетіндей етіп, оларды әр контексттегі оқиғалардың санын санау арқылы және ықтималдықтарын дәл бағалауға болады, бірақ екі контекст те жиі кездеспеген немесе біріктірілген жағдай үшін статистика жинауға жеткіліксіз есептеу ресурстары (уақыт және жад) бар. Мысалы, мәтін файлын сығымдаймыз делік. Алдыңғы символ нүкте болғанда (контекст ) және соңғы жолдың басы 72 символ бұрын болғанда (контекст ), келесі символ жолдың басы болатынын болжағымыз келеді. Егер соңғы 5 нүктенің 1-інен кейін және 72-бағандағы соңғы 10 жолдың 5-інде жолдың басы бұрын пайда болған болса, осы болжамдарды қалай біріктіру керек? Екі жалпы тәсіл қолданылады: сызықтық және логистикалық араластыру. Сызықтық араластыру дәлелдерге байланысты салмақталған орташа болжамды пайдаланады. Бұл мысалда, көптеген сынақтарға негіделгендіктен, салмағы көбірек. PAQ-тың ескі нұсқалары осы тәсілді қолданады. Жаңа нұсқалары логистикалық (немесе нейрондық желі) араластыруды қолданады, алдымен болжамды log(p/(1-p)) логистикалық доменге түрлендіріп, содан кейін орташалайды. Бұл 0 немесе 1-ге жақын болжамдарға тиімді түрде үлкен салмақ береді, бұл жағдайда. Екі жағдайда да кіріс модельдерінің әрқайсысына қосымша салмақтар берілуі мүмкін және бұрын ең дәл болжамдарды берген модельдерге басымдық беру үшін бейімделуі мүмкін. PAQ-тың ең ескі нұсқаларынан басқа барлық нұсқалары бейімделген салмақты қолданады. Көптеген контексттік араластыру компрессорлары бір уақытта бір битті болжайды. Шығу ықтималдығы – келесі биттің 1 болу ықтималдығы.
Suppose that we are given two conditional probabilities, and , and we wish to estimate , the probability of event X given both conditions and There is insufficient information for probability theory to give a result. In fact, it is possible to construct scenarios in which the result could be anything at all. But intuitively, we would expect the result to be some kind of average of the two. The problem is important for data compression. In this application, and are contexts, is the event that the next bit or symbol of the data to be compressed has a particular value, and and are the probability estimates by two independent models. The compression ratio depends on how closely the estimated probability approaches the true but unknown probability of event It is often the case that contexts and have occurred often enough to accurately estimate and by counting occurrences of in each context, but the two contexts either have not occurred together frequently, or there are insufficient computing resources (time and memory) to collect statistics for the combined case. For example, suppose that we are compressing a text file. We wish to predict whether the next character will be a linefeed, given that the previous character was a period (context ) and that the last linefeed occurred 72 characters ago (context ). Suppose that a linefeed previously occurred after 1 of the last 5 periods and in 5 out of the last 10 lines at column 72 How should these predictions be combined? Two general approaches have been used, linear and logistic mixing. Linear mixing uses a weighted average of the predictions weighted by evidence. In this example, gets more weight than because is based on a greater number of tests. Older versions of PAQ uses this approach. Newer versions use logistic (or neural network) mixing by first transforming the predictions into the logistic domain, log(p/(1 p)) before averaging. This effectively gives greater weight to predictions near 0 or 1, in this case In both cases, additional weights may be given to each of the input models and adapted to favor the models that have given the most accurate predictions in the past. All but the oldest versions of PAQ use adaptive weighting. Most context mixing compressors predict one bit of input at a time. The output probability is simply the probability that the next bit will be a 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) көптеген модельдерді араластырады және қазіргі уақытта Үлкен мәтінді сығыстыру эталонында, сондай-ақ Силезия корпусында бірінші орында тұр, және Хаттер сыйлығының жеңімпазынан асып түсті, бірақ тым көп жадты пайдалануға байланысты қатысуға құқығы жоқ.
All versions below use logistic mixing unless otherwise indicated. All PAQ versions (Matt Mahoney, Serge Osnach, Alexander Ratushnyak, Przemysław Skibiński, Jan Ondrus, and others) PAQAR and versions prior to PAQ7 used linear mixing. Later versions used logistic mixing. All LPAQ versions (Matt Mahoney, Alexander Ratushnyak) ZPAQ (Matt Mahoney) WinRK 3.0.3 (Malcolm Taylor) in maximum compression PWCM mode Version 3.0.2 was based on linear mixing. NanoZip (Sami Runsas) in maximum compression mode (option cc) xwrt 3.2 (Przemysław Skibiński) in maximum compression mode (options i10 through i14) as a back end to a dictionary encoder. cmm1 through cmm4, M1, and M1X2 (Christopher Mattern) use a small number of contexts for high speed. M1 and M1X2 use a genetic algorithm to select two bit masked contexts in a separate optimization pass. ccm (Christian Martelock). bit (Osman Turan) pimple, pimple2, tc, and px (Ilia Muraviev) enc (Serge Osnach) tries several methods based on PPM and (linear) context mixing and chooses the best one. fpaq2 (Nania Francesco Antonio) using fixed weight averaging for high speed. cmix (Byron Knoll) mixes many models, and is currently ranked first in the Large Text Compression benchmark, as well as the Silesia corpus and has surpassed the winning entry of the Hutter Prize although it is not eligible due to using too much memory.