56cc7208c85d13ae2f4a404b045173f0.ppt
- Количество слайдов: 53
Сжатие данных Руководитель: Жерздев С. В. Участники: Рябикин Н. М. Осокин Д. В. Капралов Е. И. Белоусов С. О.
Цель проекта Цель минимум: получить знания и опыт работы в этой области. n Цель максимум: добиться практически интересных результатов (лучше PPM по сжатию, лучше PAQ по производительности). n 2
Основные задачи n n Изучить основные подходы к сжатию данных (особенно статистические методы) и используемые в современных системах стат. модели: в порядке возрастания сложности адаптивные - контекстные - переменной длины (PPM) - составные (PAQ); Предложить, реализовать и опробовать собственные подходы к построению составных моделей. 3
Немного о сжатии данных методом контекстного моделирования 4
Контекстное моделирование – оценка вероятности появления символа в зависимости от непосредственно ему предшествующих, или контекста. Контекст – последовательность символов, непосредственно примыкающих к текущему символу слева. Например, для последнего символа «о» последовательности «…молоко…» контекстом является «…молок» . В дальнейшем нас будут интересовать контексты конечной длины. 5
Процесс сжатия состоит из двух самостоятельных частей: n n Моделирование Кодирование Моделирование – построение модели информационного источника, породившего сжимаемые данные. Кодирование – отображение обрабатываемых данных в сжатую форму представления на основании результатов моделирования. 6
Схема процесса сжатия данных Кодер источника (компрессор) Источник данных Моделировщик Сжимаемые данные обновить модель кодировать символ на основании его вероятности Данные в компактном представлении Кодировщик создает выходной поток, являющийся компактной формой представления обрабатываемой последовательности, на основании информации, поставляемой ему моделировщиком. 7
Теорема Шеннона Элемент si, вероятность появления которого равняется p(si), выгоднее всего представить log 2(si) битами. Средняя длина кодов будет равна следующей величине: Есть реализация кодера (арифметический кодер), который позволяет максимально приблизиться к теоретическому результату. Чем точнее оценка вероятностей появления символов, тем лучше сжатие. 8
Проблемы контекстного моделирования n Как выбирать контекст? Текущий символ может точнее предсказываться контекстом длины 2, нежели длины 1. ¨ Возможное решение: идея смешивания. n n Рост ресурсов с ростом длины контекста. Как оценивать вероятность символов, имеющих нулевую частоту? 9
Классификация стратегий моделирования n n Статическое Полуадаптивное Адаптивное (динамическое) Блочно-адаптивное 10
Алгоритмы PPM – Prediction by partial matching n n Моделирование: адаптивное Контексты: фиксированной длины 11
Алгоритмы PAQ n n n Модификация алгоритма PPM Основная идея – смешивание контекстов Вторичная оценка символа 12
Контексты n n n n-граммы 0. . 7 Словарные n-граммы Разреженные Аналоговые Двумерные Специальные Match для длинных 13
Комбинирование моделей (смешивание) Смешивание контекстов — это техника, тесно связанная с алгоритмом PPM, но отличие состоит в том, что вероятность появления следующего символа вычисляется на основе взвешенной комбинации большого числа моделей, зависящих от разных контекстов, не обязательно следующих друг за другом. С помощью технологии смешивания можно существенно увеличить точность предсказания. 14
Вторичная оценка символа n Адаптивная корректировка оценки вероятности по короткому контексту 15
Главный плюс PAQ Обеспечивается максимальная компрессия из всех существующих ныне алгоритмов. Есть и минусы: n Потеря устойчивости оценки, если данные «зашумлены» n Большие вычислительные расходы на обновление модели n Большие расходы оперативной памяти Локальная цель: n Добиться «золотой середины» 16
Модели 17
Контекстное моделирование В случае адаптивной модели оценки вероятностей строятся на основании обычных счётчиков частот, связанных с текущим контекстом n Проблема символов с “нулевой” частотой. n 18
Пример Используем контекстное моделирование порядка 1, контекст - ‘a’: б аб рака даб р а ? Частоты появления букв в контексте: б р к д 2 1 0 0 0 1 Вероятность: 1 0 0 Частота контекста: а 4 3 2 1 0 19
Состояния → вероятности n n В PAQ используется более сложная модель получения вероятностей: он преобразует состояния модели в вероятности по таблице. Переходы между состояниями заданы в зависимости от входных данных. Плюсы: состояние теперь описывается 1 байтом, можно более гибко соотносить состояние модели и оценку вероятности. 20
Модели PAQ n n n n Match. Model (совпадающие контексты) pic. Model (двухцветное CCITT bitmap изображение) word. Model (английский текст и колонки) record. Model (двумерные данные с фиксированной длиной записи) sparse. Model (контексты порядка 1 -2 с пустыми местами) bmp. Model (24 битное несжатое изображение. bmp или. tiff) jpeg. Model (только стандартное и 8 битное расширение) exe. Model (x 86 код) 21
Преимущества моделей PAQ § Позволяет быстро менять вероятности появления битов, § Упрощается реализация модели и кодера, § Снимается проблема нулевых счётчиков, т. к. модель меняется очень быстро, § В качестве контекста придётся брать не только предыдущие закодированные символы, но и закодированные биты текущего символа. 22
Созданные модели Двухбайтовая (16 предыдущих бит + закодированные биты текущего байта) n Две однобайтовые (применено смешивание предсказаний) n 23
Двухбайтовая модель Вероятность символа будем оценивать как отношение числа предсказанных контекстом единиц к числу его появления в данных. n Плюсы: n ¨ модель быстро изменяется, ¨ для хранения статистики требуется всего один массив, ¨ простота реализации. 24
Две однобайтовые модели n Контексты: предыдущий байт и через байт + закодированные биты текущего. К 2 К 1 + закодированные биты текущего 25
Две однобайтовые модели n Полученные вероятности смешиваются в зависимости от значимости, затем нормируются. … double w 1 = log((double)(pr 1+1)/(4096 -pr 1)/4096); double w 2 = log((double)(pr 2+1)/(4096 -pr 2)/4096); if (w 1+w 2<0. 005) w 1=w 2=1. 0; int pr=(pr 1*w 1+pr 2*w 2)/(w 1+w 2); … 26
Две однобайтовые модели n Плюсы: ¨ малый размер массивов для хранения статистики, ¨ возможность улучшения (корректировки) предсказания. 27
Сравнение Архиватор Размер файла (МБ) Наш PAQ 1 b 100 Расход памяти (МБ) Коэфф. сжатия 607 Наш PAQ 2 b Время сжатия (с) 128 2. 82 337 1 1. 32 28
Миксер 29
Что такое миксер? Миксер – это объект, который комбинирует результаты разных моделей. Ранние версии PAQ использовали примитивные миксеры с четко заданными весами. С PAQ 6 получили применение адаптивные, обучаемые модели. В PAQ 8 для смешивания используются нейронные сети. 30
Кратко о нейронных сетях § Нейронные сети – вычислительные системы, способные к обучению путем анализа положительных и отрицательных воздействий § Использование: распознавание речи и рукописного ввода, апроксимация функций, прогноз поведения функций и многое другое 31
Искусственный нейрон f – нелинейная функция от s (функция активации) 32
Функция активации Наиболее популярной является сигмоид: 33
Смешивание моделей позволяет лучше угадывать следующий символ, поскольку с ростом статистики точность предсказания увеличивается 34
Разные веса Как правило, чем длиннее контекст, тем точнее он угадывает. Поэтому с первой версии PAQ модели имеют разный вес: длинные больший, короткие меньший. 35
Корректировка весов – это изменение весов моделей на каждой итерации. Чем лучше модель предсказывает следующий символ, тем сильнее увеличивается ее вес. Если же она не угадывает, вес уменьшается. 36
Миксер с нейронными сетями Нелинейное преобразование обладает свойством усиливать слабые сигналы лучше, чем большие, и предотвращает насыщение от больших сигналов 37
Нейросеть в PAQ 8 Входы сети подвергаются растяжению, чтобы увеличить значимость более «уверенных» моделей 38
Миксер в PAQ 8 Миксер использует М нейронных сетей по N входов в каждой, в итоге может быть выбрано S. Если S = 1, то предсказание этой модели идет на выход. Если S > 1, то произойдет смешивание через еще одну нейронную сеть. 39
Наш миксер n Нелинейное смешивание без обучения 40
Вторичная оценка символа (SSE) 41
n n После того, как Context. Model 2() выдает вероятность единицы, для корректировки последующих предсказаний используется Вторичная оценка ошибки, реализованная в виде класса AMP. Класс APM представляет собой карту (таблицу), комбинирующую в себе контексты и вероятности заданных длин. В PAQ используется одна карта длиной 1 байт и 3 карты по 2 байта. 42
Class APM class APM { int index; // last p, context const int N; // number of contexts Array<U 16> t; // [N][33]: p, context -> p public: APM(int n); int p(int pr=2048, int cxt=0, int rate=8) { assert(pr>=0 && pr<4096 && cxt>=0 && cxt<N && rate>0 && rate<32); pr=stretch(pr); int g=(y<<16)+(y<<rate)-y-y; t[index] += g-t[index] >> rate; t[index+1] += g-t[index+1] >> rate; const int w=pr&127; // interpolation weight (33 points) index=(pr+2048>>7)+cxt*33; return t[index]*(128 -w)+t[index+1]*w >> 11; } }; // maps p, cxt -> p initially APM: : APM(int n): index(0), N(n), t(n*33) { for (int i=0; i<N; ++i) for (int j=0; j<33; ++j) t[i*33+j] = i==0 ? squash((j-16)*128)*16 : t[j]; } 43
Структура APM p Масштабировать p в отрезок [-8, 8] Вычислить степень размытия ошибки Размыть ошибку между двумя соседними контекстами Вычислить новую вероятность p p 44
Корректировка предсказания от Context. Model c помощью APM n n Predictor: : update() использует 4 карты вторичной оценки с различной длинной контекста символа для корректировки предсказания, полученного от Context. Model 2() В качестве предсказания возвращает взвешенную сумму всех скорректированных предсказаний. 45
Корректировка предсказания от Context. Model c помощью APM pr=context. Model 2(); pr=a 1. p(pr, c 0)*3+pr>>2; int pr 2=a 2. p(pr, c 0+256*buf(1)); int pr 3=a 3. p(pr, c 0^hash(buf(1), buf(2))&0 xffff); int pr 4=a 4. p(pr, c 0^hash(buf(1), buf(2), buf(3))&0 xffff); pr=pr 2+pr 3*2+pr 4+2>>2; 46
APM: : p предсказание с размытием ошибки На входе эта функция получает 3 параметра: n int pr – искомое предсказание n int cxt – контекст в котором было сделанно это предсказание n int rate – норма корректировки (определяет скорость корректировки, чем rate меньше тем скорость быстрее. значение по умолчанию 8) n В процессе работы вероятность масштабируется в интервал [0, 4095] и делится на 32 отрезка для объединения с другими контекстами. n Выходные вероятности интерполируются между двумя квантуемыми значениями. n На выходе возвращает новую вероятность с учетом корректировки. 47
APM: : p предсказание с размытием ошибки int p(int pr=2048, int cxt=0, int rate=8) { assert(pr>=0 && pr<4096 && cxt>=0 && cxt<N && rate>0 && rate<32); pr=stretch(pr); int g=(y<<16)+(y<<rate)-y-y; t[index] += g-t[index] >> rate; t[index+1] += g-t[index+1] >> rate; const int w=pr&127; index=(pr+2048>>7)+cxt*33; return t[index]*(128 -w)+t[index+1]*w >> 11; } 48
Сравнение степени сжатия с APM и без неё Версия Ключ -0 PAQ 8 a -5 -0 PAQ 8 a (без APM) -5 -0 -5 Размер файла TXT, RU (МБ) 1 3 Сжат (КБ) Время (с) 301 19, 23 268 72, 61 1016 68, 69 878 260, 85 304 27, 13 271 119, 45 1032 96, 45 888 422, 77 49
Выводы n n APM обеспечивает 5 -7% к проценту сжатия Разница в скорости сжатия с “родным” предсказателем с APM и без почти не заметна При использовании предсказателя по формуле Байеса или по Статичным таблицам APM ощутимо “тормозит” процесс сжатия Использование APM оправданно только при необходимости максимально сжать данные 50
Результаты Архиватор Время сжатия (с) Расход памяти (МБ) Коэфф. сжатия Наш PAQ 2 b 607 128 2. 82 Наш PAQ 1 b 337 1 1. 32 6, 5 ч 2 200 5. 67 LPAQ 230 1 500 5. 06 7 -zip 101 250 4. 01 PAQ 8 a Размер файла (МБ) 100 51
Итоги эксперимента На текстовых данных лучше себя показала двухбайтовая модель. n Большее значение имеет контекст в два предыдущих байта, чем два контекста в предыдущий байт и через байт. n Более того, две однобайтовые модели ведут себя хуже, нежели простая контекстная модель порядка один. n 52
Список ресурсов n n n n http: //www. compression. ru Ватолин Д. , Ратушняк А. , Смирнов М. , Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. - М. : ДИАЛОГ-МИФИ, 2002. - 384 с. http: //ru. wikipedia. org/wiki/PAQ - описание PAQ http: //www. cs. fit. edu/~mmahoney/compression/ - официальный сайт PAQ M. Mahoney, Adaptive Weighing of Context Models for Lossless Data Compression, Florida Technical Report CS-2005 -16, 2005. http: //www. cs. fit. edu/~mmahoney/compression/paq. html - история версий и исходники PAQ Круглов В. В. , Дли М. И. , Голунов Р. Ю. Нечеткая логика и искусственные нейронные сети. М. : Физматлит, 2001. 221 с. 53
56cc7208c85d13ae2f4a404b045173f0.ppt