Оптимальный транспорт

Domain adaptation через OT

Система распознавания рентген-снимков обучена на 10 000 снимков клиники Мэйо. Перенос в больницу Индии - точность падает с 91% до 67%. Разные аппараты, разные настройки яркости. Одна и та же болезнь выглядит по-другому. OT знает как «перетащить» одно облако в другое - не снимок к снимку, а распределение к распределению.

  • **Medical imaging cross-hospital transfer**: DeepJDOT на CT снимках Siemens vs GE сканеров - +14% точности сегментации опухолей без единой размеченной target-картинки
  • **Sim-to-real robotics**: OpenAI Rubik's (2019) и Boston Dynamics Spot - OT выравнивает feature space симулятора и реального мира. Политика из PhysX напрямую на физический робот
  • **NLP cross-domain**: BERT обученный на Bloomberg (финансы) адаптируется на медицинские заметки через OT alignment эмбеддингов предложений. F1 +18% против baseline
  • **Satellite imagery**: Sentinel-2 снимки Европы -> Африки. Классификация землепользования без target меток. JDOT находит соответствие «поле пшеницы» - «поле сорго» через геометрию пространства

Предварительные знания

  • Wasserstein-расстояние и интерпретация как стоимость оптимального транспорта
  • Алгоритм Sinkhorn: регуляризованный OT и его матричная форма
  • Wasserstein-расстояния
  • Алгоритм Sinkhorn

Covariate shift: формализация проблемы

Система распознавания рентген-снимков обучена на 10 000 снимков клиники Мэйо. Перенос в больницу Индии - точность падает с 91% до 67%. Разные аппараты, разные настройки яркости. Одна и та же болезнь выглядит по-другому. Классификатор не сломан - он просто никогда не видел это облако пикселей.

Формально: есть source домен с распределением $\mu_S$ на признаках $X$ и target домен с $\mu_T$. **Covariate shift** - когда $\mu_S(X) \neq \mu_T(X)$, но условное $P(Y \mid X)$ одинаково в обоих доменах. Метка зависит от объекта, а не от клиники. Задача: обучить классификатор на source, который работает на target, где меток нет совсем.

**Масштаб проблемы в NLP**. Bert обученный на Wikipedia теряет F1 с 91% до 73% при переносе в медицинские заметки (Romanov & Shivade 2018). GPT-3 обученный на Reddit показывает другое распределение токенов, чем тот же GPT-3 на юридических документах. CLIP уходит от covariate shift через alignment текст-картинка - и это неявная domain adaptation через OT-inspired пространство.

Классические методы борьбы: importance weighting (переоценить source-примеры, похожие на target), fine-tuning (минимальный labeled target), adversarial DA (DANN, Ganin 2016 - обучить domain-agnostic признаки). Но все они либо требуют меток в target, либо не дают гарантий на расстояние между доменами. OT даёт и то, и другое.

Covariate shift означает, что $\mu_S(X) \neq \mu_T(X)$, но $P(Y \mid X)$ одинаков. Что из этого следует для переноса классификатора?

OT-карта как мост между доменами

OT предлагает элегантный ответ: найти карту $T: \mathcal{X}_S \to \mathcal{X}_T$, которая переводит $\mu_S$ в $\mu_T$ с минимальной стоимостью. Формально это push-forward $T_\# \mu_S = \mu_T$ при $\min_T \int c(x, T(x)) \, d\mu_S(x)$. Стоимость $c = \|x - y\|^2$ - квадратичная. Карта $T$ - оптимальный транспорт.

Идея Courty et al. (2017, NeurIPS): применить $T$ к source-точкам, получить адаптированное облако, обучить классификатор на адаптированных данных с исходными метками. Три шага: (1) оценить $T$ через Sinkhorn, (2) вычислить $T(x_i^S)$ для каждой source-точки, (3) обучить $f$ на $\{T(x_i^S), y_i^S\}$.

**Почему именно Wasserstein, а не MMD или KL**. Maximum Mean Discrepancy (MMD) не даёт конструктивной карты $T$ - только число расстояния. KL-дивергенция требует оценки плотностей, в высоких размерностях это ненадёжно. Wasserstein через OT-план $\gamma$ сразу даёт попарное соответствие: $\gamma(i,j)$ говорит, сколько массы точки $x_i^S$ идёт к $x_j^T$. Это карта, а не просто метрика.

Sim-to-real в robotics - прямое применение. OpenAI Rubik's (2019): политика обучена в симуляторе (PhysX) - идеальное трение, идеальные пальцы. Реальный робот - другой домен. Domain randomization + OT-выравнивание feature space позволяют перенести политику без дополнительного обучения на реальном роботе. Boston Dynamics Spot: аналогичная схема для terrain adaptation.

OT-карта $T$ вычислена через Sinkhorn. Как применить её для domain adaptation без меток в target?

JDOT: совместная оптимизация транспорта и классификатора

Базовый OT-DA двухшаговый: сначала $T$, потом $f$. Проблема - ошибки накапливаются: плохая $T$ даёт плохой обучающий набор для $f$. Courty et al. (2017, NIPS) предложили **Joint Distribution Optimal Transport (JDOT)**: оптимизировать $T$ и $f$ совместно, включив prediction loss прямо в транспортную стоимость.

Стоимость переноса теперь двойная: геометрическое расстояние $\|x_i^S - x_j^T\|^2$ плюс prediction loss $\mathcal{L}(f(x_j^T), y_i^S)$. Если классификатор $f$ хорошо предсказывает метку source-точки $y_i^S$ на target-точке $x_j^T$ - пара $(i,j)$ получает низкую стоимость и высокий вес в плане $\gamma$. Транспорт и классификатор учат друг друга.

**Alternating optimization**. Задача JDOT решается поочерёдно: 1. зафиксировать $f$, обновить $\gamma$ через Sinkhorn с новой стоимостью 2. зафиксировать $\gamma$, обновить $f$ минимизируя взвешенный prediction loss $\sum_{i,j} \gamma_{ij} \mathcal{L}(f(x_j^T), y_i^S)$. Алгоритм сходится к локальному минимуму. Схема работает как EM: E-шаг (план $\gamma$) и M-шаг (классификатор $f$).

NLP cross-domain transfer - прямое применение. Модель обученная на финансовых новостях (Bloomberg) адаптируется на медицинские заметки. Признаки $X$ - эмбеддинги предложений. Стоимость JDOT: косинусное расстояние + NER prediction loss. JDOT находит переписку «доходность акций» - «уровень глюкозы» через геометрию пространства, не через словарь.

В JDOT стоимость переноса включает $\lambda \cdot \mathcal{L}(f(x_j^T), y_i^S)$. Что происходит при $\lambda \to 0$?

DeepJDOT и transport в feature space

JDOT работает в input space. Satellite imagery adaptation: source - Sentinel-2 снимки Европы, target - Sentinel-2 снимки Африки. В пикселях расстояние огромное: разный рельеф, разная растительность. OT в pixel space теряет смысловое соответствие. Решение - переносить не в пространстве пикселей, а в feature space нейросети.

**DeepJDOT** (Damodaran et al. 2018, ECCV): карта $T$ параметризована нейросетью $g_\theta$. Вместо OT в $\mathcal{X}$, оптимальный транспорт вычисляется в feature space $g_\theta(\mathcal{X})$. Потери JDOT теперь включают и alignment эмбеддингов, и prediction loss - всё дифференцируемо через $\theta$.

Три объекта оптимизируются совместно: feature extractor $g_\theta$, план $\gamma$ (через Sinkhorn), классификатор $f$. Gradient flow через весь граф. $g_\theta$ учится строить признаковое пространство, в котором оба домена легко выровнять - domain-invariant representations.

**Sliced Wasserstein для эффективности**. Sinkhorn на $n \times n$ матрице стоимостей - $O(n^2)$ памяти. При больших батчах это бутылочное горлышко. Решение: Sliced Wasserstein Distance (SWD) - проецировать распределения на случайные 1D-прямые и считать 1D-OT аналитически. SWD аппроксимирует $W_2$ и вычисляется за $O(n \log n)$ через сортировку. В DeepJDOT на медицинских датасетах SWD даёт ту же точность при в 8 раз меньшей памяти.

