Files
Pavlenko_disser/3_work/1_todo.md
2026-06-09 10:55:58 +03:00

304 lines
26 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.
## 0. Главный вердикт
---
## 1. Где HID-Fusion уже соответствует SOTA (не трогать)
|Компонент|Подтверждение в литературе|
|---|---|
|**InfoNCE как ядро L_cvi**|Sample4Geo (98.68% R@1 CVUSA), GeoSSM (96.02%), GeoBridge, GLEAM — все на InfoNCE; Triplet вытеснена|
|**Симметричный Loss (drone↔sat и sat↔drone)**|Sample4Geo, GLEAM — стандартная практика|
|**Ортогональные проекции P_M⊥P_S, Q_desc⊥Q_cvi**|CVD M5/P16, GeoDTR+ — disentanglement через ортогональность подтверждён|
|**CKA-based disentanglement (L_disent)**|Современная замена MINE; O(Bd) дешевле, стабильнее градиент|
|**Дифференциальная bias-инициализация шлюзов (0.4/0.3/0.2)**|WeatherPrompt F14 (zero-init γ,β), WildDet3D F33 — концепция modality injection с малыми инициалами валидна|
|**Curriculum 3 фазы с graceful degradation**|GLEAM two-phase warmup, GeoBridge поэтапное обучение — концепт принят в SOTA|
|**MobileCLIP2-s0 как text encoder с partial unfreeze**|Sweet spot для текста БПЛА; альтернатив с лучшим Pareto нет (см. §6)|
|**Иерархическая декомпозиция в 3 листа**|**Не покрыто литературой:** CVD = 2 фактора, GeoText-1652 = 2 уровня текста (image/region), Aquila VLM6 — 2 уровня. **Это новизна.**|
|**L_hier (реконструкционная когерентность Level-2 → Level-1)**|**Не покрыто литературой.** Новизна.|
|**L_center на основе SM-InfoScore (Mahalanobis к EMA-центрам)**|**Не покрыто в CVGL.** Стандартный L2-center заменён на Mahalanobis — новизна.|
---
## 2. Конкурентные работы 20252026 (pre-publication threats)
| Работа | Год | R@1 (Univ-1652) | Что делает | Угроза | Контрмера |
| --------------------------- | :--: | :--------------------------------: | ----------------------------------------------- | :------------------------------------: | ---------------------------------------------------------------------------------- |
| **CGSI** (P64) | 2025 | 95.45% | DINOv2+BERT+metadata, late fusion HBP | 🔴 Критично — text+metadata fusion | Подчеркнуть **иерархию (3 листа)** + L_cvi на CVI-подпр.; CGSI flat-fusion |
| **GeoBridge** (P58/M10) | 2026 | 94.89% | DINOv2+BERT+meta, semantic anchoring | 🔴 Критично — text как «якорь» | HID не использует text как anchor; явная декомпозиция typов текста (T_meta/L12/L3) |
| **MMGeo** (P50) | 2026 | 94.81% | 5-modal mutable token | 🟠 Среднее — но out of scope (5-modal) | Кандидатская = 2 модальности; MMGeo цитировать как шире-задачный baseline |
| **CVD** (M5/P16) | 2025 | +12% поверх baseline | Content/Viewpoint disentanglement (vision-only) | 🟠 Среднее — disentanglement | HID = 3 листа vs CVD = 2; vision+text vs vision-only |
| **(MGS)²** (P44) | 2026 | 97.50% | Depth + multi-scale geometric | 🟢 Не в scope (depth) | Цитировать как upper bound при depth-priors; HID = vision+text only |
| **GeoText-1652** (P57/VLM2) | 2024 | 13.6% T→I | Region-level text + 9-zone | 🟢 Низкая — это benchmark | HID использует его как evaluation set, цитирует как мотивацию для T_L12 |
| **GeoDTR+** (P11) | 2023 | 95.05% (CVUSA) | Geometric disentangle + CHSG aug | 🟢 Низкая — vision-only | CHSG как идея для аугментаций (см. §3) |
| **Sample4Geo** (P10) | 2023 | 98.68% (CVUSA), 92.65% (Univ-1652) | InfoNCE + GPS-DSS sampling | 🟡 Базовый baseline | Использовать GPS-DSS как стратегию sampling в L_cvi |
**Стратегическая отстройка HID-Fusion:** новизна = **двухуровневая иерархия + 3 типа текста + L_cvi/L_disent/L_hier/L_center как авторские**. CGSI/GeoBridge — это flat fusion, не иерархия. CVD — это 2 фактора, не 3. GeoText-1652 — это benchmark, не архитектура.
---
## 3. Что **добавить** в HID-Fusion (точечные коррекции, ранжированы по приоритету)
### 🔴 P1 — критические, сделать в S0S2
#### 3.1. CHSG-аугментация (Layout Simulation) для L_cvi
**Источник:** GeoDTR+ (P11), +7.52% R@1 cross-area на CVUSA.
**Что:** для каждой пары `(I_drone, I_sat)` создавать 2 layout-shifted варианта спутникового снимка (random translation 020%, без вращения). Батч становится `2B` пар. Это даёт «бесплатные» hard negatives внутри батча без mining.
**Применимо к HID:** работает в Фазе 1 (DISC) и Фазе 2 (full HID), не конфликтует с curriculum.
**Риск:** дополнительная аугментация — нужно проверить, что текстовые описания (`T_L12`, `T_L3`) не теряют валидности при shift. Решение: применять только к спутнику, текстовые описания при shift сохраняются.
**Действие:** добавить `LayoutShiftAug` в dataloader S0; включить с эпохи 16 (Фаза 2).
#### 3.2. Hard-negative mining: GPS-then-DSS вместо in-batch random
**Источник:** Sample4Geo (P10), +9.46% R@1 от GPS-sampling, +11.71% от DSS, вместе +12.63% на VIGOR.
**Что:** заменить in-batch negatives для `L_cvi` на двухфазную стратегию:
- **Фаза 1 (cold start, эпохи 115):** GPS-sampling — для каждого якоря брать k=64 негативов из географических соседей (100500 м, исключая 100-метровую зону «может быть позитив»).
- **Фаза 2 (16+):** DSS — каждые 4 эпохи пересчёт эмбеддингов всего датасета, top-128 ближайших по cosine, батч = `k/2 top + k/2 random` с маской 100 м.
**Применимо к HID:** не меняет архитектуру, только стратегию формирования батчей в L_cvi.
**Риск:** DSS — overhead full forward-pass каждые 4 эпохи. Для GeoText-1652 (~1652 здания × несколько ракурсов) это терпимо, для World-UAV (~927K) — критично. Решение: использовать EMA-encoder для DSS-пересчёта.
**Действие:** реализовать в S6 (CVGL); для S1S5 регрессии на VisLoc — оставить in-batch (там не нужно).
#### 3.3. Quality-filtering captions Поляковой ПЕРЕД подачей в HID
**Источник:** SC3 Quality-Driven Curation (Полякова/3_scoring), top-30% отфильтрованных данных > 100% сырых; H2 Seeing Clearly (-11pp hallucination); H3 RSPOPE.
**Что:** перед использованием captions Поляковой:
1. **Фильтр по длине:** `tokens_output > 300` (отсев 44% обрезанных без Level 3).
2. **Фильтр по FDR:** `FDR < 0.10` для drone, `FDR < 0.15` для sat (отсев hallucinations).
3. **Фильтр по NumAcc:** `NumAcc > 0.95` (counts должны быть точны).
4. **Очистка raw JSON в output_text:** удалить `coverage_pct`, `quadrant`, `inventory` маркеры через regex.
5. **Infer terrain:** заменить `terrain="Unknown"` на категорию из доминирующего класса segmentation.
**Применимо к HID:** все правки на стороне dataloader, не меняют HID-блок.
**Риск:** после фильтрации может остаться <50% captions. Если это всё ещё ≥30 K — приемлемо для VisLoc/World-UAV. Если <15K — нужен перегенерация.
**Действие:** S0, до запуска S1.
### 🟠 P2 — важные, сделать в S3S6
#### 3.4. Adaptive λ-balancing (GradNorm или PALW) вместо фиксированных весов
**Источник:** DPHR (P47, +23%), GradNorm (общая практика), GLEAM warmup.
**Что:** 8 фиксированных λ — много, есть риск, что L_cvi или L_reg доминирует. Два варианта:
- **PALW (проще):** `λ_i(t) = λ_i^* · σ(10 · (t/T 0.3))` — сигмоидная рампа.
- **GradNorm:** автоматически балансирует λ_i так, чтобы `||∇_θ L_i||` были одного масштаба.
**Применимо к HID:** PALW тривиально подключается к curriculum (Фаза 2). GradNorm требует одной дополнительной forward через backbone — в 1.1× медленнее.
**Риск:** GradNorm может «оживить» компоненту, которую ты намеренно держишь маленькой (например, L_disent с λ=0.01 — он _должен_ быть малым, чтобы CKA не дробил подпространства). Решение: применять адаптацию только к `λ_cvi, λ_hier, λ_center`, фиксировать `λ_align, λ_disent, λ_ortho`.
**Действие:** S3 (curriculum) — использовать PALW для warmup новых компонент `λ_cvi, λ_hier, λ_center`. GradNorm — опционально в S4 ablation A_balance.
#### 3.5. Аугментации: ColorJitter + Rotation + GridMask
**Источник:** TransGeo, Sample4Geo, Stage4Geo — стандартный CVGL pipeline.
**Что:** добавить в dataloader для drone и satellite (синхронно):
- ColorJitter (brightness/contrast/saturation = 0.3 для drone, 0.2 для sat).
- Rotation спутника (0/90/180/270° или непрерывное), drone — без вращения (yaw уже метаданные).
- HorizontalFlip спутника (drone не флипать — yaw меняется).
- GridMask 64×64 с p=0.5 на drone (имитация occlusion).
**Применимо к HID:** работает на любом датасете, не конфликтует с курс-обучением.
**Риск:** GridMask на текстовых данных не имеет смысла. Применять только к img-входу.
**Действие:** S0, реализация в transforms.py.
#### 3.6. Knowledge injection в промпт VLM Поляковой
**Источник:** RSTeller PE8/9 (-30…-50% hallucination), Aquila VLM6.
**Что:** в промпт Qwen3-VL **обязательно** инъецировать факты из Step 1 (segmentation):
```
"Сегментация подтверждает: {N1} buildings, {N2} road segments,
{N3} vegetation patches. Опираясь ТОЛЬКО на эти счёты,
сгенерируй описание. Не выдумывай объекты."
```
**Применимо к HID:** улучшает качество T_L12 → меньше шума в `z^desc` → стабильнее L_disent.
**Риск:** требует координации с Поляковой по обновлению промпта v7.1 → v7.2. Время — 12 дня.
**Действие:** обсудить с Поляковой в S0; перегенерация subset (1000 captions) для проверки.
### 🟡 P3 — опциональные, в S4S7 как ablation
#### 3.7. Two-stage prompting (RADAR-like) для T_L3
**Источник:** H2 Seeing Clearly without Training (-11pp hallucination).
**Что:** для генерации `T_L3` использовать 2 запроса:
1. **Where:** «опиши пространственную структуру: что в каких углах, какие формы доминируют».
2. **What:** «уточни характерные признаки крыш, дорог, растительности».
Объединить в финальный fingerprint.
**Применимо к HID:** улучшает cross-view stability T_L3 → сильнее L_cvi.
**Риск:** +2× latency VLM. Для 80K captions это +16 ч на RTX 4090. Терпимо.
**Действие:** S6 пилот на 5K captions; если SigLIP score satellite растёт с 0.16 → 0.25, перегенерировать всё.
#### 3.8. Constrained decoding (JSON-schema) для T_L3
**Источник:** DGTRSD VLM8, GeoGround PE1.
**Что:** заменить free-form промпт T_L3 на `json_schema` через vLLM/`outlines`. Обязательные поля: `roof_signatures`, `road_pattern`, `vegetation_distribution`, `9_zone_anchors`, `cross_view_invariants`.
**Применимо к HID:** гарантирует 100% парсируемость, упрощает извлечение `T_L3` из JSON в dataloader.
**Риск:** structured output может уменьшить разнообразие → SigLIP-score может упасть. Тестировать.
**Действие:** S6 пилот, A/B сравнение со свободным форматом.
#### 3.9. Cross-area validation split
**Источник:** Sample4Geo (CVUSA→CVACT даёт честную картинку), VIGOR same-area vs cross-area (77.86% vs 46% R@1).
**Что:** для GeoText-1652 — train на одних университетах, test на других. Для VisLoc — train на одних регионах, test на других.
**Применимо к HID:** проверка обобщающей способности; ожидаемая просадка R@1 на 1025%, но это честный показатель.
**Риск:** absolute R@1 будет ниже, чем у конкурентов на same-area (CGSI 95.45%). Решение: репортить **обе** настройки.
**Действие:** S5S6, обязательно для Scopus-публикации.
---
## 4. Что **не** добавлять в HID-Fusion (отвергнуто после фильтрации)
| Идея агентов | Почему не делать |
| ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Слить `L_ortho^(1)` + `L_ortho^(2)`** | Это **разные уровни иерархии** (P_M⊥P_S vs Q_desc⊥Q_cvi). Слияние сломает теоретическую структуру и Положение 1 |
| **Слить `L_align` в `L_cvi`** | Разные роли: `L_align` = внутри-подпространственное cosine между модальностями; `L_cvi` = cross-view contrastive на одном CVI-подпр. Слияние теряет смысл иерархии |
| **Удалить `L_disent` (CKA)** | Преждевременно. Литература (CVD M5) показывает, что disentanglement даёт +12%. Сначала ablation A4 в S4, потом решать |
| **Заменить FiLM на Sigma CroMB / Coupled Mamba** | HID не использует FiLM — у него мультипликативные шлюзы. Это другой механизм. CroMB может быть рассмотрен как **альтернативная архитектура шлюза** в очень дальних ablation, но не как корректировка |
| **Top-down semantic projection как 6-я модальность** | Out of scope (это 5-modal докторской) |
| **Pure LUPI / Knowledge Distillation** | Out of scope (докторская Пикалёва) |
| **DINOv3-L SAT-493M teacher** | Out of scope (масштаб докторской) |
| **Mutable token для graceful modality dropout (MMGeo)** | Полезно, но out of scope: HID работает с 2 модальностями (RGB+Text), а text-dropout уже опубликован SPCRAS 2025 |
| **Сменить Qwen3-VL-8B на DeepSight/AeroLite** | FDR=0.076 уже хорош. Смена VLM = high risk новых классов ошибок. **Stay with Qwen3-VL.** Лучше LoRA fine-tune на top-30% отфильтрованных |
| **Edge deployment Jetson Orin / INT8 TensorRT** | Out of scope (докторская). Кандидатская репортит только GPU FLOPs/latency как H_HID-8 |
---
## 5. Численные ориентиры — куда целиться
|Датасет|SOTA 20252026|Ориентир для HID-Fusion (кандидатская)|
|---|:-:|:-:|
|**University-1652 D→S R@1**|97.50% (MGS²+depth), 95.45% (CGSI flat)|≥ **94%** (без depth, на vision+text)|
|**University-1652 D→S AP**|97.77% (GeoBridge)|≥ **95%**|
|**CVUSA R@1**|98.68% (Sample4Geo)|≥ **86%** (HID = vision+text, не vision-only optimized)|
|**VIGOR same-area R@1**|77.86% (Sample4Geo)|≥ **70%**|
|**VIGOR cross-area R@1**|61.70% (Sample4Geo + DSS)|≥ **55%**|
|**SUES-200 R@1 (150m alt.)**|96.47% (JRN-Geo с normals)|≥ **88%** (vision+text)|
|**GeoText-1652 T→I R@1**|13.6% (P57 baseline)|≥ **20%** — это новизна, есть пространство|
|**VisLoc регрессия val MAE**|0.17 (Gate-Fusion baseline)|≤ **0.155** (HID с DISC), ≤ **0.140** (полный HID)|
**Стратегия:** на same-area не выйти на CGSI/GeoBridge (95%+), но **HID может побеждать на cross-area** благодаря дизентэнглменту через 3 подпространства — это и есть аргумент для рецензента.
---
## 6. Vision-side: backbone и текст-encoder — менять?
### Vision backbone: **StripNet-small остаётся**
- StripNet-small (~5M) валидирован публикацией ПИИ 2024.
- Альтернативы (ConvNeXt-Nano 15.5M, Vim 35M, DINOv3-S/B) — больше параметров, выгода неочевидна для регрессии БПЛА.
- Цена смены: пере-обучение всех baselines, потеря преемственности с опубликованным baseline. **Не оправдано.**
### Text encoder: **MobileCLIP2-s0 остаётся**
- Партиальная разморозка работает, RU/EN не критично (всё промпты EN, валидировано в ПИИ 2025 Т.39 №4).
- Альтернатива — DINOv3 (визуальный), не text. RemoteCLIP / GeoRSCLIP — RS-domain, но больше параметров.
- **Не менять.**
---
## 7. Приоритизированный action-list
### Срочно (S0, 1 неделя — до 13 мая)
1.**Quality-filter captions Поляковой** (длина >300, FDR<0.10, NumAcc>0.95, очистка raw JSON, infer terrain) — §3.3
2.**Реализовать аугментации** (ColorJitter, Rotation/Flip спутника, GridMask drone) — §3.5
3.**Согласовать с Поляковой knowledge-injection** в промпт v7.2 (counts из сегментации как аксиомы) — §3.6
4.**Сгенерировать captions для VisLoc** через Qwen3-VL-8B (~6742 снимков, ~3.5 ч на RTX 4090) — критично для S1
### Важно (S1S3, 4 недели — до 9 июня)
5. ⚙️ **Курсовое обучение с PALW** для warmup λ_cvi, λ_hier, λ_center — §3.4
6. ⚙️ **DSC: реализовать SM-InfoScore + L_center** на базе Cholesky-стабильной версии — задача S2
7. ⚙️ **Обновить CLAUDE.md и novelty_differentiation.md** — заменить «7 компонент» на «8 компонент» во всех местах (см. предыдущий отчёт)
### Среднесрочно (S4S6, 6 недель — до 21 июля)
8. 🔬 **Cross-area validation split** на VisLoc и GeoText-1652 — §3.9
9. 🔬 **GPS-then-DSS hard-negative mining** для L_cvi — §3.2
10. 🔬 **CHSG layout-shift аугментация** — §3.1
11. 🔬 **Ablations A1A15** (включая A4: λ_disent=0; A11: T_L3=∅; A13: λ_center=0) — S4
### Опционально (S6S7, как ablation)
12. 🧪 **Two-stage RADAR prompting для T_L3** — §3.7
13. 🧪 **Constrained JSON-schema decoding** для T_L3 — §3.8
14. 🧪 **Hit Rate / VIGOR-style semi-positive evaluation** на GeoText-1652
---
## 8. Что писать в Related Work / Differentiation
```
"Отличия HID-Fusion от существующих подходов:
1. От flat vision-text fusion (CGSI [P64], GeoBridge [P58/M10]):
двухуровневая иерархическая декомпозиция на 3 подпространства
с разными целевыми задачами, обоснованная Hierarchical IB
(Goldfeld 2019).
2. От vision-only disentanglement (CVD [M5/P16], GeoDTR+ [P11]):
расширение на vision+text, 3 листа против 2, явная привязка
текстовых уровней к подпространствам.
3. От contrastive CVGL без текста (Sample4Geo [P10], DAC):
текстово-индуцированная cross-view инвариантность через
L_cvi на CVI-подпространстве (а не на полном представлении),
что сохраняет drone-специфичные признаки в z^M, z^desc.
4. От 5-modal multimodal CVGL (MMGeo [P50]):
рамки кандидатской диссертации сознательно ограничены парой
RGB+Text; обобщение на K≥5 модальностей вынесено в смежную
докторскую работу (Пикалёв Я.С.). HID-Fusion — строительный
блок более общего метода."
```
---
## 9. Финальный вердикт
**Ничего фундаментального в HID-Fusion не менять.** Архитектура, формализация (8 формул), curriculum, набор loss-компонент — валидны и новы. Корректировки точечные, в основном на стороне данных и стратегии sampling (не архитектуры):
- **3 действия P1** до S1 (фильтр captions, аугментации, knowledge-injection)
- **3 действия P2** в S3S6 (PALW, DSS, cross-area split)
- **3 опциональных P3** для ablation-таблицы
Всё это закрывает критику рецензентов («где hard negative mining? — DSS», «где аугментации? — CHSG», «где валидация generalization? — cross-area») без изменения научных Положений 14.