chkpnt 09_06_26

This commit is contained in:
2026-06-09 10:55:58 +03:00
parent 6656422495
commit 01c64b41e4
3 changed files with 320 additions and 17 deletions

304
3_work/1_todo.md Normal file
View File

@@ -0,0 +1,304 @@
## 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.