В Стэнфордском университете в рамках курса EE274 по сжатию данных прошла лекция, посвященная революционному направлению — нейросетевому сжатию изображений (Learnt Image Compression). Преподаватель подробно разобрал, почему классические алгоритмы вроде JPEG практически исчерпали свой потенциал и как глубокое обучение позволяет обходить фундаментальные ограничения линейных преобразований. Центральной темой занятия стало преодоление математических барьеров при обучении нейросетей работе с дискретными данными.
📉 От JPEG к BPG: Эволюция традиционного сжатия и её пределы 0:05
Любое цифровое изображение представляет собой массив пикселей, характеризующийся высотой, шириной и количеством каналов, где на каждое значение обычно выделяется один байт, 10 или 12 бит. При сжатии без потерь объем данных остается огромным, поэтому индустрия давно полагается на алгоритмы с потерями. Лектор продемонстрировал это на классическом примере: несжатое исходное изображение объемом 1,1 МБ при обработке стандартным JPEG с коэффициентом сжатия 40x уменьшается до 27 КБ без видимой для человеческого глаза потери качества.
Однако при попытке сжать файл сильнее ограничения алгоритма становятся очевидными:
- На уровне 14 КБ в JPEG начинают появляться заметные артефакты блокинга.
- На уровне 8 КБ изображение превращается в кашу из пикселей и становится практически неузнаваемым.
Чтобы решить эту проблему, был разработан более современный кодек BPG (Better Portable Graphics). Он использует предсказательное кодирование и вариативный размер блоков. При том же экстремальном объеме в 8 КБ кодек BPG выдает принципиально более качественную картинку, чем JPEG, избавляясь от части искажений. Тем не менее, по словам спикера, BPG по-прежнему опирается на огромное количество вручную подобранных параметров и эвристик, что не позволяет ему стать абсолютным верхним пределом эффективности.
🧠 Революция нейросетей: Зачем сжатию данных машинное обучение 8:13
Настоящий технологический прорыв происходит тогда, когда вместо ручной настройки алгоритмов применяется машинное обучение (ML). Лектор показал изображение, сжатое с помощью нейросети до тех же 8 КБ: разница с BPG оказалась драматической, особенно в детализации сложных областей, таких как глаза человека, где полностью исчезли блочные артефакты и эффект «звона».
Традиционный конвейер сжатия (JPEG, JPEG2000, BPG) состоит из преобразования цвета, линейного преобразования (дискретное косинусное DCT, вейвлет-преобразование DWT или преобразование Фурье DFT), квантования и энтропийного кодирования. Главный недостаток этого подхода — линейность карт отображения. Лектор привел наглядную аналогию: если реальное распределение вероятностей данных имеет сложную нелинейную форму (например, форму изгиба банана), то линейные границы квантования никогда не смогут эффективно его покрыть. Нелинейные же границы позволяют точно описать геометрию распределения и передавать минимальное число векторов кодовой книги.
Кроме того, традиционные методы перегружены эвристиками:
- Матрицы квантования в JPEG подбирались на основе психовизуальных экспериментов прошлых лет, но никто не доказал их оптимальность для каждого конкретного кадра.
- Фиксированный размер блоков (например, 8x8) ограничивает захват корреляций в изображениях высокого разрешения.
- Баланс между скоростью передачи (rate) и искажениями (distortion) регулируется жесткими ручными переключателями.
По мнению исследователей, решение кроется в сквозном (end-to-end) обучении систем, где нейросеть сама в процессе оптимизации находит внутренние веса на основе финальных показателей качества и размера файла. Это направление активно развивается со времен первых знаковых работ Джорджа Тодеричи (CVPR 2015) и Лукаса Тайса (ICLR 2017), а сегодня координируется в рамках регулярного международного челленджа CLIC (Challenge on Learned Image Compression).
📐 Математика под капотом: Как подружить дискретное сжатие и непрерывный градиент 16:04
Классический конвейер машинного обучения состоит из данных, нелинейной параметризованной модели $f(x; \theta)$ и функции потерь, которая минимизируется с помощью градиентного спуска. Для сжатия изображений идеальной базовой архитектурой стал автоэнкодер (autoencoder). Он включает в себя энкодер, сжимающий входное изображение $x$ в низкоразмерное «бутылочное горлышко» — латентные переменные $z$, и декодер, восстанавливающий изображение $x'$ обратно.
Для обучения такой сети используется функция потерь в виде лагранжиана скорость-искажение:
$$L = D(x, x') + \lambda \cdot R(\hat{z})$$
Здесь $D$ — это искажение (например, L1 или L2-метрика), $\lambda$ — коэффициент баланса, а скорость $R$ приближенно выражается через энтропию как $\log \frac{1}{P(\hat{z})}$, где $P(\hat{z})$ — модель распределения вероятностей квантованных латентных признаков.
Однако здесь возникает критическая проблема: обучение нейросетей требует, чтобы вся цепочка операций была дифференцируемой, иначе невозможно вычислить градиенты для обратного распространения ошибки. Операция квантования (округления) латентных переменных $z$ в дискретные символы $\hat{z}$ имеет нулевой градиент почти везде, что полностью блокирует обучение.
Чтобы обойти это препятствие, авторы современных ML-кодеков используют два математических трюка:
- Замена квантования шумом на этапе обучения. Вместо жесткого округления к латентным переменным добавляется непрерывный равномерный шум в диапазоне $[-0.5, 0.5]$. На этапе обратного прохода применяется Straight-Through Estimator (прямой сквозной оценщик), который просто игнорирует слой квантования, передавая градиент без изменений, как через идентичное отображение.
- Параметризация дискретного распределения через непрерывную CDF. Чтобы дифференцировать дискретную таблицу вероятностей $P(\hat{z})$, ее представляют через интеграл непрерывной функции плотности вероятности (PDF) Гаусса. Вероятность вычисляется как разность кумулятивной функции распределения (CDF): $P(\hat{z}) = cdf(\hat{z} + 0.5) - cdf(\hat{z} - 0.5)$. Поскольку CDF дифференцируема, градиенты могут свободно проходить сквозь вероятностную модель.
Как иронично подметил лектор, если бы мы убрали штраф за искажение из функции потерь, нейросеть мгновенно оптимизировала бы скорость, превратив все латентные переменные в нули. Мы бы получили нулевой битрейт, но полностью потеряли бы информацию. Именно баланс под управлением $\lambda$ заставляет латентные переменные распределяться наиболее эффективным образом. Благодаря минимизации функции потерь распределение реальных символов в процессе обучения само подстраивается под выбранную математическую модель (в данном случае — Гауссиану) за счет минимизации дивергенции Кульбака-Лейблера.
💻 Практический эксперимент: Обучение нейросетевого кодека на базе MNIST 54:00
Для демонстрации теории преподаватель запустил в режиме реального времени интерактивный ноутбук Keras/TensorFlow, в котором обучался базовый ML-компрессор для рукописных цифр из датасета MNIST. Архитектура включала сверточные слои (Convolutional layers) для анализа изображения и Conv2DTranspose слои для его синтеза на стороне декодера, разделенные нелинейностями Leaky ReLU.
Параметры эксперимента выглядели следующим образом:
- Общее количество настраиваемых параметров модели ($\theta$) составило около 1 миллиона.
- Размерность изображений MNIST (28x28 пикселей) сжималась до латентного вектора из 50 элементов.
- Начальное значение гиперпараметра $\lambda$ было установлено на уровне 2000.
Во время живой демонстрации графики показали, что эмпирическое распределение полученных кодеком дискретных символов практически идеально совпало с теоретической формой Гауссианы. При кодировании реальным арифметическим кодеком (AEC) финальный размер файла оказался в пределах всего 2 бит оверхеда от теоретической оценки энтропии, составив около 89 бит на одну цифру.
Зацентровав внимание на возможностях настройки, лектор провел важный тест: снизил параметр $\lambda$ до 500. Как и предсказывала аудитория, модель мгновенно перестроила баланс: средний размер упал до 40 бит на изображение, но картинки стали гораздо более размытыми. Сеть начала вести себя как фильтр нижних частот, сглаживая высокочастотные детали ради экономии ценного битрейта.
🏆 Триумф на бенчмарках и суровая реальность: Плюсы и минусы ML-кодеков 1:12:17
Сравнение современных сквозных нейросетевых кодеков с традиционными стандартами по метрикам PSNR (пиковое отношение сигнала к шуму) и MS-SSIM (индекс структурного сходства) показывает безоговорочное превосходство нейросетей. Они уверенно обходят не только старый JPEG, но и продвинутый BPG, а также новейший индустриальный стандарт VVC/VTM. По метрике MS-SSIM, которая гораздо лучше отражает реальное человеческое восприятие, отрыв ML-решений является колоссальным.
Преимущества выученного сжатия очевидны:
- Отсутствие ручной настройки. Кодек полностью адаптируется под данные общего распределения.
- Узкодоменная специализация. Можно обучить уникальные легковесные модели под конкретные задачи: отдельно для мультфильмов, компьютерных игр, медицинских снимков или конкретных сериалов.
- Гибкие метрики потерь. Вместо жесткой привязки к среднеквадратичной ошибке (MSE) в конвейер можно встроить любую дифференцируемую модель человеческого зрения.
Тем не менее, лектор выделил две критические проблемы, которые пока мешают повсеместному внедрению ML-кодеков. Первая и главная — это вычислительная сложность и скорость работы. Исторически нейросетевые алгоритмы требовали до 20 раз больше вычислительных ресурсов для декодирования по сравнению с традиционными методами. На практике это означает, что если обычный файл открывается за секунду, то ML-вариант заставит пользователя ждать 20 секунд, что неприемлемо для коммерческих продуктов. Данная проблема постепенно решается за счет «аппаратной лотереи» — стремительного развертывания специализированных ИИ-чипов в процессорах вроде Apple M3, чипах Qualcomm и графических картах Nvidia, которые берут на себя аппаратное ускорение инференса нейросетей.
Второй скрытой угрозой является детерминизм. Разные аппаратные платформы и видеокарты по-разному реализуют операции с плавающей запятой на уровне микрокода. Малейшее расхождение в округлении весов на стороне декодера GPU может привести к катастрофической ошибке декомпрессии и полной порче восстановленного кадра. По этой причине обеспечение строгой воспроизводимости вычислений на любых устройствах остается важнейшим вызовом для инженеров.