COCOM-Attention: Обнаружение неявной диверсификации через усреднение градиентов
Аннотация
В машинном обучении исследовательский процесс часто фокусируется на сознательном проектировании прорывных архитектур и явных механизмов улучшения (например, diversity loss). В данной работе я демонстрирую, что не менее важным источником открытий могут быть, казалось бы, ошибочные или «наивные» решения на этапе проектирования.
Я представляем COCOM-Attention — архитектуру с тремя независимыми экспертами, вдохновлённую моделью контекстуального контроля (COCOM). Изначальной целью была явная специализация экспертов через разные паттерны внимания. Однако ключевое открытие было сделано не благодаря сложному дизайну, а вопреки ему — из-за технической «ошибки» в схеме обучения.
Сравнивая две тривиально разные схемы:
- v7 (Individual Loss): Каждый эксперт оптимизируется своим собственным полным градиентом — интуитивно правильный подход.
- v5 (Averaging Gradient): Градиент единственного
lossдля усреднённых логитов делится поровну между экспертами — подход, который ожидаемо должен быть менее эффективным.
Парадоксальный результат: v5 значительно превосходит v7 (45.2% vs 42.2%). Анализ показывает, что «ошибочное» усреднение градиента действует как мощный неявный регуляризатор, заставляя слабых индивидуально экспертов (20-24% точности) диверсифицироваться и стать высокоэффективным ансамблем (+21% к точности). В то время как «правильный» подход v7 приводит экспертов к одному и тому же, хоть и более сильному, локальному оптимуму (схожесть признаков 93%), убивая преимущества ансамбля.
Таким образом, данная работа служит яркой иллюстрацией важной мета-принципа: погоня за прямым, «логичным» улучшением отдельных компонентов (v7) часто приводит к субоптимальным системам, в то время как кажущиеся ошибки или артефакты (v5) могут раскрывать фундаментальные принципы, такие как неявная диверсификация через разделение градиента. Открытый эффект представляет собой не просто новый SOTA-результат, а методологический инсайт: иногда наибольший прогресс заключается не в добавлении сложности, а в изучении и осмыслении того, что уже происходит «под капотом» простых, но неправильно понятых механизмов. Эта работа призывает сообщество уделять больше внимания «неожиданностям» и «аномалиям» в экспериментах, которые зачастую являются проводниками к более глубокому пониманию.
1. Введение
1.1 Мотивация
Классические архитектуры внимания (Transformer) обрабатывают всю последовательность одинаково. Мы предположили, что специализированные эксперты с разными паттернами внимания могут лучше захватывать различные аспекты данных.
1.2 Модель Холлнагела (COCOM)
Erik Hollnagel предложил модель контроля с четырьмя режимами:
|
Режим |
Описание |
Наш эксперт |
|
Strategic |
Глобальное планирование |
Top-k attention (25%) |
|
Tactical |
Следование правилам |
Local window (±8 токенов) |
|
Opportunistic |
Использование возможностей |
Full attention |
|
Scrambled |
Хаотичные действия |
Memory (арбитр) |
2. Архитектура
v5

v7

