Встречается на собеседованиях • сегодня

Почему 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.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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