Общие вопросы по Deep Learning
- Что такое градиентный спуск? Для чего нужен и как работает?
- В чём разница между стохастическим и пакетным (обычным) градиентным спуском?
- Какие существуют улучшения градиентного спуска? (momentum, RMSProp, Adam и др.)
- Чем Adam отличается от RMSProp?
- Что такое затухание градиента? Почему оно происходит, где в формуле и как с этим бороться?
- Чем хороша функция активации ReLU и какие её модификации существуют?
- Что произойдёт, если убрать функцию активации или сделать её линейной?
- Как бороться с переобучением в нейросетях? (уменьшение глубины, нормализация, BatchNorm, Dropout)
- Что такое LR Scheduler и зачем он нужен?
- Что такое warmup при обучении нейросетей?
- Какие методы увеличения размера датасета существуют? (аугментации, генерация данных, transfer learning)
Задачи Computer Vision
- Какие задачи решаются в Computer Vision? (классификация, детекция, сегментация, трекинг, матчинг, генеративные модели, re-identification, OCR, оценка позы)
- Какие виды сегментации существуют (semantic, instance, panoptic) и какие архитектуры используются (UNet, DeepLab, Mask R-CNN и др.)?
- В чём особенности применения YOLO для сегментации и почему нельзя выделить объекты с внутренними полостями (например, «бублик»)?
Свёрточные слои
- Как работает операция свёртки?
- Какие методы снижения вычислительной нагрузки свёртки существуют? (разложение ядра: два 3x3 вместо 5x5, разделённая свёртка 3x1 + 1x3, ядро 1x1, расширенная свёртка)
- При замене одной свёртки 5x5 на две 3x3, сколько функций активации добавится?
- Как посчитать количество обучаемых параметров в conv2d с 10 фильтрами 3x3 при RGB-входе? (3x3x3x10 + 10 = 280)
Пулинг
- Что такое пулинг, для чего нужен и какие виды бывают? (max, min, average, global)
- Каков размер выходного тензора при входном 224x224 и пулинге 2x2?
- Как подать в сеть изображение произвольного размера? (Global/Adaptive Pooling)
- Как в ResNet получают вектор фиксированной размерности в конце? (Global Average Pooling)
Специальные слои
- Что такое residual connection, зачем нужен и какова его формула?
- Как переключение режимов train/eval влияет на работу BatchNorm и Dropout?
- Как работает BatchNorm, какие параметры он обучает и будет ли он работать на одном изображении?
- Как работает Dropout, обучается ли он и какие режимы он имеет?
- Что такое NMS и для чего он нужен?
Архитектуры нейросетей
- Как устроены ResNet, YOLO (особенности, используемые лоссы), UNet, CLIP и Vision Transformer (ViT)?
- В чём различие одностадийных и двустадийных детекторов?
- Что такое рецептивное поле и как его размер зависит от архитектуры свёрток?
- Что такое attention и какие методы ускорения существуют? (Flash Attention и др.)
- Какие три матрицы используются в multi-head attention и как работает механизм self-attention?
- Что такое positional encoding и как он применяется в трансформерах?
- В чём смысл LayerNorm в трансформерах?
- Что такое LoRA и как её использовать для дообучения больших моделей?
- В чём заключается архитектура Vision Transformer (ViT)?
- Как устроена архитектура CLIP и в чём сложности её дообучения?
Практические задачи
- Написать forward-pass нейросети с Dropout и BatchNorm.
- Реализовать функцию подсчёта обучаемых параметров для свёрточной сети.
- Настроить периодическое (еженедельное) обучение модели в FastAPI.
- Как улучшить распознавание текста в OCR и какие метрики при этом использовать?
- Для задачи определения больных пациентов: какие ML-метрики и бизнес-метрики выбрать и как подбирать порог?
- Как обучать YOLO при несбалансированных данных для детекции? Стоит ли применять sampling?
Метрики
- Классификация: Precision, Recall, ROC-AUC
- Детекция: mAP при различных порогах IoU
- Сегментация: IoU, DICE, pixel accuracy
- Трекинг: MOTA, MOTP, IDF1
- OCR: какие метрики применять?
- Генерации: SSIM, LPIPS, CLIP-score
Трекинг
- Какие алгоритмы трекинга существуют и в чём их особенности?
- Какие метрики используются для оценки трекинга?