Архитектура эксперта
class IndependentExpert(nn.Module):
def __init__(self, d_model=256, n_heads=8, expert_type='strategic'):
self.qkv = nn.Linear(d_model, 3 * d_model)
self.out_proj = nn.Linear(d_model, d_model)
self.dropout = nn.Dropout(0.1)
self.norm = nn.LayerNorm(d_model)
self.classifier = nn.Sequential(
nn.Linear(d_model, d_model // 2),
nn.GELU(),
nn.Dropout(0.1),
nn.Linear(d_model // 2, num_classes)
)
def forward(self, x):
# Attention (тип зависит от expert_type)
attn_output = self._attention(x)
# Residual + Norm
output = self.norm(x + self.dropout(attn_output))
# Classification
pooled = output.mean(dim=1)
logits = self.classifier(pooled)
return logits, pooled
2.4 Типы внимания



3. Эксперименты
3.1 Датасет
- Benchmark: Long Range Arena (LRA) — Image Task
- Input: CIFAR-10 изображения как 1D последовательности (32×32 → 1024 пикселей)
- Classes: 10
- Train/Test: 50K / 10K
3.2 Гиперпараметры
|
Параметр |
Значение |
|
d_model |
256 |
|
n_heads |
8 |
|
batch_size |
32 |
|
learning_rate |
1e-4 |
|
epochs |
60 |
|
optimizer |
AdamW |
3.3 Результаты обучения
v5 (Averaging Gradient)
|
Epoch |
Train Acc |
Test Acc |
Agree |
|
1 |
22.9% |
28.6% |
48% |
|
10 |
38.9% |
38.2% |
25% |
|
20 |
44.3% |
43.2% |
28% |
|
30 |
47.4% |
44.2% |
29% |
|
40 |
49.7% |
44.8% |
28% |
|
44 |
50.6% |
45.59% |
30% |
|
51 |
51.8% |
45.0% |
29% |
v7 (Individual Loss)
|
Epoch |
Train Acc |
Test Acc |
Agree |
|
1 |
20.2% |
25.9% |
90% |
|
10 |
35.5% |
35.3% |
92% |
|
20 |
39.4% |
37.5% |
91% |
|
30 |
42.4% |
41.3% |
90% |
|
40 |
44.6% |
42.0% |
90% |
|
50 |
46.2% |
42.2% |
91% |
|
60 |
47.5% |
42.2% |
91% |
3.4 Визуализация обучения

4. Анализ компонентов
4.1 Индивидуальная точность экспертов
|
Эксперт |
v5 Accuracy |
v7 Accuracy |
|
Strategic |
23.85% |
41.25% |
|
Tactical |
20.29% |
40.99% |
|
Exploratory |
22.91% |
40.71% |
|
Ensemble |
45.16% |
42.20% |
|
Improvement |
+21.3% |
+0.95% |
IMPORTANT
v5: Индивидуально слабые эксперты (20-24%) дают +21% улучшения при ансамблировании. v7: Индивидуально сильные эксперты (41%) дают только +1% улучшения.
4.2 Схожесть признаков (Feature Similarity)
|
Пара экспертов |
v5 (cosine) |
v7 (cosine) |
|
Strategic ↔ Tactical |
0.37 |
0.92 |
|
Tactical ↔ Exploratory |
0.40 |
0.93 |
|
Strategic ↔ Exploratory |
0.21 |
0.95 |
|
Average |
0.33 |
0.93 |
Feature Similarity Comparison
v5: ████████████░░░░░░░░░░░░░░░░░░ 0.33 (33% similar)
v7: ████████████████████████████░░ 0.93 (93% similar)
v5 эксперты РАЗНЫЕ, v7 эксперты ОДИНАКОВЫЕ
4.3 Консенсус
|
Метрика |
v5 |
v7 |
|
Consensus Rate |
27.7% |
91.8% |
|
Disagreement |
72.3% |
8.2% |
5. Теоретическое обоснование
5.1 Почему усреднение создаёт разнообразие?
Individual Loss (v7):
loss_s = CE(logits_s, y) → ∂L/∂θ_s = full gradient
loss_t = CE(logits_t, y) → ∂L/∂θ_t = full gradient
loss_e = CE(logits_e, y) → ∂L/∂θ_e = full gradient
Каждый эксперт стремится к одному и тому же оптимуму → похожие решения.
Averaging Gradient (v5):
final_logits = mean(logits_s, logits_t, logits_e)
loss = CE(final_logits, y) → ∂L/∂θ_* = 1/3 gradient
Эксперты могут разделить труд — один покрывает ошибки других → специализация.
5.2 Bias-Variance Tradeoff
|
Подход |
Bias |
Variance |
Ensemble Effect |
|
v7 (individual) |
Low |
Low |
Minimal (same predictions) |
|
v5 (averaging) |
High |
High |
Variance reduction |
5.3 Научные ссылки
- "Diversity and Generalization in Neural Network Ensembles" (arXiv:2110.13786)
- Теоретический анализ связи diversity и performance ensemble
- "Efficient Diversity-Driven Ensemble for Deep Neural Networks" (arXiv:2112.13316)
- Diversity-driven loss для оптимизации ensemble
- "Input-gradient space particle inference for neural network ensembles" (arXiv:2306.02775)
- Repulsion в gradient space для diversity
- Hollnagel, E. (1993). "Human reliability analysis: Context and control"
- Оригинальная модель COCOM
6. Сравнение с SOTA
|
Model |
LRA Image Acc |
Parameters |
|
Transformer |
42.44% |
250K |
|
Performer |
42.77% |
250K |
|
BigBird |
40.83% |
250K |
|
COCOM v7 |
42.20% |
1.1M |
|
COCOM v5 |
45.59% |
1.1M |
|
TLB |
57.51% |
2.4M |
7. Выводы
7.1 Ключевые находки
- Averaging gradient создаёт неявную диверсификацию — эксперты специализируются автоматически без явного diversity loss.
- Слабые, но разные > Сильные, но похожие — ensemble learning theory подтверждается на практике.
- Individual loss убивает diversity — даже с явным diversity loss (-0.1 * div_loss) эксперты остаются 93% похожими.
7.2 Рекомендации
Для построения эффективных ensemble:
- ✅ Использовать shared loss (averaging)
- ✅ Разные механизмы внимания
- ❌ Не использовать individual loss
- ❌ Не полагаться на explicit diversity loss
7.3 COCOM v8: Confidence-Weighted Arbitration
v8 объединяет лучшее из v5 с умным арбитром:
Архитектура:
# Training: averaging (как v5)
avg_logits = (logits_s + logits_t + logits_e) / 3
# Arbitrator: entropy-based confidence + learned attention
confidence = 1 - normalized_entropy(logits)
weights = attention(arbitrator_query, expert_features) * confidence
arb_logits = weighted_sum(all_logits, weights)
# Final: consensus → avg, disagreement → arbitrator
final = avg_logits if consensus else arb_logits
Параметры: ~1.26M (+15% vs v5)
7.4 Будущая работа
- TLB integration: Fast/Slow streams с COCOM экспертами
- Scaling: Тестирование на других LRA задачах (ListOps, Pathfinder)
Приложение A: Код
A.1 v5 Forward Pass
def forward(self, x):
logits_s, _ = self.expert_strategic(x)
logits_t, _ = self.expert_tactical(x)
logits_e, _ = self.expert_exploratory(x)
# Averaging для inference и training
all_logits = torch.stack([logits_s, logits_t, logits_e], dim=1)
final_logits = all_logits.mean(dim=1)
return final_logits
A.2 v7 Training Loop
# Individual losses
loss_s = F.cross_entropy(analysis['logits_s'], y)
loss_t = F.cross_entropy(analysis['logits_t'], y)
loss_e = F.cross_entropy(analysis['logits_e'], y)
# Sum (each expert receives full gradient)
total_loss = loss_s + loss_t + loss_e
total_loss.backward()
Приложение B: Результаты анализа
v5 Analysis Output
📊 Individual Head Accuracy:
Strategic (top-25%): 23.85%
Tactical (window-16): 20.29%
Exploratory (full): 22.91%
🗳️ Voting System (averaging):
Full Model: 45.16%
🔗 Head Feature Similarity (cosine):
Average similarity: 0.33
v7 Analysis Output
📊 Individual Head Accuracy:
Strategic (top-25%): 41.25%
Tactical (window-16): 40.99%
Exploratory (full): 40.71%
🗳️ Voting System:
Full Model: 42.20%
🔗 Head Feature Similarity (cosine):
Average similarity: 0.93
Заключение: Ценность пути, а не только результата
Настоящая работа служит важным напоминанием для исследовательского сообщества машинного обучения и науки в целом: прогресс измеряется не только прорывными результатами, но и качеством исследовательского пути, ведущего к ним.
Традиционная научная публикация часто фокусируется на демонстрации успеха — новой архитектуре, улучшенной метрике, достигнутом SOTA. При этом «путь к успеху» — тупиковые ветви, ошибочные гипотезы, технические ляпы и неожиданные артефакты — обычно остаётся за кадром, в лучшем случае упоминаясь вскользь. Этот стереотип создаёт искажённую картину исследовательского процесса как линейного и предопределённого.
Эксперимент с COCOM-Attention демонстрирует обратное:
- Ключевое открытие (неявная диверсификация) родилось из технической «ошибки» — схемы усреднения градиента, которая казалась менее оптимальной, чем прямая индивидуальная оптимизация.
- Анализ неудачи (v7) оказался не менее важен, чем анализ успеха (v5). Понимание, почему «правильный» подход даёт худший результат, пролило свет на фундаментальные принципы ансамблирования и специализации.
- Прозрачность этого пути — от исходной мотивации через COCOM до обнаружения парадокса — позволяет другим исследователям не только воспроизвести результат, но и понять механизм его работы, избегая аналогичных методологических ловушек.
Вывод для сообщества:
- Документирование неудач и аномалий — это не слабость, а сила. Оно экономит колоссальные ресурсы, предотвращая многократное «изобретение одних и тех же граблей» разными лабораториями.
- Качественное исследование — это исследование с рефлексией. Важнейшая часть работы — не просто получить число, а понять, почему система ведёт себя именно так, и честно анализировать расхождения между ожиданиями и реальностью.
- Наука развивается через понимание механизмов, а не только через набор результатов. Детальный разбор «почему это сработало» (даже если это «сработало» случайно) вносит больший вклад в общее знание, чем ещё один чёрный ящик с высоким accuracy.
Я за формирование культуры прозрачной и целостной научной коммуникации, где ценность представляет не только финишная черта, но и карта с отмеченными тупиками и неожиданными поворотами. Именно такая практика — открытый обмен не только триумфами, но и сомнениями, ошибками и их анализом — способна ускорить коллективный прогресс, сделав исследования более воспроизводимыми, интерпретируемыми и, в конечном счёте, более качественными.
В этом контексте эта работа является скромной иллюстрацией простой истины: иногда самый короткий путь к открытию лежит через честный анализ собственной «ошибки».