В чем разница между архитектурами CNN, RNN и трансформеров?

«В чем разница между архитектурами CNN, RNN и трансформеров?» — вопрос из категории Нейронные сети и Deep Learning, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Это три фундаментальные архитектуры нейронных сетей, каждая из которых доминировала в своей области благодаря особому механизму обработки данных.

  • CNN (Сверточная нейронная сеть)

    • Ключевая идея: Использование сверточных фильтров (ядер) для автоматического обнаружения локальных пространственных или временных паттернов с помощью операции свертки.
    • Индуктивное смещение: Трансляционная инвариантность и локальность — важный признак может находиться в любом месте изображения и определяется соседними пикселями.
    • Основная область: Компьютерное зрение (классификация, детекция, сегментация), но также успешно применяется к 1D-данным (например, анализ временных рядов, текстов на уровне символов).
  • RNN (Рекуррентная нейронная сеть) и её варианты (LSTM, GRU)

    • Ключевая идея: Наличие скрытого состояния (hidden state), которое передается от одного шага последовательности к следующему. Это позволяет сети сохранять "память" о предыдущих элементах.
    • Индуктивное смещение: Последовательная зависимость — текущий элемент зависит от предыдущих.
    • Основная область: Обработка последовательных данных, где важен порядок и контекст: машинный перевод, генерация текста, анализ временных рядов. Главный недостаток — сложность параллелизации из-за последовательной природы.
  • Трансформер (Transformer)

    • Ключевая идея: Полный отказ от рекуррентности и свертки в пользу механизма внимания (attention), в частности самовнимания (self-attention). Этот механизм позволяет модели напрямую вычислять зависимости между всеми элементами последовательности, независимо от расстояния между ними.
    • Индуктивное смещение: Глобальная зависимость — любой элемент может напрямую влиять на любой другой.
    • Основная область: Доминирует в NLP (BERT, GPT, T5), но также проникает в компьютерное зрение (Vision Transformer) и другие области. Его главное преимущество — высокая степень параллелизации на GPU, что ускоряет обучение на больших объемах данных.

Сравнительный пример подхода к обработке предложения "The cat sat on the mat":

  • CNN (1D): Будет скользить фильтрами по последовательности слов/токенов, улавливая локальные n-граммы ("the cat", "cat sat").
  • RNN: Будет обрабатывать слова по очереди, обновляя скрытое состояние, чтобы к слову "mat" в памяти была информация о "cat" и "sat".
  • Трансформер: На этапе самовнимания напрямую вычислит, что слово "sat" сильно связано с "cat", а "on" — с "mat", взвешивая все слова одновременно.