Deep Learning на собеседовании Data Scientist
Содержание:
Зачем DL на собесе DS
В вакансиях DS deep learning — почти обязательный пункт. Уровень глубины разный:
- В команде продуктовой аналитики и классических задач — базы (что такое нейросеть, в чём отличие от линейной модели, fine-tuning общее)
- В команде CV/NLP/recsys — серьёзные знания архитектур, обучения, debugging
- В research-команде (Sber AI Lab, Yandex Research) — современные статьи, имплементации
Базовый минимум для junior-middle DS: MLP, CNN, RNN, transformers, dropout, batch normalization, optimizer. Понимание того, как обучается нейросеть.
Базовые архитектуры
MLP (Multilayer Perceptron)
Полносвязная нейросеть. Слои: input → hidden (несколько) → output.
Применяется на табличных данных, иногда на векторных представлениях. Часто работает хуже градиентного бустинга на классических задачах.
CNN (Convolutional Neural Network)
Для данных с пространственной структурой: изображения, аудио, временные ряды.
Главные элементы:
- Convolutional layer — фильтры скользят по входу
- Pooling (max, avg) — уменьшение размерности
- Fully connected на финале для классификации
Известные архитектуры: ResNet, EfficientNet, Vision Transformer (ViT) — это уже не CNN, но для CV.
RNN, LSTM, GRU
Для последовательностей (текст, временные ряды). Сейчас почти полностью вытеснены transformers, но базы знать нужно.
LSTM решает проблему vanishing gradient через cell state и gates. GRU — упрощённая версия LSTM, быстрее обучается, обычно не уступает в качестве.
Transformers
Стандарт для NLP, теперь и для CV (ViT). Основа — self-attention.
Подробно — Transformers и attention.
Обучение нейросетей
Backpropagation
Алгоритм обучения. Вычисляет градиент loss по весам через chain rule. Реализован в PyTorch/TensorFlow автоматически — программист пишет forward pass, backward вычисляется фреймворком.
На собесе: «Что такое vanishing gradient?» Ответ: при обратном распространении через много слоёв градиенты экспоненциально уменьшаются. Решения — ReLU вместо sigmoid, batch normalization, residual connections.
Optimizers
- SGD — базовый стохастический градиент. Простой, нужен учить learning rate
- SGD with Momentum — учитывает прошлые градиенты для сглаживания
- Adam — adaptive learning rate per parameter. Дефолт для большинства задач
- AdamW — Adam + правильная регуляризация. Современный стандарт
Learning rate schedule
Constant lr почти не используется. Стандарт:
- Step decay — уменьшать в N раз каждые M эпох
- Cosine annealing — плавное снижение по cos
- Warmup + cosine — сначала растёт от 0, потом снижается. Стандарт для transformers
Регуляризация
Dropout
При обучении случайно зануляет часть нейронов (с вероятностью p). Модель не может полагаться на конкретные связи.
Включён только при training, при inference — выключен.
Batch Normalization
Нормализует активации внутри батча. Ускоряет обучение, добавляет небольшой регуляризационный эффект.
Главная гайчка — на маленьких батчах работает плохо. Альтернатива — Layer Normalization (используется в transformers).
Weight decay
Добавляет L2-регуляризацию к loss. В AdamW реализован правильно (отдельно от Adam).
Data augmentation
Расширение датасета через искажения (повороты, обрезки, добавление шума). Сильнее любых регуляризаций.
Early stopping
Останавливает обучение при отсутствии улучшения на validation. Простой, но эффективный приём.
Transformers
Self-attention позволяет каждому элементу последовательности «обращать внимание» на любые другие. Это решает проблему RNN, где информация о далёких элементах теряется.
Архитектура:
- Input embeddings + positional encoding — токены и их позиции
- Multi-head attention — несколько параллельных attention голов
- Feed-forward networks — классические dense слои
- Layer Normalization + Residual connections
BERT — encoder-only, для классификации, NER, QA. GPT — decoder-only, для генерации. T5 — encoder-decoder, универсальная.
На собесе важно понимать, что такое attention scores и как они вычисляются (Q × K_T / sqrt(d) → softmax → × V).
Когда DL не нужен
DL — мощный, но дорогой инструмент. Не используйте, если:
- Табличные данные с <1М строк → CatBoost быстрее и точнее
- Линейная зависимость → linear/logistic regression объяснима и достаточна
- Маленький датасет → переобучение, нет смысла без augmentation/transfer learning
- Жёсткие требования к интерпретируемости → SHAP на бустинге понятнее
DL обоснован для: изображения, аудио, текст, очень большие датасеты, структурно-сложные задачи.
Частые ошибки
Не масштабировать вход. Без normalization сходимость медленная или невозможная.
Использовать sigmoid в скрытых слоях. Vanishing gradient. Стандарт сегодня — ReLU, GELU.
Не использовать dropout/batch norm. Без регуляризации сеть переобучится.
Использовать Adam без понимания. Для transformers — AdamW обязателен, иначе weight decay работает неправильно.
Тренироваться с маленьким батчем без gradient accumulation. Очень шумные градиенты ломают сходимость.
FAQ
PyTorch vs TensorFlow?
PyTorch — стандарт в research и большинстве производств. TensorFlow — больше в legacy и mobile.
Сколько DL-практики нужно для junior DS?
1-2 проекта с реальной нейросетью (CV или NLP). Понимание основ.
Это официальная информация?
Нет. Статья основана на классических работах (LeCun, He, Vaswani) и опыте кандидатов.