Ответ
CNN (сверточные нейронные сети) и трансформеры имеют разные индуктивные смещения, что делает их оптимальными для разных типов данных. CNN уступают трансформерам в задачах, где критически важны длинные дистанционные зависимости и глобальный контекст.
Ключевые различия:
| Аспект | CNN (например, ResNet) | Трансформер (например, ViT, BERT) |
|---|---|---|
| Основная операция | Свертка (локальные фильтры) | Механизм внимания (self-attention) |
| Контекст | Локальный, расширяется с глубиной сети | Глобальный с первого слоя |
| Индуктивное смещение | Локальность, трансляционная инвариантность | Минимальное, модель учит зависимости из данных |
| Параллелизация | Хорошая для изображений фиксированного размера | Отличная для последовательностей любой длины |
Почему attention мощнее для некоторых задач? В механизме внимания каждый элемент (пиксель, токен) может напрямую «видеть» и взвешивать влияние всех остальных элементов, независимо от расстояния.
Упрощенная суть Self-Attention (на примере NLP):
import torch
import torch.nn as nn
import torch.nn.functional as F
# Пусть x - эмбеддинги слов: [batch_size, seq_len, embedding_dim]
x = torch.randn(2, 10, 512) # 2 предложения, 10 слов, размер эмбеддинга 512
# Линейные проекции для Query, Key, Value
W_Q = nn.Linear(512, 64)
W_K = nn.Linear(512, 64)
W_V = nn.Linear(512, 64)
Q = W_Q(x) # [2, 10, 64]
K = W_K(x) # [2, 10, 64]
V = W_V(x) # [2, 10, 64]
# Вычисление весов внимания: насколько каждое слово важно для текущего
attention_scores = torch.matmul(Q, K.transpose(-2, -1)) # [2, 10, 10]
attention_scores = attention_scores / (64 ** 0.5) # Масштабирование
attention_weights = F.softmax(attention_scores, dim=-1) # [2, 10, 10]
# Взвешенная сумма Value векторов -> новый контекстный эмбеддинг слова
context = torch.matmul(attention_weights, V) # [2, 10, 64]
# Теперь эмбеддинг каждого слова содержит информацию обо всех словах в предложении.
Вывод: CNN по-прежнему эффективны и быстрее для многих задач классификации изображений, особенно при ограниченных данных, благодаря своему сильному индуктивному смещению. Однако трансформеры (Vision Transformers, Swin Transformers) показывают state-of-the-art результаты на крупных датасетах, потому что могут выучить более сложные глобальные взаимодействия между частями изображения, которые CNN улавливают лишь косвенно через множество слоев.