LoRA - неявный OT-inspired механизм. При адаптации большой языковой модели на новый домен LoRA обновляет $\Delta W = BA$ (низкоранговый апдейт). Геометрически это транспорт в пространстве весов: от source-распределения ответов к target-распределению. Courty 2017 для данных, LoRA 2022 для весов - одна идея в двух масштабах.

Medical imaging cross-hospital transfer - ключевой кейс DeepJDOT. CT снимки из больницы A (Siemens scanner) и больницы B (GE scanner): разные ядра реконструкции, разные уровни шума. DeepJDOT на ResNet-50: encoder выравнивает feature distributions через Sliced Wasserstein, classifier переносится напрямую. Точность сегментации опухолей: +14% по сравнению с no-adaptation baseline.

Domain adaptation через OT - академическая игрушка, в продакшне используют просто fine-tuning на target

Fine-tuning требует меток в target. OT-DA работает без меток и даёт теоретические гарантии через Wasserstein-расстояние

В медицинской визуализации размечать target данные стоит USD 300-500 за снимок (врач-радиолог). DeepJDOT даёт +14% по сравнению с no-adaptation при нулевом target-лейблинге. В sim-to-real robotics реальный данные вообще опасны для сбора - агент ломается при адаптации. OT-DA - не опция, а необходимость в этих сценариях.

DeepJDOT вычисляет OT в feature space $g_\theta(\mathcal{X})$, а не в input space. Какое главное преимущество?

Ключевые идеи

  • **Covariate shift**: $\mu_S(X) \neq \mu_T(X)$, но $P(Y \mid X)$ одинаков. OT-DA - выровнять облака признаков без меток в target
  • **OT-карта $T$**: $T_\# \mu_S = \mu_T$ с минимальной квадратичной стоимостью. Вычисляется через Sinkhorn. $T(x_i^S)$ - адаптированная source-точка в target-пространстве
  • **JDOT** (Courty 2017): совместная оптимизация транспорта и классификатора. Стоимость = $\alpha \|x^S - x^T\|^2 + \lambda \mathcal{L}(f(x^T), y^S)$. EM-схема чередования
  • **DeepJDOT** (Damodaran 2018): OT в feature space нейросети $g_\theta$. Sliced Wasserstein для эффективности $O(n \log n)$. Три объекта ($g_\theta$, $\gamma$, $f$) оптимизируются совместно
  • **Применения**: медицина (cross-hospital), robotics (sim-to-real), NLP (cross-domain NER), satellite imagery - везде, где target меток нет или их сбор стоит дорого

Связанные темы

Domain adaptation через OT соединяет геометрию транспорта с практикой ML:

  • Wasserstein GAN — DeepJDOT оптимизирует Wasserstein в feature space; WGAN - в output space через дуальность
  • Wasserstein-барицентры — Multi-source DA - барицентр нескольких source-доменов
  • Теорема Бренье — OT-карта $T$ между доменами - конструкция Бренье при $c = \|x-y\|^2$

Вопросы для размышления

  • JDOT требует вычислять Sinkhorn на каждой итерации. При батче 1000 точек это матрица $1000 \times 1000$. Как Sliced Wasserstein решает проблему масштабируемости и какую точность при этом теряет?
  • Covariate shift предполагает $P(Y \mid X)$ одинаков в обоих доменах. Что происходит с JDOT, если это предположение нарушено - например, в медицинском датасете разные больницы имеют разные протоколы лечения и разные исходы?
  • DeepJDOT одновременно оптимизирует $g_\theta$, $\gamma$ и $f$. Нарисуйте граф вычислений: через какие переменные течёт градиент при обновлении $\theta$, и почему $\gamma$ обновляется отдельно через Sinkhorn?

Связанные уроки

  • ot-03-wasserstein — Wasserstein-расстояние - мера несовместимости доменов в JDOT
  • ot-04-sinkhorn — Sinkhorn вычисляет OT-план между эмбеддингами source и target за $O(n^2)$
  • ot-07-wgan — WGAN и DeepJDOT оба учат нейросеть минимизировать Wasserstein через дуальность
  • ot-09-barycenters — Wasserstein-барицентр нескольких доменов - обобщение DA на multi-source адаптацию
  • ot-06-brenier — Карта Монжа $T$ между доменами - та же конструкция, что потенциал Бренье при $c = \|x-y\|^2$
  • ml-01
Domain adaptation через OT

0

1

Войти