Files
Pavlenko_disser/notes/Симметричный retrieval-loss в контексте CVGL - подробный разбор.md

173 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
tags:
- CVGL
- loss
---
# Симметричный retrieval-loss в контексте CVGL: подробный разбор
## 1. Что такое симметричный loss и почему он нужен в CVGL
В задаче cross-view geo-localization (CVGL) у нас две **асимметричные галереи**: drone-снимки (запрос) и satellite-снимки (галерея, привязанная к координатам). Retrieval работает в обе стороны:
- **drone → sat** — основной сценарий: БПЛА сделал кадр, нужно найти ближайший спутник
- **sat → drone** — обратный: для заданной точки на спутнике найти все drone-кадры
Симметричный loss — это **двухсторонний InfoNCE**, который оптимизирует обе матрицы сходства одновременно:
```
similarity = q̂ · ĝᵀ / τ # матрица B×B (B — размер батча)
L_q→g = CrossEntropy(similarity, labels) # по строкам (drone к sat)
L_g→q = CrossEntropy(similarityᵀ, labels) # по столбцам (sat к drone)
L_symm = w_q · L_q→g + w_g · L_g→q
```
Где `labels = [0, 1, 2, ..., B-1]` (i-й drone парится с i-м sat в батче).
Это идёт **от CLIP** (Radford et al., 2021), где image↔text retrieval требует симметрии. **Sample4Geo** (Deuser et al., ICCV 2023) был первой работой, где этот шаблон системно перенесён в CVGL с дополнительным hard negative sampling.
## 2. Что именно делает автор в текущем пайплайне
Из схемы пайплайна:
```python
similarity = q̂ · ĝᵀ / τ # τ learnable, init 0.07, clamp [0.01, 0.5]
loss = 0.6 · CE(qg) + 0.4 · CE(gq) # label_smoothing=0.1
```
Здесь **три нестандартных компонента**:
1. **Несимметричные веса 0.6 / 0.4** вместо классических 0.5 / 0.5 (CLIP, Sample4Geo)
2. **Learnable τ** с явным clamp в [0.01, 0.5]
3. **Label smoothing 0.1**
Каждый из них — это потенциальное защищаемое решение, если есть обоснование, **почему именно так**. И здесь начинается интересное.
## 3. Почему именно 0.6 / 0.4, а не 0.5 / 0.5: SNR-обоснование
Это ключевой момент, прямо связанный с П1 (SNR-анализ деструктивности) и П3 (двухтрактовый gated fusion).
### Асимметрия информации drone vs sat в вашем пайплайне
|Сторона|Что у нас есть|Информативность|
|---|---|---|
|**drone (query)**|image + T_meta (высота, yaw) + T_L1 + T_L2 + T_L3|**высокая, разнородная**|
|**satellite (gallery)**|image (часто без caption — passthrough)|**низкая по тексту, стабильная по image**|
Классический симметричный loss 0.5 / 0.5 неявно предполагает **симметрию информационных каналов**. У нас её нет:
- При **CE(q→g)** мы спрашиваем: «среди sat найди тот, что соответствует богатому drone-описанию». Это **более информативная задача**.
- При **CE(g→q)** мы спрашиваем: «среди drone (с богатыми описаниями) найди тот, что соответствует бедному sat». Это **менее информативная задача**, поскольку у sat нет caption — он работает почти как image-only.
**Гипотеза автора:** усиление более информативного направления (drone→sat, вес 0.6) даёт более плотный градиент по обучаемым параметрам gate и InfoScore-маршрутизатора, поскольку именно в этом направлении SM-InfoScore drone-стороны выходит за нулевую отметку.
### Литературная база для несимметричных весов
- **RzenEmbed** (arXiv:2510.27350, 2025) — explicit task-specific weighting для multi-task multimodal retrieval; авторы показывают, что фиксированные веса между разными retrieval-направлениями subooptimal.
- **«Geometric Mechanics of Contrastive Learning»** (arXiv:2601.19597, 2025) — формальный анализ alignment potentials в multi-modal contrastive learning; persistent negative cross-modal divergence coupling при гетерогенных модальностях. Прямо обосновывает несимметричную балансировку при разной плотности информации в модальностях.
- **Sample4Geo** (Deuser et al., ICCV 2023, arXiv:2303.11851) — использует **симметричный** loss 0.5 / 0.5, но без текста; следовательно, информация в drone и sat у них действительно симметрична. Это даёт основание сказать: «в нашем сетапе симметрия информации нарушена → веса 0.6 / 0.4 обоснованы».
- **CLIP** (Radford et al., 2021) — image-text retrieval, 0.5 / 0.5; работает для аккуратно отфильтрованных image-text пар, где обе стороны информативно сопоставимы.
## 4. Связь с П1 (SNR-анализ деструктивности)
Это самое тонкое и ценное место для диссертации. SNR-анализ из П1 описывает деструктивность residual внутри Gated-блока:
```
noise_total = (2 g) · n # шум удваивается при g → 1
```
Симметричный loss усиливает этот эффект ещё раз, но уже на уровне градиента:
- При **низком SNR на sat-стороне** (passthrough, без caption) обратный градиент через CE(g→q) шумный — он распространяется на shared encoder и shared MONA адаптеры **обоих** ветвей.
- Веса 0.6 / 0.4 уменьшают вклад этого шумного градиента **на 20%** по сравнению с 0.5 / 0.5.
То есть: **несимметричный loss — это второй уровень фильтрации шума, дополняющий ARGF-InfoScore на уровне feature-fusion**. Это можно сформулировать как защищаемое утверждение:
> «Информационная асимметрия модальностей в задаче CVGL компенсируется двумя дополняющими механизмами: (а) маршрутизацией residual в Gated-блоке через SM-InfoScore, (б) балансировкой направлений симметричного retrieval-loss обратно пропорционально SNR соответствующего направления».
## 5. Learnable τ с clamp [0.01, 0.5]
Температура τ — это критический гиперпараметр, который определяет **остроту softmax** в InfoNCE:
```
P(positive_i) = exp(sim_ii / τ) / Σ_j exp(sim_ij / τ)
```
- **τ → 0**: распределение sharp, модель агрессивно учится только на самом близком позитиве и самом близком негативе (фокус на hard examples) — но риск коллапса.
- **τ → ∞**: распределение плоское, gradient signal слабый.
### Init 0.07 — это CLIP-default
OpenAI CLIP (Radford et al., 2021) использует τ = 0.07 как стартовое значение для learnable logit scale. Это эмпирически найденное значение, оно отлично сходится для image-text задач.
### Clamp [0.01, 0.5]
Без clamp learnable τ может уйти в 0 (numerical instability) или в ∞ (нулевой gradient). Sample4Geo (ICCV 2023) использует clamp; конкретные границы — инженерное решение.
### Связь с темой
Современные работы оспаривают необходимость τ как самостоятельного параметра:
- **«Temperature-Free Loss»** (arXiv:2501.17683, 2025) предлагает loss без τ через нормализацию gradient norm; показывает, что learnable τ — это **компенсация дисбаланса масштабов в multi-task**, а не «температура» в физическом смысле.
- **RzenEmbed** (arXiv:2510.27350, 2025) использует task-specific learnable τ для каждого retrieval-направления отдельно — это даже более сильный вариант, чем у автора.
**Возможное расширение N3_H3:** учитывая, что у нас есть две задачи в одном loss (q→g и g→q) с разной информативностью, можно сделать **две learnable τ** (τ_q→g и τ_g→q) вместо одной. Это даст ещё одну точку для защиты — но это решение нужно проверять отдельным экспериментом, и оно может конфликтовать с N3_H1 (раздельные гейты α_sem и α_meta).
## 6. Label smoothing 0.1
Стандартный приём от Szegedy et al. (Inception-v3, 2016): hard labels [0, 0, 1, 0, ...] заменяются на soft [ε/(K-1), ..., 1-ε, ..., ε/(K-1)] с ε = 0.1.
В retrieval-контексте это **смягчает наказание** за putting probability on hard negatives — что особенно важно при сильных hard negatives в Sample4Geo-стиле. Если в батче есть «почти-positive» (например, соседний sat-снимок с перекрытием), полное обнуление вероятности по нему через one-hot — слишком жёстко.
Это **не уникальное решение** автора — оно стандартное в retrieval — но его упоминание в защите даст плюсы как тщательность.
## 7. Что из всего этого тянет на отдельную гипотезу
Я бы пересмотрел внутреннюю структуру П3 и предложил такую разбивку гипотез по симметричному loss:
### Уточнённый N3_H2 — Гипотеза асимметричных весов
> Информационно-взвешенная балансировка 0.6·CE(q→g) + 0.4·CE(g→q) обоснована SNR-асимметрией drone- и sat-стороны и даёт R@1 на drone→sat выше, чем 0.5/0.5 (Sample4Geo); функционал достигает максимума при w_q ∈ [0.55, 0.65].
**Проверка:** grid {0.5/0.5, 0.55/0.45, 0.6/0.4, 0.65/0.35, 0.7/0.3} на University-1652 + SUES-200. Дополнительно — измерить **корреляцию между оптимальным w_q и средним SM-InfoScore(drone) SM-InfoScore(sat)** на разных датасетах. Если корреляция значимая (Pearson |ρ| ≥ 0.5, p < 0.05) — это будет сильное доказательство связи П1 и П3.
### Возможный новый N3_H3* — Гипотеза dual learnable τ
> Замена одной learnable τ на две τ_q→g и τ_g→q даёт дополнительный прирост R@1 ≥ 0.3% абс., поскольку оптимальная острота softmax зависит от информативности направления retrieval.
**Проверка:** ablation {single τ, dual τ}; ожидаем τ_q→g < τ_g→q (более sharp для более информативного направления).
### N3_H3 в его текущей формулировке — про learnable vs fixed τ
Остаётся как защита самого базового решения learnable τ — это «лёгкая» гипотеза, легко проверяемая.
## 8. Риски и контраргументы
**Риск 1: 0.6 / 0.4 — это «магические числа».** Оппонент спросит: «Почему именно 0.6, а не 0.55 или 0.65?» Ответ должен быть готов: **grid-search в N3_H2 покажет максимум в этом диапазоне, и эти числа — эмпирический оптимум**. Защита через эмпирическое обоснование легитимна — так же делает CLIP с τ = 0.07.
**Риск 2: «Симметричный loss с весами 0.6/0.4 — это просто несимметричный loss».** Терминологически — да. Но в литературе термин «симметричный contrastive loss» используется для **двухстороннего** loss (q→g + g→q) независимо от весов. Уточнение: в диссертации стоит называть его «двухсторонним информационно-взвешенным retrieval-loss» — это точнее.
**Риск 3: Sample4Geo показывает SOTA с 0.5/0.5.** Sample4Geo — **image-only**, информационная асимметрия отсутствует. У нас она есть из-за текста. Это разводящий аргумент.
**Риск 4: При reverse-setup (sat имеет рандомный caption, а drone — нет) асимметрия может перевернуться.** Можно проверить это экспериментально: искусственно поменять «богатую» сторону и показать, что оптимальный w_q < 0.5. Это сделает аргумент железобетонным.
## 9. Что добавить в диссертацию по этому разделу
Конкретные действия, которые усилят защиту по симметричному loss:
1. **Аналитический график** SNR(drone) SNR(sat) vs оптимальный w_q на 3 датасетах — покажет, что веса 0.6/0.4 не магические, а коррелируют с информационной асимметрией.
2. **Reverse-setup эксперимент** (см. риск 4) — показать, что метод не зависит от конкретной интерпретации direction.
3. **Связь с InfoScore через формальный вывод**: если SM-InfoScore_drone в среднем по датасету в k раз больше SM-InfoScore_sat, то оптимальное соотношение весов соответствует w_q / w_g ≈ √k (это можно вывести из информационной интерпретации InfoNCE как нижней оценки взаимной информации, см. van den Oord et al., 2018).
4. **Дополнительная диагностика**: trajectory learnable τ во время обучения — если τ растёт от 0.07 к 0.15 (типичное поведение для multimodal CLIP), это нормально; если падает к clamp 0.01 — модель учит шум, проблема.
## Резюме
Симметричный retrieval-loss в вашей формулировке — это **не побочный технический элемент**, а полноценный компонент защиты, который:
- Усиливает П1 (SNR-анализ) на уровне градиента, а не только feature-fusion
- Реализует часть П3 (системно-прикладное положение) через несимметричные веса 0.6/0.4 как информационная компенсация
- Имеет 3 поднаправления для гипотез: w_q-баланс (N3_H2), learnable τ (N3_H3), dual τ (потенциальный N3_H3*)
- Полностью совместим с edge-сценарием (loss используется только при обучении, в inference остаётся только cosine similarity)
Я бы рекомендовал в финальной версии диссертации **явно прописать связь между несимметричным loss и SNR-анализом из П1** — это сделает три пункта НН концептуально связанными, а не «три параллельные идеи». Хотите, разверну этот вывод в виде конкретного раздела для текста диссера?