Кватернионы и кватернионные банки фильтров: интеграция в WaLLoC
Зачем кватернионы в задаче ML-компрессии изображений
В предыдущих статьях курса мы пришли к схеме learned-компрессии:
входное изображение преобразуется в коэффициенты (латенты) ;
коэффициенты квантуются и энтропийно кодируются (через вероятностную модель, entropy bottleneck);
декодер по декодированным коэффициентам восстанавливает изображение ;
обучение идёт по компромиссу .В WaLLoC ключевая особенность в том, что analysis/synthesis transform устроены как вейвлет-пакетное преобразование (WPT), то есть как структурированный банк фильтров.
Проблема RGB для классических банков фильтров такая:
если фильтровать каналы независимо, вы игнорируете межканальную связь;
если смешивать каналы обычной матрицей (например, свёрткой), вы задаёте смешивание в реальной линейной алгебре, где нет встроенной геометрии “совместного” цветового вектора.Кватернионы Гамильтона позволяют представить RGB как единый гиперкомплексный сигнал, где операции умножения естественным образом связаны с поворотами в 3D. Это даёт идею: заменить (часть) реальных фильтров WaLLoC на кватернионные, чтобы банк фильтров “видел” цвет как связанный объект.
!RGB как один кватернион: идея представления цветного пикселя
Кватернионы Гамильтона: минимальная математика
Определение и базис
Кватернион — это число вида
Разберём все части:
— кватернион;
— скалярная часть (обычное вещественное число);
— вещественные коэффициенты при мнимых базисных элементах;
— базис мнимой части (это не “комплексная единица”, а три разные оси).Правила умножения базисных элементов задаются так:
Из этого следуют важные произведения:
а также “обратные” с минусом:
Ключевой вывод: умножение кватернионов некоммутативно, то есть обычно .
Ресурс для ориентира: Quaternion.
Скаляр + вектор: удобная запись
Кватернион удобно воспринимать как пару “скаляр + 3D-вектор”:
Здесь:
— скалярная часть;
— векторная (мнимая) часть.Чистый кватернион — это кватернион со скалярной частью 0:
Именно чистые кватернионы удобно использовать для RGB.
Сопряжение, норма, обратный элемент
Для кватерниона определим:
СопряжениеСмысл: меняем знак у мнимой части.
Норма (квадрат нормы)Что означает это выражение:
— неотрицательное вещественное число;
оно похоже на сумму квадратов компонент в .Обратный кватернион (если )Это важно, потому что операции вида “умножить слева и справа, а потом вернуть обратно” используются для поворотов.
Почему кватернионы подходят для RGB
RGB как чистый кватернион
Пусть пиксель имеет значения (например, нормированные в ). Тогда можно сопоставить ему чистый кватернион:
Что здесь важно концептуально:
мы не храним как три независимых скаляра;
мы считаем, что это один объект с векторной природой.Такое объединение делает естественными операции, которые одновременно “перемешивают” каналы и сохраняют геометрический смысл вектора.
Связь с поворотами в 3D
Кватернионы широко применяют для описания 3D-поворотов. И это напрямую связано с тем, что мнимая часть кватерниона — это 3D-вектор.
Пусть:
— единичный 3D-вектор оси вращения;
— угол вращения;
— единичный кватернион (его норма равна 1), задающий вращение.Тогда можно записать:
Здесь:
— скалярная часть;
— мнимая часть, направленная вдоль оси .Если — 3D-вектор (например, цвет ), то его можно представить чистым кватернионом и повернуть так:
Смысл формулы:
умножение слева и справа реализует поворот;
длина вектора сохраняется, если единичный.Почему это полезная интуиция для цвета:
можно рассматривать некоторые операции смешивания каналов как “повороты” в RGB-пространстве;
поворот — это структурированное смешивание, не “разваливающее” вектор на независимые координаты.Ресурс: Quaternions and spatial rotation.
Важно: в компрессии вам не обязательно буквально интерпретировать фильтры как повороты. Но связь с поворотами даёт мотивацию, почему кватернионное умножение может быть осмысленным способом совместной обработки .
Кватернионная фильтрация: что меняется по сравнению с обычной свёрткой
Обычная (реальная) фильтрация
В классической обработке изображений (и в CNN) свёртка — это линейная операция над вещественными числами: вы берёте окно пикселей и считаете взвешенную сумму.
Если у вас RGB, то чаще всего делают одно из двух:
фильтруют каждый канал отдельно;
или делают смешивание каналов через матрицу (например, свёртка), а потом пространственную фильтрацию.Кватернионная фильтрация: базовая идея
Если каждый пиксель — кватернион , то фильтр может быть тоже кватернионным .
Тогда кватернионная “свёртка” (упрощённо) может выглядеть как сумма кватернионных произведений:
Объяснение элементов:
— входной кватернионный сигнал (изображение);
— кватернионный фильтр;
— выход;
суммы пробегают небольшое окно.Ключевой нюанс: из-за некоммутативности нужно договориться о порядке умножения.
На практике встречаются варианты:
левосторонняя фильтрация: ;
правосторонняя фильтрация: ;
двусторонняя (sandwich): .В контексте банков фильтров для WPT чаще стремятся к конструкциям, которые удобно реализуются и приводят к устойчивой реконструкции. Поэтому в реальной системе вы почти наверняка будете выбирать конкретное соглашение и придерживаться его во всём анализ/синтез тракте.
Эквивалентность 4-канальной реальной модели
Любую кватернионную линейную операцию можно переписать как линейную операцию в над вектором компонент .
Практический смысл этого факта:
вы можете реализовывать “кватернионный фильтр” как специальным образом связанный набор обычных (вещественных) фильтров;
это полезно для интеграции в существующие DL-фреймворки и для контроля числа параметров.Но важно не перепутать:
“просто 4 независимых канала” — это не кватернионы;
“4 канала со связанными ограничениями, соответствующими кватернионному умножению” — это и есть кватернионная структура.Что такое кватернионный банк фильтров
Напоминание: банк фильтров в WPT
В WaLLoC-подобной схеме WPT разложение строится как повторение двух операций:
фильтрация парой фильтров (низкочастотный и высокочастотный);
прореживание (downsampling) и разбиение на поддиапазоны.В 2D это даёт поддиапазоны типа LL, LH, HL, HH на каждом уровне, а WPT разрешает “разворачивать” дерево разложения глубже, чем обычный DWT.
Кватернионный вариант: что именно становится кватернионным
Кватернионный банк фильтров в вашем контексте означает:
Входной сигнал — кватернионный (RGB как чистый кватернион на пиксель).
Фильтры анализа (и синтеза) — кватернионные, то есть их коэффициенты содержат компоненты при (и, при необходимости, скалярную часть).
Операция фильтрации использует кватернионное умножение (с фиксированным соглашением о порядке).Почему это нетривиально: идеальная реконструкция и некоммутативность
В обычных (вещественных) вейвлет-банках фильтров есть хорошо разработанные условия perfect reconstruction: при отсутствии квантования синтез точно восстанавливает сигнал.
В кватернионном случае появляются сложности:
некоммутативность ломает многие “симметричные” алгебраические выводы, если переносить их буквально;
нужно согласовать анализирующие и синтезирующие фильтры в одной и той же алгебре и с тем же порядком умножений;
если вы используете чистые кватернионы для RGB, важно контролировать, не появляется ли скалярная часть на выходе (или осознанно разрешить её интерпретацию).Практический компромисс для исследовательского проекта (особенно первого прототипа):
начинать с конструкций, которые явно сводятся к хорошо понимаемым вещественным банкам фильтров, но вводят кватернионную связанность как ограничение на параметры.Точки интеграции в WaLLoC
Ниже перечислены места, где кватернионные банки фильтров могут заменить компоненты WaLLoC, и что при этом надо перепроверить.
| Компонент WaLLoC | Что делает в базовой схеме | Что вы заменяете на кватернионы | Главный риск/вопрос |
|---|---|---|---|
| WPT analysis transform | Разлагает на поддиапазоны (коэффициенты) | Фильтры анализа становятся кватернионными, RGB трактуется как один сигнал | Совместимость с downsampling/upsampling и устойчивость разложения |
| WPT synthesis transform | Собирает из декодированных коэффициентов | Синтезирующие фильтры должны быть согласованы с анализом в кватернионной алгебре | Артефакты из-за несогласованности, накопление ошибок после квантования |
| Entropy bottleneck / entropy model | Даёт вероятности и оценку | Меняется тип коэффициентов: из “скаляров” в “кватернионные векторы” | Как параметризовать распределение и как кодировать символы |
| Rate–distortion обучение | Минимизирует | Можно оставить по RGB, но зависит от новой статистики | Выигрыш возможен только если вероятностная модель “успевает” за новым представлением |
!Где именно кватернионы входят в WaLLoC-пайплайн
Entropy bottleneck для кватернионных коэффициентов: как думать о вероятностях и битах
В WaLLoC (и в learned-компрессии в целом) rate оценивают через вероятности квантованных символов:
Здесь:
— квантованный символ (в обычном случае это целое число или дискретизированное значение);
— вероятность этого символа по модели;
сумма идёт по всем элементам представления.Если становится кватернионом, возникает вопрос: что именно является символом для кодирования.
Наиболее реалистичные варианты (как исследовательские гипотезы):
Моделировать компоненты отдельно
- кодировать (и , если он есть) как несколько скалярных потоков;
- entropy model предсказывает параметры распределений по компонентам;
- плюс: проще всего встроить в существующие entropy bottleneck реализации;
- минус: межкомпонентная зависимость может теряться.
Моделировать как совместный вектор
- рассматривать кватернион как 3D или 4D вектор и задавать совместное распределение;
- плюс: учитывает корреляции компонент;
- минус: сложнее параметризовать и сложнее приблизить эффективным энтропийным кодированием.
Декомпозиция “модуль + направление”
- для чистого кватерниона можно выделить модуль и направление ;
- идея: кодировать и параметры направления;
- плюс: ближе к геометрии, иногда может давать более “естественную” статистику;
- минус: направление живёт на сфере, появляются сингулярности при , усложняется квантование.
Важная практическая мысль:
замена WPT фильтров на кватернионные может улучшить структуру коэффициентов, но выигрыш в битрейте появится только тогда, когда entropy model научится хорошо предсказывать их вероятности.Ресурс для базового понимания, откуда берётся entropy bottleneck: End-to-end optimized image compression.
Как аккуратно проектировать “Quaternion-WaLLoC” для научной статьи
Ниже — логика, которая помогает сделать модификацию WaLLoC исследуемой (чтобы можно было написать статью с ясной постановкой и абляциями).
Выбор представления цвета
Самый чистый старт:
кодировать пиксель как чистый кватернион ;
не использовать скалярную часть, чтобы не вводить дополнительный канал, который трудно интерпретировать.Альтернатива для экспериментов:
скалярную часть использовать как яркость (или 0), а мнимую как цветность; но это уже отдельная дизайн-гипотеза.Где именно внедрять кватернионы: “минимальная замена” и “полная замена”
Чтобы контролировать риски, удобно думать о двух режимах:
Минимальная замена
- WPT остаётся в основном вещественным, но добавляется кватернионное смешивание каналов как структурированная операция перед/после уровней WPT;
- цель: проверить, даёт ли геометрически связанное смешивание статистически более выгодные коэффициенты.
Полная замена
- сами фильтры WPT (low/high) становятся кватернионными;
- цель: получить настоящий кватернионный банк фильтров в разложении.
Для статьи обычно хорошо работает стратегия:
начать с минимальной замены как базового baseline;
затем показать, что полная замена даёт дополнительный эффект (или объяснить, почему не даёт).Согласованность анализа/синтеза
В WaLLoC анализ и синтез должны быть согласованы, иначе вы получите качество хуже даже при больших битрейтах.
Для кватернионного варианта это означает:
фиксировать соглашение о порядке умножения (например, всегда );
строить синтезирующие фильтры как “пару” к анализирующим в той же алгебре;
проверять, что при отключённом квантовании реконструкция близка к точной (насколько это позволяет ваша конструкция).Что считать distortion
На раннем этапе исследований разумно оставить привычным:
MSE или MS-SSIM по RGB пикселям.Причина:
вы меняете представление и фильтры; если одновременно поменять метрику качества, будет трудно интерпретировать результат.Итоги
Кватернионы Гамильтона дают способ представить RGB как единый объект: .
Некоммутативность кватернионного умножения — не деталь, а центральное свойство: порядок операций нужно фиксировать и соблюдать.
Связь кватернионов с 3D-поворотами объясняет, почему кватернионные операции естественно интерпретировать как структурированное межканальное смешивание.
Кватернионные банки фильтров можно интегрировать в WaLLoC прежде всего в WPT analysis/synthesis; но это неизбежно влияет на статистику коэффициентов и требует внимания к entropy bottleneck.
Главные “точки риска” при адаптации WaLLoC: согласованность анализа/синтеза и адекватная вероятностная модель для новых (кватернионных) коэффициентов.Ресурсы
Quaternion — определение, свойства, базовые операции.
Quaternions and spatial rotation — формула поворота и геометрический смысл.
Wavelet packet decomposition — структура WPT как дерева разложений.
End-to-end optimized image compression — источник идеи entropy bottleneck и end-to-end оптимизации rate–distortion.