first commit

This commit is contained in:
2026-04-24 09:49:17 +03:00
commit 5782a2b35f
46 changed files with 1783 additions and 0 deletions

View 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 необходимо для предотвращения переобучения на текстовую модальность при любой конфигурации слияния.

View 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_b1)) Σ (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) | Сила подавления лёгких примеров | 13 |
| `λ` | Вес L_align в итоговой функции потерь | 0.10.5 |
| `p_textDropout` | Вероятность игнорирования текстовых признаков | 0.20.3 |
| `d_step` | Шаг интерполяции высоты | 510 м |

View 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?"
Это позволяет автоматически обогащать текстовые описания без ручной разметки.