Контекстное моделирование — различия между версиями
SchrodZzz (обсуждение | вклад) |
|||
| Строка 1: | Строка 1: | ||
| + | {| class="wikitable" align="center" style="color: red; background-color: black; font-size: 56px; width: 800px;" | ||
| + | |+ | ||
| + | |-align="center" | ||
| + | |'''НЕТ ВОЙНЕ''' | ||
| + | |-style="font-size: 16px;" | ||
| + | | | ||
| + | 24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. | ||
| + | |||
| + | Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. | ||
| + | |||
| + | Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. | ||
| + | |||
| + | Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. | ||
| + | |||
| + | ''Антивоенный комитет России'' | ||
| + | |-style="font-size: 16px;" | ||
| + | |Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. | ||
| + | |-style="font-size: 16px;" | ||
| + | |[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки]. | ||
| + | |} | ||
| + | |||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
Версия 08:31, 1 сентября 2022
| НЕТ ВОЙНЕ |
|
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. Антивоенный комитет России |
| Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. |
| meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки. |
| Определение: |
| Контекстное моделирование (context modeling)— оценка вероятности появления символа (элемента, пиксела, сэмпла и даже набора качественно разных объектов) в зависимости от непосредственно ему предыдущих, или контекста. |
| Определение: |
| Если длина контекста ограничена, то такой подход будем называть контекстным моделированием ограниченного порядка (finite-context modeling), при этом под порядком понимается максимальная длина используемых контекстов . |
Содержание
Оценка вероятности
Контекстная модель строятся на основании обычных счетчиков частот, связанных с текущим контекстом. Если мы обработали строку , то для контекста счетчик символа «» равен двум, символ «» — единице. На основании этого статистики можно утверждать, что вероятность появления «» после равна , а вероятность появления «» равна , т.е. Оценки формируются на основе уже просмотренной части потока.
| Определение: |
| Порядок контекстной модели (order context model) — длина соответствующего этой модели контекста . Если порядок равен , то будем обозначать такую как . |
| Определение: |
| Модель с полным смешиванием (fully blended model) — модель, в которой предсказание определяется статистикой всех используемых порядков. |
Вычисление смешанной вероятности
Введем следующие обозначения:
- — вероятность, присваемая в символу .
- — смешанная вероятность.
- — частота появления в соответствующем контексте порядка .
- — общая частота появления соответствующего контекста порядка в обработанной последовательности.
- — вес оценки .
Оценка обычно определяется через частоту символа по тривиальной формуле:
В общем случае смешанная вероятность выселяется так:
Пример
Рассмотрим процесс оценки отмеченного на рисунке стрелочкой символа , встречающегося в блоке _
Будем использовать с полным смешиванием и использованием заданного набора фиксированных весов разных порядков: , и . Считаем, что в начале кодирования в создаются счетчики для всех символов алфавита и инициализируются единицей; счетчик символа после его обработки увеличивается на единицу. Для текущего символа «» имеются контексты , и (-го порядка). К данному моменту для них накоплена статистика, показанная в таблице
| Порядок | _ | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Частоты | |||||||||
| Накопленные Частоты | |||||||||
| Частоты | |||||||||
| Накопленные Частоты | |||||||||
| Частоты | |||||||||
| Накопленные Частоты |
Оценка вероятности для символа «» будет равна
Метод неявного взвешивания
Метод неявного взвешивания связан с введением вспомогательного символа ухода (escape). Символ ухода не принадлежит к алфавиту сжимаемой последовательности. Фактически он используется для передачи декодеру указаний кодера. Идея заключается в том, что если используемая не позволяет оценить текущий символ (его счетчик равен нулю в этой ), то на выход посылается закодированный символ ухода и производится попытка оценить текущий символ в другой , которой соответствует контекст иной длины. Обычно попытка оценки начинается с наибольшего порядка , затем в определенной последовательности осуществляется переход к контекстным моделям меньших порядков.
Алгоритм РРМ
Описание
| Определение: |
| Адаптивное моделирование (adaptive context modeling) — метод моделирования, при котором, по мере кодирования модель изменяется по заданному алгоритму. |
| Определение: |
| Энтропийное кодирование (entropy coding) — кодирование последовательности значений с возможностью однозначного восстановления с целью уменьшения объёма данных с помощью усреднения вероятностей появления элементов в закодированной последовательности. |
Обычно термин используется для обозначения контекстных методов в общем, по этой причине далее будет рассматриваться некий обобщенный алгоритм .
(Prediction by partial matching) — адаптивный алгоритм сжатия данных без потерь, основанный на контекстном моделировании и предсказании. Исходно кодеру и декодеру поставлена в соответствие начальная модель источника данных. Будем считать, что она состоит из , присваивающей одинаковую вероятность всем символам алфавита входной последовательности. После обработки текущего символа кодер и декодер изменяют свои модели одинаковым образом, в частности наращивая величину оценки вероятности рассматриваемого символа. Следующий символ кодируется (декодируется) на основании новой, измененной модели, после чего модель снова модифицируется и т. д. На каждом шаге обеспечивается идентичность модели кодера и декодера за счет применения одинакового механизма ее обновления.
Если символ «» обрабатывается при помощи , то, в первую очередь рассматривается . Если она оценивает вероятность «» числом, не равным нулю, то сама и используется для кодирования «». Иначе выдается сигнал в виде символа ухода, и на основе меньшей по порядку производится очередная попытка оценить вероятность «». Кодирование происходит через уход к меньших порядков до тех пор, пока «» не будет оценен. гарантирует, что это в конце концов произойдет. Таким образом, каждый символ кодируется серией кодов символа ухода, за которой следует код самого символа. Из этого следует, что вероятность ухода также можно рассматривать как вероятность перехода к контекстной модели меньшего порядка.
лишь предсказывает значение символа, непосредственное сжатие осуществляется алгоритмами энтропийного кодирования, как например, алгоритм Хаффмана или арифметическое кодирование.
Пример
Кодирование
Имеется последовательность символов алфавита , которая уже была закодирована.
Пусть счетчик символа ухода равен единице для всех , при обновлении модели счетчики символов увеличиваются на единицу во всех активных , применяется метод исключения и максимальная длина контекста равна трем, т. е. . Первоначально модель состоит из , в которой счетчики всех четырех символов алфавита имеют значение . Состояние модели обработки последовательности представлено на , где прямоугольниками обозначены контекстные модели, при этом для каждой КМ указан курсивом контекст, а также встречавшиеся в контексте символы и их частоты.
| «» | |||||||
| «» | |||||||
| «» | |||||||
| «» |
Пусть текущий символ равен «», т. е. «» = «», тогда процесс его кодирования будет выглядеть следующим образом. Сначала рассматривается контекст -го порядка . Ранее он не встречался, поэтому кодер, ничего не послав на выход, переходит к анализу статистики для контекста -го порядка. В этом контексте () встречались символ «» и символ «», счетчики которых в соответствующей равны каждый, поэтому символ ухода кодируется с вероятностью , где в знаменателе число — наблюдавшаяся частота появления контекста , — значение счетчика символа ухода. В контексте -го порядка «» дважды встречался символ «», который исключается (маскируется), один раз также исключаемый «» и один раз «», поэтому оценка вероятности ухода будет равна . В символ «» также оценить нельзя, причем все имеющиеся в этой символы «», «», «» исключаются, так как уже встречались нам в более высокого порядка. Поэтому вероятность ухода получается равной единице. Цикл оценивания завершается на уровне , где «» к этому времени остается единственным до сих пор не попавшимся символом, поэтому он получает вероятность и кодируется посредством бит. Таким образом, при использовании хорошего статистического кодировщика для представления «» потребуется в целом примерно бит. Перед обработкой следующего символа создается для строки и производится модификация счетчиков символа «» в созданной и во всех просмотренных . В данном случае требуется изменение всех порядков от до .
Декодирование
Алгоритм декодирования абсолютно симметричен алгоритму кодирования. После декодирования символа в текущей проверяется, не является ли он символом ухода; если это так, то выполняется переход к порядком ниже. Иначе считается, что исходный символ восстановлен, он записывается в декодированный поток и осуществляется переход к следующему шагу. Содержание процедур обновления счетчиков, создания новых контекстных моделей, прочих вспомогательных действий и последовательность их применения должны быть строго одинаковыми при кодировании и декодировании. Иначе возможна рассинхронизация копий модели кодера и декодера, что рано или поздно приведет к ошибочному декодированию какого-то символа. Начиная с этой позиции вся оставшаяся часть сжатой последовательности будет разжата неправильно. Разница между кодами символов, оценки вероятности которых одинаковы, достигается за счет того, что -предсказатель передает кодировщику так называемые накопленные частоты (или накопленные вероятности) оцениваемого символа и его соседей или кодовые пространства символов. Так, например, для контекста можно составить следующую таблицу:
| «» | ||||
| «» | ||||
| «» | ||||
| «» | ||||
| «» |
Хороший кодировщик должен отобразить символ «» с оценкой вероятности в код длины , что и обеспечит сжатие всей обрабатываемой последовательности в целом.
Проблема нулевой частоты
| Определение: |
| Проблема нулевой частоты (zero frequency problem) — проблема обработки новых символов, ещё не встречавшихся во входном потоке. |
На сегодняшний день можно выделить два подхода к решению этой проблемы: априорные методы, основанные на предположениях о природе сжимаемых данных, и адаптивные методы, которые пытаются приспособиться к сжимаемым данным.
Априорные методы
Выедем следующие обозначения:
- — общее число просмотров контекста
- — количество разных символов в контексте
- — количество таких разных символов, что они встречались в контексте ровно раз
- — (оценка вероятности кода ухода) по методу
Изобретатели алгоритма предложили два метода : так называемые метод и метод . Частные случаи алгоритма с использованием этих методов называются, соответственно, и .
Затем был разработан метод , а в след за ним метод :
Адаптивные методы
| Определение: |
| SEE (Secondary Escape Estimation) — модель оценки, которая адаптируется к обрабатываемым данным. |
Для нахождения строятся (Escape Context), формируемые из различный полей. Всего используется поля, в которых содержится информация о:
- порядке контекста
- количестве уходов
- количестве успешных кодирований
- последних двух символах контекста
для текущего контекста находится путем взвешивания оценок, которые дают три контекста ухода (, , ), соответствующие текущему контексту. наиболее точно соответствует текущему контексту, контексты ухода порядком ниже формируются путем выбрасывания части информации полей . При взвешивании контекстов ухода используются следующие веса :
, где , которую дает данный взвешиваемый контекст.
Величину, которая формируется из фактического количества успешных кодирований и количества уходов в -контекстах, соответствующих этому обозначим как .