Встречается на 5% собеседований по AI Engineer

Почему CNN уступает трансформерам

CNN эффективны для локальных паттернов (например, изображения), но трансформеры с механизмом внимания лучше улавливают глобальные зависимости. Пример: в NLP контекст слова зависит от всей последовательности, а не только от соседей.

python
# Пример внимания в трансформере (PyTorch)
import torch.nn as nn

class SelfAttention(nn.Module):
    def __init__(self, embed_size):
        super().__init__()
        self.query = nn.Linear(embed_size, embed_size)
        self.key = nn.Linear(embed_size, embed_size)
        self.value = nn.Linear(embed_size, embed_size)
    
    def forward(self, x):
        Q = self.query(x)
        K = self.key(x)
        V = self.value(x)
        attention = torch.softmax((Q @ K.T) / (x.size(-1) ** 0.5), dim=-1)
        return attention @ V

Ключевые причины:

  1. Глобальный контекст: Attention учитывает все элементы последовательности.
  2. Параллелизация: Трансформеры обрабатывают токены параллельно (в отличие от RNN).
  3. Масштабируемость: Легко адаптируются к длинным последовательностям.

Для изображений CNN всё ещё эффективны из-за индуктивного смещения (локальность, трансляционная инвариантность), но гибридные архитектуры (ViT) показывают SOTA.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы