Upd work
This commit is contained in:
@@ -6,7 +6,7 @@ tags:
|
|||||||
|
|
||||||
## Зачем измерять информативность признаков?
|
## Зачем измерять информативность признаков?
|
||||||
|
|
||||||
==**В мультимодальном контексте вопрос «насколько полезен вектор признаков данной модальности для данного примера» является ключевым. Если текстовые признаки сформированы на основе ненадёжных или отсутствующих метаданных, их информативность низка и они вносят шум. Численная оценка информативности позволяет строить адаптивные механизмы слияния.**==
|
**В мультимодальном контексте вопрос «насколько полезен вектор признаков данной модальности для данного примера» является ключевым. Если текстовые признаки сформированы на основе ненадёжных или отсутствующих метаданных, их информативность низка и они вносят шум. Численная оценка информативности позволяет строить адаптивные механизмы слияния.**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ MI_θ(X; Y) ≈ E_{p(x,y)}[T_θ(x,y)] − log(E_{p(x)p(y)}[e^{T_θ(x,y)}])
|
|||||||
|
|
||||||
[[Рекомендации и идеи]]
|
[[Рекомендации и идеи]]
|
||||||
|
|
||||||
**==Мера корректности проекции в конкретное подпространство==**
|
**Мера корректности проекции в конкретное подпространство**
|
||||||
|
|
||||||
![[Pasted image 20260421112809.png]]
|
![[Pasted image 20260421112809.png]]
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ tags:
|
|||||||
|
|
||||||
Простая остаточная связь в механизме Gate-Fusion нивелирует его работу, возвращая шум исходных данных, однако, адаптивное добавление полезного исходного сигнала на основе некой метрики информативности модальности может усилить информативность объединенного вектора даже после потери части сигнала из-за фильтрации.
|
Простая остаточная связь в механизме Gate-Fusion нивелирует его работу, возвращая шум исходных данных, однако, адаптивное добавление полезного исходного сигнала на основе некой метрики информативности модальности может усилить информативность объединенного вектора даже после потери части сигнала из-за фильтрации.
|
||||||
|
|
||||||
**==Можно развить идею [[InfoScore for residual routing]]==**
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -118,8 +118,4 @@ tags:
|
|||||||
|
|
||||||
1. Для задачи регрессии оптимальна модификация **Gate + Sum** при условии стабилизации масштаба объединённого вектора (например, через нормализацию).
|
1. Для задачи регрессии оптимальна модификация **Gate + Sum** при условии стабилизации масштаба объединённого вектора (например, через нормализацию).
|
||||||
2. Базовый **Gate-Fusion** остаётся наиболее надёжным для задачи классификации.
|
2. Базовый **Gate-Fusion** остаётся наиболее надёжным для задачи классификации.
|
||||||
3. **RCGF** — перспективное направление для адаптации под CVGL, где текст может выступать запросом к визуальному пространству.
|
|
||||||
4. Необходимо исследовать сочетание Gate + Sum с нормализацией выходного вектора для устранения нестабильности масштаба.
|
|
||||||
5. Для задачи CVGL требуется отдельная адаптация функции потерь с учётом метрики сопоставления изображений (triplet loss, contrastive loss).
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
62
notes/DEQFusion_ProgressiveFusion.md
Normal file
62
notes/DEQFusion_ProgressiveFusion.md
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
tags: [диссер, fusion, multimodal, архитектура]
|
||||||
|
aliases: [DEQ-Fusion, Progressive Fusion]
|
||||||
|
---
|
||||||
|
|
||||||
|
# DEQ-Fusion и Progressive Fusion
|
||||||
|
|
||||||
|
## DEQ-Fusion (Deep Equilibrium Fusion)
|
||||||
|
|
||||||
|
**Суть:** итоговое представление определяется не как результат прохождения фиксированного числа слоёв, а как **стационарная точка (равновесие)** параметризованного преобразования.
|
||||||
|
|
||||||
|
Объединённое представление формируется как решение уравнения, в котором различные источники признаков **итеративно и взаимозависимо** влияют друг на друга до достижения согласованного состояния.
|
||||||
|
|
||||||
|
**Преимущества перед каскадными MLP/attention:**
|
||||||
|
- Моделирует глубокие и рекуррентные взаимодействия между модальностями без явного увеличения глубины сети
|
||||||
|
- Фиксированное число параметров при теоретически бесконечной глубине
|
||||||
|
- Равновесное состояние естественно подавляет шум и усиливает согласованные признаки
|
||||||
|
|
||||||
|
**Недостатки:**
|
||||||
|
- Более сложное обучение
|
||||||
|
- Необходимость численных методов поиска фиксированной точки
|
||||||
|
- Повышенные требования к стабильности и сходимости
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Progressive Fusion
|
||||||
|
|
||||||
|
**Суть:** объединение строится как **явная последовательность этапов**, на каждом из которых представления модальностей постепенно уточняются через residual-связи.
|
||||||
|
|
||||||
|
Поздние, более семантически насыщенные признаки через остаточные связи влияют на более ранние представления — **обратное распространение высокоуровневого контекста**.
|
||||||
|
|
||||||
|
**Свойства:**
|
||||||
|
- Дискретный процесс с фиксированным числом шагов
|
||||||
|
- Архитектурно реализуется как каскад fusion-блоков
|
||||||
|
- Каждая итерация явно задана в графе вычислений
|
||||||
|
- Проще в обучении и отладке чем DEQ
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Сравнение и связь между подходами
|
||||||
|
|
||||||
|
Оба подхода стремятся уйти от «однократного» слияния в сторону **итеративного согласования представлений**.
|
||||||
|
|
||||||
|
| Свойство | Progressive Fusion | DEQ-Fusion |
|
||||||
|
|---|---|---|
|
||||||
|
| Число шагов | Фиксированное, конечное | Стремится к бесконечности |
|
||||||
|
| Реализация | Явный каскад блоков | Поиск фиксированной точки |
|
||||||
|
| Сложность обучения | Низкая | Высокая |
|
||||||
|
| Глубина | Явная, ограниченная | Неявная, теоретически бесконечная |
|
||||||
|
|
||||||
|
**DEQ-Fusion — предельный случай Progressive Fusion:** число шагов прогрессивного объединения стремится к бесконечности, модель ищет устойчивое равновесное состояние вместо явного разворачивания итераций.
|
||||||
|
|
||||||
|
> Progressive Fusion = **дискретная, архитектурно развёрнутая аппроксимация** итеративного согласования
|
||||||
|
>
|
||||||
|
> DEQ-Fusion = **неявная, непрерывная по глубине форма** того же принципа через равновесие
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Связанные заметки
|
||||||
|
|
||||||
|
- [[Взвешенное_управление_Residual_Branch]]
|
||||||
|
- [[Metadata_Insertion]]
|
||||||
89
notes/Metadata_Insertion.md
Normal file
89
notes/Metadata_Insertion.md
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
---
|
||||||
|
tags: [диссер, metadata, geolocation, fusion, UAV, remote-sensing]
|
||||||
|
aliases: [Deep Coding, Geolocation-Aware]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Вставка метаданных геолокации в модели глубокого обучения
|
||||||
|
|
||||||
|
> Источник: Madadikhaljan & Schmitt, "Geolocation-Aware Deep Coding" (PFG, 2025)
|
||||||
|
|
||||||
|
## Ключевая идея — Deep Coding
|
||||||
|
|
||||||
|
**Аналогия:** термин взят из практики разработки ПО — "жёсткое кодирование" (hardcoding). Здесь: создание **отдельных подветвей** внутри глубоких блоков модели, требующих внимания к деталям, специфичным для геолокации.
|
||||||
|
|
||||||
|
Стратегия не зависит от архитектуры — применима к UNet, ResNet, AlexNet, VGG и другим.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Два шага методологии
|
||||||
|
|
||||||
|
### Шаг 1 — Анализ и разделение датасета на регионы
|
||||||
|
|
||||||
|
**Регион** — пространственное разделение глобального датасета на подмножества со схожими геолокационными характеристиками.
|
||||||
|
|
||||||
|
Что считается "сходством":
|
||||||
|
- Форма, цвет, материал, высота, внешний вид объектов
|
||||||
|
- Климатические свойства местоположения
|
||||||
|
- Типы землепользования, культур, природных опасностей
|
||||||
|
|
||||||
|
**Примеры разбивки** (зависит от задачи):
|
||||||
|
| Задача | Разумная единица региона |
|
||||||
|
|---|---|
|
||||||
|
| Классификация с/х культур | Климатические регионы |
|
||||||
|
| Обнаружение контуров зданий | Границы городов |
|
||||||
|
| Общая сегментация | Страна, континент, геохеш |
|
||||||
|
|
||||||
|
### Шаг 2 — Внедрение геолокационной осведомлённости в архитектуру
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Способы вставки геолокации (по уровню обработки)
|
||||||
|
|
||||||
|
### Уровень входных данных
|
||||||
|
|
||||||
|
Геолокационная информация добавляется как дополнительные каналы к входному изображению:
|
||||||
|
|
||||||
|
- **Mahara & Rishe (2023):** координаты → геохеш-коды → растровый слой, конкатенируется с картой признаков
|
||||||
|
- **Liu et al. (2018):** два растра с декартовыми координатами добавляются к входному изображению
|
||||||
|
- **Zhang et al. (2021):** координаты → векторные признаки через FC-слои → конкатенация со спектральными признаками
|
||||||
|
|
||||||
|
### Уровень промежуточных признаков (Deep Coding)
|
||||||
|
|
||||||
|
Отдельные подветви внутри глубоких блоков — информация о геолокации встраивается как структурная часть признакового пространства, а не побочный числовой вектор.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Почему прямая подача координат не оптимальна
|
||||||
|
|
||||||
|
> Декартовы и широтно-долготные координаты предназначены для определения местоположения в метрическом пространстве, но **не отражают геолокационные сходства и различия** данных с разными микроклиматами.
|
||||||
|
|
||||||
|
Пример: две точки с близкими координатами могут находиться по разные стороны горного хребта — климат, растительность и материалы застройки будут принципиально разными, хотя координаты почти одинаковы.
|
||||||
|
|
||||||
|
Решение: кластеризация по геолокационному сходству + специализированные ветки сети для каждого кластера.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Связь с текстовым кодированием метаданных
|
||||||
|
|
||||||
|
Deep Coding — архитектурный подход (отдельные ветки). Альтернатива — **текстовые шаблоны** как контейнер для метаданных, позволяющие не менять архитектуру:
|
||||||
|
|
||||||
|
```
|
||||||
|
"Drone aerial photo from UAV, taken from height <h> meters,
|
||||||
|
camera orientation yaw <yaw>°, pitch <pitch>°, roll <roll>°.
|
||||||
|
<time> time, season is <season>."
|
||||||
|
```
|
||||||
|
|
||||||
|
Сравнение подходов:
|
||||||
|
|
||||||
|
| Подход | Изменение архитектуры | Тип метаданных | Гибкость |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Deep Coding | Да (подветки) | Геолокация, кластеры | Низкая |
|
||||||
|
| Геохеш как канал | Минимальное | Координаты | Средняя |
|
||||||
|
| Текстовые шаблоны | Нет | Любые | Высокая |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Связанные заметки
|
||||||
|
|
||||||
|
- [[Взвешенное_управление_Residual_Branch]]
|
||||||
|
- [[DEQFusion_ProgressiveFusion]]
|
||||||
124
notes/Взвешенное_управление_Residual_Branch.md
Normal file
124
notes/Взвешенное_управление_Residual_Branch.md
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
---
|
||||||
|
tags: [диссер, fusion, residual, gate, adaptive, архитектура]
|
||||||
|
aliases: [Adaptive Alpha, Residual Routing]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Взвешенное управление Residual Branch
|
||||||
|
|
||||||
|
## Постановка задачи
|
||||||
|
|
||||||
|
Вывод из экспериментов с Gate+Sum: **фиксированный residual пропускает шум** при выпадении текстовой модальности, нивелируя работу шлюза.
|
||||||
|
|
||||||
|
Решение: заменить фиксированный коэффициент (α=1) на **обучаемый per-sample скаляр α**, который модель учится предсказывать исходя из состояния модальностей.
|
||||||
|
|
||||||
|
```
|
||||||
|
fused = gate_output + α · residual
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Три варианта реализации
|
||||||
|
|
||||||
|
### Вариант 1 — Энтропийный сигнал ❌
|
||||||
|
|
||||||
|
Считать энтропию признакового вектора на батче и использовать как сигнал:
|
||||||
|
|
||||||
|
```
|
||||||
|
H(x) = -Σ p_i · log(p_i), где p_i = softmax(|x|)_i
|
||||||
|
Высокая H → неопределённость → отсекать residual
|
||||||
|
```
|
||||||
|
|
||||||
|
**Проблема:** энтропия плохо коррелирует с информативностью модальности в UAV-задаче. Размытое изображение даёт **низкую** энтропию (однородный сигнал) — модель ошибочно считает его надёжным.
|
||||||
|
|
||||||
|
**Статус:** отклонён по результатам измерений (Pearson r ≈ 0 между H(img_vec) и g).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Вариант 2 — Learned scalar per-sample ✓ (основной)
|
||||||
|
|
||||||
|
```python
|
||||||
|
self.alpha_net = nn.Linear(proj_dim * 2, 1)
|
||||||
|
|
||||||
|
# forward:
|
||||||
|
cat_vec = torch.cat([img_vec, text_vec], dim=-1) # (B, 2D)
|
||||||
|
alpha = torch.sigmoid(self.alpha_net(cat_vec)) # (B, 1)
|
||||||
|
fused = gate_output + alpha * residual
|
||||||
|
```
|
||||||
|
|
||||||
|
При `text_vec = zeros` сеть получает другой вход и выучивает `alpha → 0`.
|
||||||
|
|
||||||
|
**Инициализация** (нейтральный старт, alpha=0.5):
|
||||||
|
```python
|
||||||
|
nn.init.zeros_(self.alpha_net.weight)
|
||||||
|
nn.init.constant_(self.alpha_net.bias, 0.0) # sigmoid(0) = 0.5
|
||||||
|
```
|
||||||
|
|
||||||
|
**Математическое обобщение:**
|
||||||
|
- Gate-Fusion (α=0) — один предельный случай
|
||||||
|
- Gate+Sum (α=1) — другой предельный случай
|
||||||
|
- Adaptive-α — непрерывная интерполяция между ними
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Вариант 3 — Явный флаг присутствия модальности (расширение)
|
||||||
|
|
||||||
|
```python
|
||||||
|
self.alpha_net = nn.Linear(proj_dim * 2 + 1, 1)
|
||||||
|
|
||||||
|
# forward:
|
||||||
|
text_present = (text_vec.abs().sum(dim=-1, keepdim=True) > 0).float() # (B, 1)
|
||||||
|
alpha_input = torch.cat([img_vec, text_vec, text_present], dim=-1) # (B, 2D+1)
|
||||||
|
alpha = torch.sigmoid(self.alpha_net(alpha_input))
|
||||||
|
```
|
||||||
|
|
||||||
|
Модель явно знает что текст отсутствует — не угадывает по нулям.
|
||||||
|
|
||||||
|
> **Примечание:** при архитектуре с двумя головами (fused_head + img_head) и text-dropout флаг менее критичен — механизм двух голов создаёт неявный обучающий сигнал для alpha через разницу потерь.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Вариант 4 — Concat residual с projection (полная версия)
|
||||||
|
|
||||||
|
```python
|
||||||
|
self.residual_proj = nn.Linear(proj_dim * 2, proj_dim)
|
||||||
|
self.alpha_net = nn.Linear(proj_dim * 2, 1)
|
||||||
|
|
||||||
|
# forward:
|
||||||
|
cat_vec = torch.cat([img_vec, text_vec], dim=-1) # (B, 2D)
|
||||||
|
residual = self.residual_proj(cat_vec) # (B, D)
|
||||||
|
alpha = torch.sigmoid(self.alpha_net(cat_vec)) # (B, 1)
|
||||||
|
fused = gate_output + alpha * residual
|
||||||
|
```
|
||||||
|
|
||||||
|
Residual содержит информацию обеих модальностей через проекцию, а не простую сумму.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ablation таблица
|
||||||
|
|
||||||
|
| Метод | Residual | alpha | Параметры |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Gate (no residual) | — | 0 | baseline |
|
||||||
|
| Gate + Sum | img + text | 1 (fixed) | 0 доп. |
|
||||||
|
| Adaptive-α v2 | img + text | learned, `2D→1` | минимум |
|
||||||
|
| Adaptive-α v3 | img + text + flag | learned, `2D+1→1` | +1 вход |
|
||||||
|
| Adaptive-α + proj | proj(cat(img,text)) | learned, `2D→1` | `2D→D` + `2D→1` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Почему LayerNorm не решает проблему масштаба
|
||||||
|
|
||||||
|
LayerNorm нормирует по признакам одного сэмпла постфактум — он не различает:
|
||||||
|
```
|
||||||
|
fused = img + text + img*g + text*(1-g) # текст присутствует
|
||||||
|
fused = img + 0 + img*g + 0 # текст = zeros
|
||||||
|
```
|
||||||
|
|
||||||
|
Смысловое содержание разное, но после LN оба вектора имеют одинаковый масштаб. Адаптивный α действует **до** LN и меняет структуру вектора — формирует осмысленную композицию до нормализации.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Связанные заметки
|
||||||
|
|
||||||
|
- [[DEQFusion_ProgressiveFusion]]
|
||||||
|
- [[Metadata_Insertion]]
|
||||||
Reference in New Issue
Block a user