Skip to content

Вопросы с собеседований на позицию Machine Learning Engineer

License

Notifications You must be signed in to change notification settings

epishchik/ML-Interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

ML interview

Банк вопросов для собеседований на позицию Machine Learning Engineer в области Computer Vision.

🧠 Основы машинного обучения

Модели машинного обучения

  • Что такое градиентный бустинг? Где там появляется градиент?
  • Рассказать про RandomForest.
  • Можно ли строить RandomForest над KNN, линейными моделями и нейросетями, почему?
  • Как аналитически решается задача линейной регрессии?
  • Как происходит процесс построения дерева?
  • Что такое bagging?

Переобучение и регуляризация

  • Что такое переобучение? Какие есть способы борьбы с ним?
  • Какие существуют методы регуляризации? Плюсы и минусы каждого, области применения каждого.
  • Почему L1 регуляризация зануляет часть весов?
  • Что такое bias, variance модели?
  • Что такое bias-variance trade-off?
  • Какой bias и variance у различных типов моделей: линейные модели, деревья, ансамбли деревьев?
  • Что такое дисбаланс классов и как с ним бороться?
  • Почему деревья сильнее переобучаются?

Оптимизация и градиентные методы

  • Какие знаешь оптимизаторы, в чем их идеи и различия?
  • Gradient Descent (GD), Stochastic Gradient Descent (SGD) и Mini-Batch Stochastic Gradient Descent (Mini-Batch SGD). В чем их различия, плюсы и минусы каждого?
  • Если бы мы имели бесконечные ресурсы (память, GPU, CPU и т.д.), а также нам была бы не важна скорость сходимости модели, то какой метод GD, SGD или Mini-Batch SGD лучше использовать?
  • Что такое gradient clipping?
  • Рассказать про gradient accumulation.
  • Что такое градиент?

Математическая статистика и теория вероятностей

  • Формулировка задачи Maximum Likelihood Estimation. Записать формулу.
  • Задачка на вероятность: есть 100 монет, 1 нечестная (на обеих сторонах изображен орел), при подбрасывании выпал орел, найдите вероятность, что монетка была нечестной.
  • Коэффициент корреляции равен 0, можно ли утверждать, что выборки независимы?
  • Какую зависимость ищет корреляция?
  • Как проверить нормальность выборки?
  • Что такое pvalue и для чего оно нужно?

Другое

  • Задача: решаем задачу линейной регрессии, все y > 0, какие алгоритмы из написанных могут дать отрицательное значение: линейная регрессия, KNN, градиентный бустинг, дерево, случайный лес, нейросеть?
  • Есть градиентный бустинг и случайный лес на 1000 деревьев, что будет с качеством каждой модели если удалить первое построенное дерево?
  • Почему в градиентном бустинге обычно менее глубокие деревья используют, чем в случайном лесе?
  • Что такое проблема мультиколлинеарности признаков?

🖥️ Компьютерное зрение и мультимодальные подходы

Архитектуры нейронных сетей

  • Рассказать про архитектуру ViT.
  • Рассказать про идею ResNet, написать ResidualBlock.
  • Рассказать про MobileNet и EfficientNet.
  • CLIP - идея, функция потерь, способ обучения, для чего используется? Какие метрики дистанции между эмбеддингами можно использовать и какую метрику использовали авторы?
  • Как работают различные токенизаторы текста?

Сверточные нейронные сети (CNN)

  • Что такое операция свертки? Какие у нее свойства? Как представить в виде матричного умножения?
  • Что такое receptive field?
  • Какие виды сверток знаешь, идеи, плюсы и минусы каждой?
  • Почему мы перешли от сверток (CNN) к механизму вниманию (Transformer) во многих задачах CV?
  • Почему практически перестали использовать свертки больших размеров 9x9, 7x7, 5x5?
  • Может ли быть такое, что Atrous свертка вообще никогда не использует какой-то пиксель?
  • Можно ли заменить свертку 3x3 на две: 3x1 и 1x3?

Нормализация и функции активации

  • Что такое Dropout?
  • Какие виды нормализации существуют?
  • Как работает BatchNorm и LayerNorm? Преимущества и недостатки каждой и где применяются?
  • Какие проблемы могут возникать при использовании функции активации Sigmoid вместе с BatchNorm?
  • Проблемы функции активации Sigmoid, где применяется и как интерпретируется?
  • Почему сеть с BatchNorm сходится быстрее?
  • Какие обучаемые параметры есть в BatchNorm и для чего они нужны?

