Лектор из Стэнфорда: «Нейросети превзошли JPEG и BPG»

Stanford Online 1,6 тыс. 1 ч 21 мин 6 мин 18.04.2024
Главное

В Стэнфордском университете в рамках курса EE274 по сжатию данных прошла лекция, посвященная революционному направлению — нейросетевому сжатию изображений (Learnt Image Compression). Преподаватель подробно разобрал, почему классические алгоритмы вроде JPEG практически исчерпали свой потенциал и как глубокое обучение позволяет обходить фундаментальные ограничения линейных преобразований. Центральной темой занятия стало преодоление математических барьеров при обучении нейросетей работе с дискретными данными.

📉 От JPEG к BPG: Эволюция традиционного сжатия и её пределы 0:05

Любое цифровое изображение представляет собой массив пикселей, характеризующийся высотой, шириной и количеством каналов, где на каждое значение обычно выделяется один байт, 10 или 12 бит. При сжатии без потерь объем данных остается огромным, поэтому индустрия давно полагается на алгоритмы с потерями. Лектор продемонстрировал это на классическом примере: несжатое исходное изображение объемом 1,1 МБ при обработке стандартным JPEG с коэффициентом сжатия 40x уменьшается до 27 КБ без видимой для человеческого глаза потери качества.

Однако при попытке сжать файл сильнее ограничения алгоритма становятся очевидными:

Чтобы решить эту проблему, был разработан более современный кодек BPG (Better Portable Graphics). Он использует предсказательное кодирование и вариативный размер блоков. При том же экстремальном объеме в 8 КБ кодек BPG выдает принципиально более качественную картинку, чем JPEG, избавляясь от части искажений. Тем не менее, по словам спикера, BPG по-прежнему опирается на огромное количество вручную подобранных параметров и эвристик, что не позволяет ему стать абсолютным верхним пределом эффективности.

🧠 Революция нейросетей: Зачем сжатию данных машинное обучение 8:13

Настоящий технологический прорыв происходит тогда, когда вместо ручной настройки алгоритмов применяется машинное обучение (ML). Лектор показал изображение, сжатое с помощью нейросети до тех же 8 КБ: разница с BPG оказалась драматической, особенно в детализации сложных областей, таких как глаза человека, где полностью исчезли блочные артефакты и эффект «звона».

Традиционный конвейер сжатия (JPEG, JPEG2000, BPG) состоит из преобразования цвета, линейного преобразования (дискретное косинусное DCT, вейвлет-преобразование DWT или преобразование Фурье DFT), квантования и энтропийного кодирования. Главный недостаток этого подхода — линейность карт отображения. Лектор привел наглядную аналогию: если реальное распределение вероятностей данных имеет сложную нелинейную форму (например, форму изгиба банана), то линейные границы квантования никогда не смогут эффективно его покрыть. Нелинейные же границы позволяют точно описать геометрию распределения и передавать минимальное число векторов кодовой книги.

Кроме того, традиционные методы перегружены эвристиками:

