first commit
This commit is contained in:
191
3_work/methods/Gate Fusion.md
Normal file
191
3_work/methods/Gate Fusion.md
Normal file
@@ -0,0 +1,191 @@
|
||||
---
|
||||
aliases:
|
||||
- GF
|
||||
- gate
|
||||
tags:
|
||||
- диссер
|
||||
- Нейросети
|
||||
- fusion
|
||||
---
|
||||
|
||||
# Метод Gate-Fusion и его модификации
|
||||
|
||||
## 1. Базовый Gate-Fusion
|
||||
|
||||
### Идея
|
||||
|
||||
Gate-Fusion — адаптивное слияние признаков двух модальностей через обучаемый вектор шлюзов `g`. В отличие от конкатенации и поэлементного сложения, шлюз позволяет модели динамически регулировать вклад каждой модальности на уровне отдельных примеров батча.
|
||||
|
||||
### Формулировка
|
||||
|
||||
Комбинированное промежуточное представление:
|
||||
|
||||
```
|
||||
z = tanh(W_x · x + W_y · y + b_z) (1)
|
||||
```
|
||||
|
||||
Вектор шлюза:
|
||||
|
||||
```
|
||||
g = σ(W_x · x + W_y · y + b_g) (2)
|
||||
```
|
||||
|
||||
Итоговое объединение:
|
||||
|
||||
```
|
||||
fused = g ⊙ z + (1 − g) ⊙ x (3)
|
||||
```
|
||||
|
||||
В применяемом варианте для задачи регрессии/классификации на UAV-снимках:
|
||||
|
||||
```
|
||||
fused = v_img ⊙ g + v_text ⊙ (1 − g) (4)
|
||||
```
|
||||
|
||||
где:
|
||||
- `v_img` — вектор визуальных признаков,
|
||||
- `v_text` — вектор текстовых признаков,
|
||||
- `g = σ(linear([v_img; v_text]))` — обучаемый шлюз.
|
||||
|
||||
### Свойства
|
||||
|
||||
- **Адаптивность:** шлюз вычисляется из входных данных, то есть вклад модальности меняется от примера к примеру.
|
||||
- **Сохранение размерности:** выходной вектор имеет ту же размерность, что и входные модальности (`d`), без роста вычислительной нагрузки.
|
||||
- **Устойчивость к шуму:** если одна из модальностей зашумлена, шлюз снижает её вклад, опираясь на более надёжную.
|
||||
- **Ограничение:** меньшая выразительность межмодальных зависимостей по сравнению с полным cross-attention (нет попарного взаимодействия токенов).
|
||||
|
||||
---
|
||||
|
||||
## 2. Stochastic Text-Dropout
|
||||
|
||||
При обучении с вероятностью `p_textDropout` текстовые признаки игнорируются — модель обучается только на визуальном сигнале. Это:
|
||||
|
||||
1. Предотвращает переобучение на текстовую модальность.
|
||||
2. Обеспечивает работоспособность модели в тестовом режиме, когда текстовый энкодер отключён (экономия ресурсов).
|
||||
|
||||
Функция потерь адаптируется:
|
||||
|
||||
```
|
||||
L = L_reg, если text-dropout активен
|
||||
L = L_reg + λ · L_align, иначе
|
||||
```
|
||||
|
||||
Функция выравнивания признаков:
|
||||
|
||||
```
|
||||
L_align = 1 − <v_img, v_text> / (‖v_img‖ · ‖v_text‖) (5)
|
||||
```
|
||||
|
||||
Экспериментально установлены оптимальные диапазоны:
|
||||
- `p_textDropout ∈ {0.2, 0.3}`
|
||||
- `λ ∈ {0.1, 0.5}`
|
||||
|
||||
---
|
||||
|
||||
## 3. Модификация SRGF (Simple Residual Gate Fusion)
|
||||
|
||||
### Идея
|
||||
|
||||
Добавление остаточных связей для каждой модальности — усиление признакового сигнала и предотвращение затухания градиентов в глубоких конфигурациях.
|
||||
|
||||
### Формулировка
|
||||
|
||||
```
|
||||
img_res = v_img ⊙ g + v_img (6)
|
||||
text_res = v_text ⊙ (1 − g) + v_text (7)
|
||||
fused = img_res + text_res (8)
|
||||
```
|
||||
|
||||
### Анализ
|
||||
|
||||
Шлюз сохраняет механизм регулировки вклада, при этом остаточная связь гарантирует, что исходный сигнал модальности всегда присутствует в итоговом представлении. Однако остаточная связь добавляет и шум исходных сигналов к уже отфильтрованным признакам, что частично нивелирует эффект подавления слабой модальности.
|
||||
|
||||
**Результаты:** не показала значимого улучшения по сравнению с базовым Gate-Fusion на задачах регрессии и классификации; наблюдается рост ошибки при валидации (val Loss: 1.10 против 0.72 для классификации).
|
||||
|
||||
---
|
||||
|
||||
## 4. Модификация с дополнительной суммой (Gate + Sum)
|
||||
|
||||
### Формулировка
|
||||
|
||||
```
|
||||
fused = v_img + v_text + v_img ⊙ g + v_text ⊙ (1 − g) (9)
|
||||
```
|
||||
|
||||
### Анализ
|
||||
|
||||
Исходные признаки всегда вносят единичный вклад (через сумму), а шлюз выступает дополнительным усилителем. При отключении текстовых признаков в тест-режиме модель получает остаточный сигнал через сумму визуальных признаков.
|
||||
|
||||
**Результаты:**
|
||||
- Снижение val Loss классификации: 0.66 (против 0.72 у базового).
|
||||
- Снижение val MAE регрессии: 0.19 (против 0.28 у базового).
|
||||
- Проблема: дополнительное масштабирование признаков вызывает нестабильность масштаба объединённого вектора, что сильнее сказывается на регрессии, чем на классификации.
|
||||
|
||||
---
|
||||
|
||||
## 5. Модификация RCGF (Residual Cross-Gate Fusion)
|
||||
|
||||
### Идея
|
||||
|
||||
Взаимная контекстуальная модуляция: каждая модальность управляет шлюзом другой. Текст «запрашивает» у изображения релевантные признаки; изображение верифицирует текст, подавляя слабо соотносящиеся текстовые компоненты.
|
||||
|
||||
### Формулировка
|
||||
|
||||
Шлюз для изображения (управляется текстом):
|
||||
|
||||
```
|
||||
g_x = σ(linear(v_text)) (10)
|
||||
```
|
||||
|
||||
Шлюз для текста (управляется изображением):
|
||||
|
||||
```
|
||||
g_y = σ(linear(v_img)) (11)
|
||||
```
|
||||
|
||||
Итоговое объединение:
|
||||
|
||||
```
|
||||
fused = v_img ⊙ g_y + v_text ⊙ g_x (12)
|
||||
```
|
||||
|
||||
### Анализ
|
||||
|
||||
RCGF — концептуально ближайший к механизму внимания вариант среди исследованных: шлюз-маска функционирует как упрощённая одномерная матрица внимания. В отличие от полного cross-attention, отсутствует попарное взаимодействие токенов, что сохраняет линейную сложность.
|
||||
|
||||
**Результаты:**
|
||||
- Классификация: val F1 = 0.96, val Top-1 = 0.96 (против 0.99 / 0.98 у базового Gate-Fusion).
|
||||
- Регрессия: val MAE = 0.25 (против 0.28 у базового; +Gate+Sum даёт 0.19).
|
||||
- Вывод: улучшение по сравнению с SRGF, но не превосходит базовый Gate-Fusion по всем метрикам.
|
||||
|
||||
---
|
||||
|
||||
## 6. Сводная таблица результатов
|
||||
|
||||
### Классификация (UC Merced Land Use Dataset)
|
||||
|
||||
| Метод | Train Loss | Val Loss | Train F1 | Val F1 | Train Top-1 | Val Top-1 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| Gate-Fusion | 0.63 | **0.72** | 0.95 | **0.99** | 0.93 | **0.98** |
|
||||
| Gate + Sum | 0.75 | **0.66** | 0.93 | 0.97 | 0.91 | 0.97 |
|
||||
| SRGF | 0.75 | 1.10 | 0.94 | 0.93 | 0.93 | 0.92 |
|
||||
| RCGF | 0.75 | 0.88 | 0.95 | 0.96 | 0.93 | 0.96 |
|
||||
|
||||
### Регрессия (VisLoc)
|
||||
|
||||
| Метод | Train Loss | Val Loss | Train MAE | Val MAE |
|
||||
|---|---|---|---|---|
|
||||
| Gate-Fusion | 0.02 | 0.14 | 0.08 | 0.28 |
|
||||
| Gate + Sum | 0.02 | **0.12** | 0.13 | **0.19** |
|
||||
| SRGF | 0.03 | 0.13 | 0.16 | 0.25 |
|
||||
| RCGF | 0.03 | **0.12** | 0.16 | 0.25 |
|
||||
|
||||
---
|
||||
|
||||
## 7. Выводы
|
||||
|
||||
1. Базовый Gate-Fusion наиболее устойчив на задаче классификации — сохраняет чёткий механизм регулировки вклада модальностей.
|
||||
2. Модификация Gate + Sum даёт наилучшее снижение ошибки регрессии (val MAE 0.19), сохраняя механизм шлюза и добавляя суммарный остаточный сигнал.
|
||||
3. Остаточные связи на уровне каждой модальности (SRGF) приводят к переносу шума исходных сигналов в объединённое представление — ухудшение при классификации.
|
||||
4. RCGF (перекрёстные шлюзы) — перспективное направление для дальнейшей разработки как компромисс между выразительностью cross-attention и эффективностью Gate-Fusion.
|
||||
5. Применение text-dropout и L_align необходимо для предотвращения переобучения на текстовую модальность при любой конфигурации слияния.
|
||||
129
3_work/methods/loss_functions.md
Normal file
129
3_work/methods/loss_functions.md
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
tags:
|
||||
- диссер
|
||||
---
|
||||
[[Математическая функция]]
|
||||
[[Расчёт функции потерь]]
|
||||
# Функции потерь
|
||||
|
||||
## 1. Focal Huber Loss (FHL)
|
||||
|
||||
### Мотивация
|
||||
|
||||
При регрессии параметров положения БПЛА данные обладают двумя характерными проблемами:
|
||||
- **Выбросы** — отдельные снимки с экстремальными углами или высотами;
|
||||
- **Дисбаланс** — неравномерное распределение значений меток в пространстве.
|
||||
|
||||
MSE чрезмерно усиливает влияние выбросов. Huber Loss смягчает это, но не решает проблему дисбаланса. Focal Loss, изначально предназначенная для классификации, решает проблему дисбаланса, но не применима напрямую к регрессии.
|
||||
|
||||
**Focal Huber Loss** объединяет оба механизма.
|
||||
|
||||
### Formulation
|
||||
|
||||
Функция Huber Loss:
|
||||
|
||||
```
|
||||
H_β(d) = { d² / (2β), d < β
|
||||
{ d − β/2, d ≥ β
|
||||
|
||||
d = |y − ŷ|
|
||||
```
|
||||
|
||||
Focal-взвешивание:
|
||||
|
||||
```
|
||||
F_γ(d) = tanh(β·d)^γ (вариант с tanh)
|
||||
F_γ(d) = (2σ(β·d) − 1)^γ (вариант с sigmoid)
|
||||
|
||||
σ(z) = 1 / (1 + e^{−z})
|
||||
```
|
||||
|
||||
Итоговая Focal Huber Loss:
|
||||
|
||||
```
|
||||
FHL = (1/N) · Σ H_β(d_i) · F_γ(d_i)
|
||||
```
|
||||
|
||||
### Свойства
|
||||
|
||||
- Малые ошибки имеют пониженный вес → модель фокусируется на сложных примерах.
|
||||
- После того, как простые примеры освоены, их вклад в градиент снижается.
|
||||
- Устойчивость к выбросам обеспечивается линейным режимом Huber для больших `d`.
|
||||
|
||||
---
|
||||
|
||||
## 2. Функция выравнивания признаков L_align
|
||||
|
||||
### Мотивация
|
||||
|
||||
При мультимодальном обучении необходимо, чтобы визуальные и текстовые признаки, описывающие одну и ту же сцену, находились близко в латентном пространстве. В противном случае шлюз Gate-Fusion получает некогерентные сигналы.
|
||||
|
||||
### Формулировка
|
||||
|
||||
```
|
||||
L_align = 1 − <v_img, v_text> / (‖v_img‖ · ‖v_text‖)
|
||||
```
|
||||
|
||||
Это косинусная ошибка сходства: равна 0 при полном совпадении направлений, равна 1 при ортогональности, равна 2 при противонаправленности.
|
||||
|
||||
### Интеграция в общую функцию потерь
|
||||
|
||||
```
|
||||
L = L_reg, если text-dropout активен (prob = p_textDropout)
|
||||
L = L_reg + λ · L_align, иначе
|
||||
```
|
||||
|
||||
- **`λ`** — коэффициент влияния ошибки выравнивания. Оптимальные значения: `λ ∈ {0.1, 0.5}`.
|
||||
- При text-dropout ошибка выравнивания не вычисляется (текстовые признаки недоступны).
|
||||
|
||||
### Эффект
|
||||
|
||||
- Препятствует расхождению модальностей в латентном пространстве.
|
||||
- Работает как дополнительная регуляризация, не требующая внешних меток.
|
||||
- Совместно с text-dropout предотвращает коллапс модели в сторону текстовой модальности.
|
||||
|
||||
---
|
||||
|
||||
## 3. Feature Distribution Smoothing (FDS)
|
||||
|
||||
Применяется для задачи регрессии как метод борьбы с дисбалансом данных по значению высоты.
|
||||
|
||||
### Идея
|
||||
|
||||
Статистики (среднее и ковариация) признаков в пространстве скрытых представлений сглаживаются между соседними ячейками целевого значения (высоты).
|
||||
|
||||
### Формулировка
|
||||
|
||||
Статистики для ячейки `b`:
|
||||
|
||||
```
|
||||
μ_b = (1/N_b) Σ z_i
|
||||
Σ_b = (1/(N_b−1)) Σ (z_i − μ_b)(z_i − μ_b)ᵀ
|
||||
```
|
||||
|
||||
Сглаживание через симметричное ядро `k(y_b, y_b')`:
|
||||
|
||||
```
|
||||
μ̃_b = Σ_{b'} k(y_b, y_b') · μ_{b'}
|
||||
Σ̃_b = Σ_{b'} k(y_b, y_b') · Σ_{b'}
|
||||
```
|
||||
|
||||
Калибровка признаков:
|
||||
|
||||
```
|
||||
z̃ = Σ̃_b^{1/2} · Σ_b^{−1/2} · (z − μ_b) + μ̃_b
|
||||
```
|
||||
|
||||
Статистики обновляются через Exponential Moving Average (EMA) после каждой эпохи.
|
||||
|
||||
---
|
||||
|
||||
## 4. Сводка гиперпараметров функций потерь
|
||||
|
||||
| Параметр | Назначение | Оптимальный диапазон |
|
||||
|---|---|---|
|
||||
| `β` (Huber) | Граница линейного/квадратичного режима | Зависит от масштаба данных |
|
||||
| `γ` (Focal) | Сила подавления лёгких примеров | 1–3 |
|
||||
| `λ` | Вес L_align в итоговой функции потерь | 0.1–0.5 |
|
||||
| `p_textDropout` | Вероятность игнорирования текстовых признаков | 0.2–0.3 |
|
||||
| `d_step` | Шаг интерполяции высоты | 5–10 м |
|
||||
131
3_work/methods/text_templates.md
Normal file
131
3_work/methods/text_templates.md
Normal file
@@ -0,0 +1,131 @@
|
||||
---
|
||||
tags:
|
||||
- диссер
|
||||
- "#text_prompts"
|
||||
---
|
||||
|
||||
# Текстовые шаблоны для кодирования метаданных аэрофотоснимков
|
||||
|
||||
## 1. Обоснование подхода
|
||||
|
||||
### Почему текст, а не прямая подача числовых признаков?
|
||||
|
||||
Прямая подача числовых метаданных в виде векторов требует дополнительной входной ветви и усложняет архитектуру. Текстовые шаблоны позволяют:
|
||||
|
||||
- задействовать предобученные языковые модели (CLIP, MobileCLIP), чьи пространства уже содержат богатые семантические структуры;
|
||||
- передавать метаданные без изменения архитектуры модели;
|
||||
- обеспечить семантическую интерпретацию числовых значений (не просто `h=450`, а `"taken from a height of 450 meters"`);
|
||||
- унифицировать разнородные источники информации в едином входном формате.
|
||||
|
||||
> Авторы LLaVA-ST установили, что прямая передача точных числовых значений в текст **ухудшает** обучение; преобразование в интерпретируемые категории, интервалы или относительные описания — **улучшает**.
|
||||
|
||||
### Выбор языка шаблонов
|
||||
|
||||
Английский язык выбран как основной по следующим основаниям:
|
||||
|
||||
- Модели CLIP и MobileCLIP обучены преимущественно на англоязычных корпусах (WIT — 100% EN, LAION-5B — ~40% EN оригинал + ~3B переведённых пар).
|
||||
- Анализ косинусного сходства показывает: медианное сходство для англоязычного текста (0.296 при 50-м перцентиле) выше, чем для оригинального нетранслированного (0.286).
|
||||
- Англоязычные описания обеспечивают более согласованные с изображениями текстовые эмбеддинги.
|
||||
|
||||
---
|
||||
|
||||
## 2. Типы метаданных аэрофотоснимков
|
||||
|
||||
### Числовые признаки
|
||||
|
||||
| Признак | Описание | Влияние на изображение |
|
||||
|---|---|---|
|
||||
| Высота съёмки (h) | Высота БПЛА над землёй, м | Масштаб объектов, разрешение |
|
||||
| Yaw | Азимутный угол камеры, ° | Ориентация сцены |
|
||||
| Pitch | Угол тангажа, ° | Перспективные искажения |
|
||||
| Roll | Угол крена, ° | Наклон горизонта |
|
||||
| Количество объектов класса | Агрегированный счётчик по метаклассу | Семантическое содержание |
|
||||
|
||||
### Категориальные признаки
|
||||
|
||||
| Признак | Значения | Влияние на изображение |
|
||||
|---|---|---|
|
||||
| Тип платформы | БПЛА / Спутник | Разрешение, угол обзора |
|
||||
| Время суток | Утро / День / Вечер / Ночь | Освещённость, длина теней |
|
||||
| Сезон | Весна / Лето / Осень / Зима | Цвет растительности, снег |
|
||||
| Погода | Ясно / Облачно / Дождь / Туман | Видимость, шум, блики |
|
||||
|
||||
---
|
||||
|
||||
## 3. Разработанные шаблоны
|
||||
|
||||
### Задача регрессии (высота / углы ориентации)
|
||||
|
||||
Минимальный шаблон с акцентом на числовое значение:
|
||||
|
||||
```
|
||||
"This is a drone aerial image taken from a height of <h> meters"
|
||||
```
|
||||
|
||||
Расширенный шаблон с углами:
|
||||
|
||||
```
|
||||
"Drone aerial photo from UAV, taken from height <h> meters, with camera orientation
|
||||
defined by yaw <yaw>°, pitch <pitch>°, and roll <roll>°."
|
||||
```
|
||||
|
||||
### Задача классификации
|
||||
|
||||
Варианты с указанием целевого класса без лишних метаданных:
|
||||
|
||||
```
|
||||
a) "The target is a <class> in an aerial photo"
|
||||
b) "An aerial photo contains a <class>"
|
||||
c) "An aerial view showing a <class>"
|
||||
```
|
||||
|
||||
### Задача семантической сегментации (полный шаблон)
|
||||
|
||||
```
|
||||
"Drone aerial photo from UAV, taken from height <h> meters, with camera orientation
|
||||
defined by yaw <yaw>°, pitch <pitch>°, and roll <roll>°. <time> time, season is <season>.
|
||||
Here is next amount of metaclasses. Road: <count>, Nature: <count>, Construction: <count>,
|
||||
Obstacle: <count>, Water: <count>"
|
||||
```
|
||||
|
||||
Смысл каждого компонента:
|
||||
- **Высота** → масштаб захватываемого контекста;
|
||||
- **Ориентация камеры** → геометрия проекции;
|
||||
- **Временные параметры** → освещённость и внешний вид объектов;
|
||||
- **Метаклассы** → семантическое содержание сцены.
|
||||
|
||||
---
|
||||
|
||||
## 4. Принципы разработки шаблонов
|
||||
|
||||
1. **Структурированность** — числовые и категориальные значения лингвистически корректно связаны со смысловыми описаниями.
|
||||
2. **Семантическая интерпретируемость** — текст остаётся читаемым человеком.
|
||||
3. **Согласование с визуальными признаками** — элементы шаблона соответствуют наблюдаемым характеристикам изображения.
|
||||
4. **Минимальная достаточность** — набор признаков определяется доступностью данных в датасете или возможностью их извлечения методом VQA.
|
||||
|
||||
---
|
||||
|
||||
## 5. Интерполяция значений высоты
|
||||
|
||||
При дискретности меток высоты в датасете введён механизм интерполяции:
|
||||
|
||||
```
|
||||
h_q = round(h / d_step) · d_step # квантование до ближайшего шага
|
||||
h_out = max(h_min, min(h_max, h_q)) # ограничение диапазоном датасета
|
||||
```
|
||||
|
||||
где `d_step` — шаг интерполяции. Экспериментально установлены оптимальные значения: `d_step ∈ {5, 10}`.
|
||||
|
||||
Цель: обеспечить более плавную ассоциацию между визуальным представлением изображения и значением высоты, повысить устойчивость к вариациям высоты и углов поворота камеры.
|
||||
|
||||
---
|
||||
|
||||
## 6. Извлечение категориальных признаков методом VQA
|
||||
|
||||
Признаки, не содержащиеся явно в метаданных датасета (сезон, погода, время суток), могут быть получены с помощью Visual Question Answering:
|
||||
|
||||
- **Вопрос:** "What is the approximate season shown in this aerial image?"
|
||||
- **Вопрос:** "What time of day does this image appear to be taken?"
|
||||
- **Вопрос:** "What is the weather condition in this image?"
|
||||
|
||||
Это позволяет автоматически обогащать текстовые описания без ручной разметки.
|
||||
Reference in New Issue
Block a user