Трансформеры и механизм внимания

  • Рассказать про multi-head attention в деталях.
  • В чем разница self-attention и cross-attention, для чего используется каждый?
  • Какие знаешь трансформеры для задач Computer Vision?
  • Как из текстов получить эмбеддинги, которые пойдут на вход в трансформер?
  • Pre-layer norm vs post-layer norm, в чем разница, какие и где используются и почему?
  • Почему в трансформерах есть ограничения на количество токенов?
  • Что такое позиционные эмбеддинги и для чего они нужны? Какие есть виды и для чего каждый нужен?
  • Можно ли использовать двумерное позиционное кодирование в трансформерах, работающих с изображениями?
  • Какие проблемы могут быть у одномерного позиционного кодирования в случае работы с изображениями?
  • Как борются с квадратичной сложностью механизма внимания?
  • Как обучался BERT?
  • Задача: что будет эффективнее по скорости, подать 2 входа по 512 токенов в трансформер по отдельности (2x512) или объединить входы и подать сразу (1x1024)?

Детекция и локализация объектов

  • Как работает NMS (Non Maximum Suppression) и для чего нужен?
  • Рассказать про метрику MAP (Mean Average Precision). Что значит [email protected], [email protected]:0.95?
  • Что является таргетом в задаче детекции, как формируется функция потерь?
  • Какие типы моделей знаешь для задач детекции?
  • Что означает каждое обозначение в функции потерь для Faster-RCNN (loss_classifier, loss_objectness, loss_rpn, loss_bbox)?
  • Чем двухстадийные детекторы отличаются от одностадийных?
  • Как работает матчинг bounding bbox в моделях YOLO / DETR?
  • Рассказать про венгерский алгоритм.
  • Что такое и зачем нужны RoI, RoI Pooling, RoI Align?
  • Для чего в задачах детекции нужны anchor боксы?
  • Как объединяются выходы голов в FPN?
  • Что такое multi-scale детекция?

🌐 Генеративные модели

Генеративно-состязательные модели

  • Что такое GAN, какие знаешь, какие использовал?
  • Какая идея Cycle-GAN?

Stable Diffusion

  • Из каких частей состоит Stable Diffusion (SD)?
  • Какая математическая идея у диффузионных моделей?
  • Какие еще диффузионные модели есть кроме SD?
  • Что предсказывает U-Net в SD на каждом шаге?
  • Какой вид U-Net используется в SD?
  • Как обучаются модели SD?
  • Как семплируется шаг t в SD?
  • Как можно модифицировать архитектуру SD, чтобы генерировать не только по тексту, но и по дополнительным входам (изображения, аудио и т.д.)?

Другое

  • Какие методы можно использовать для генерации изображений? Их плюсы и минусы.
  • Рассказать про ControlNet, LoRA.

🔍 Метрики и оценка моделей

  • Какие метрики бинарной классификации есть? Плюсы и минусы каждой.
  • Что такое TPR и FPR?
  • Как ROC-AUC работает на данных, где есть дисбаланс классов?
  • ROC-AUC = 0.9, что с ним будет если домножить все предсказания на число 3?
  • Метрики multiclass классификации, их плюсы и минусы.
  • Какая вероятностная интерпретация у ROC-AUC?
  • Как происходит расчет ROC-AUC?
  • Как определяются thresholds для расчета ROC-AUC?
  • Решаем задачу бинарной классификации, как изменятся метрики precision и recall, если выкинуть 10 нулей из таргета?

🐍 Python и программирование

  • Отличие classmethod от staticmethod в Python?
  • Какие типы данных подходят как ключ словаря в Python?
  • Можно ли использовать (1, [1,2]) как ключ словаря в Python?
  • Какая структура данных лежит в основе dict в Python?
  • Какие знаешь виды сортировок и их сложности?
  • Какая сложность вставки в словарь и индексации в Python?
  • Что такое GIL в Python?
  • Как реализуют параллельность с учетом GIL в Python?
  • Что такое ассинхронность?
  • Как посчитать медиану в SQL без встроенной функции? Как посчитать количество строк в таблице? Знаешь ли ты про оконные функции?

🔬 Дополнительные темы

  • Какой learning rate будешь использовать для большого батча, а какой для маленького?
  • Проблемы с инициализацией весов нулями. Как можно инициализировать веса так, чтобы решить проблемы?
  • Как можно аггрегировать композитную функцию потерь (loss = loss1 + loss2)?
  • Почему в residual connection используется операция сложения?
  • Что такое bottleneck слой и для чего он используется?
  • Почему модель на этапе обучения занимает больше памяти, чем на инференсе?
  • Какие слои в нейросетях отличаются поведением на трейне / инференсе?

About

Вопросы с собеседований на позицию Machine Learning Engineer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published