По мнению исследователей, решение кроется в сквозном (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-кодеков используют два математических трюка:

  1. Замена квантования шумом на этапе обучения. Вместо жесткого округления к латентным переменным добавляется непрерывный равномерный шум в диапазоне $[-0.5, 0.5]$. На этапе обратного прохода применяется Straight-Through Estimator (прямой сквозной оценщик), который просто игнорирует слой квантования, передавая градиент без изменений, как через идентичное отображение.
  2. Параметризация дискретного распределения через непрерывную 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.

Параметры эксперимента выглядели следующим образом:

Во время живой демонстрации графики показали, что эмпирическое распределение полученных кодеком дискретных символов практически идеально совпало с теоретической формой Гауссианы. При кодировании реальным арифметическим кодеком (AEC) финальный размер файла оказался в пределах всего 2 бит оверхеда от теоретической оценки энтропии, составив около 89 бит на одну цифру.

Зацентровав внимание на возможностях настройки, лектор провел важный тест: снизил параметр $\lambda$ до 500. Как и предсказывала аудитория, модель мгновенно перестроила баланс: средний размер упал до 40 бит на изображение, но картинки стали гораздо более размытыми. Сеть начала вести себя как фильтр нижних частот, сглаживая высокочастотные детали ради экономии ценного битрейта.

🏆 Триумф на бенчмарках и суровая реальность: Плюсы и минусы ML-кодеков 1:12:17

Сравнение современных сквозных нейросетевых кодеков с традиционными стандартами по метрикам PSNR (пиковое отношение сигнала к шуму) и MS-SSIM (индекс структурного сходства) показывает безоговорочное превосходство нейросетей. Они уверенно обходят не только старый JPEG, но и продвинутый BPG, а также новейший индустриальный стандарт VVC/VTM. По метрике MS-SSIM, которая гораздо лучше отражает реальное человеческое восприятие, отрыв ML-решений является колоссальным.

Преимущества выученного сжатия очевидны:

Тем не менее, лектор выделил две критические проблемы, которые пока мешают повсеместному внедрению ML-кодеков. Первая и главная — это вычислительная сложность и скорость работы. Исторически нейросетевые алгоритмы требовали до 20 раз больше вычислительных ресурсов для декодирования по сравнению с традиционными методами. На практике это означает, что если обычный файл открывается за секунду, то ML-вариант заставит пользователя ждать 20 секунд, что неприемлемо для коммерческих продуктов. Данная проблема постепенно решается за счет «аппаратной лотереи» — стремительного развертывания специализированных ИИ-чипов в процессорах вроде Apple M3, чипах Qualcomm и графических картах Nvidia, которые берут на себя аппаратное ускорение инференса нейросетей.

Второй скрытой угрозой является детерминизм. Разные аппаратные платформы и видеокарты по-разному реализуют операции с плавающей запятой на уровне микрокода. Малейшее расхождение в округлении весов на стороне декодера GPU может привести к катастрофической ошибке декомпрессии и полной порче восстановленного кадра. По этой причине обеспечение строгой воспроизводимости вычислений на любых устройствах остается важнейшим вызовом для инженеров.

💬 Цитаты

«Сжатие с выученными параметрами позволяет выйти за рамки традиционных компрессоров, заменяя линейные преобразования нелинейными.»

Преподаватель Стэнфорда 13:48

«Слои нейросети должны быть дифференцируемыми, чтобы мы могли проводить обучение с помощью градиентного спуска.»

Преподаватель Стэнфорда 23:41

«Нейросетевые кодеки показывают выдающиеся результаты на бенчмарках, превосходя даже самые современные стандарты.»

Преподаватель Стэнфорда 14:04
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
JPEG
Популярный стандарт сжатия изображений с потерями, использующий дискретное косинусное преобразование.
BPG (Better Portable Graphics)
Современный формат сжатия изображений, обеспечивающий более высокое качество, чем JPEG, при аналогичном размере.
Автоэнкодер
Архитектура нейросети, которая сжимает входные данные в компактное представление, а затем восстанавливает их обратно.
Латентные переменные
Скрытые компактные признаки данных, формирующиеся в узком горлышке автоэнкодера.
Straight-Through Estimator
Метод градиентного оценивания, позволяющий пропускать градиенты через недифференцируемые операции, такие как округление.
📊 Цифры
🗓 Хронология
  1. 2015 Выход ранней знаковой работы Тодеричи по использованию ML для сжатия изображений на CVPR.
  2. 2017 Публикация фундаментального исследования Тайса по выученному сжатию на конференции ICLR.
  3. 2022 Выпуск бенчмарка эффективности выученных кодеков в сравнении с VVC/VTM стандартами.
  4. 2023 Проведение лекции по продвинутому нейросетевому сжатию в рамках курса Стэнфорда EE274.
⚖️ Другая сторона
Искусственный интеллект Stanford Online кодек BPG автоэнкодер квантование данных