Подготовка к интервью по машинному обучению

Исследователь данных, инженер по машинному обучению, инженер по глубокому обучению, инженер по искусственному интеллекту, исследователь по машинному обучению — вот некоторые из модных профессий 21-го века, и вокруг них также много вакансий. Учитывая огромную широту области ИИ, очень сложно узнать все до собеседования. Провалив много собеседований из-за отсутствия понимания того, что нужно подготовить для того или иного собеседования, поэтому я хотел бы поговорить о том, чем отличаются вышеупомянутые роли и что нужно быть готовым к каким ролям. Подходящей аудиторией для этого блога будут те, у кого есть опыт работы в отрасли от 0 до 2 лет.

Вообще говоря, в науке о данных есть 2 вида ролей: исследовательские роли и инженерные роли. Исследовательские роли требуют, чтобы вы очень хорошо разбирались в математике, стоящей за всем, в то время как инженерные роли требуют, чтобы вы производили модели, масштабировали их и в основном строили надежные модели. Некоторые компании ожидают, что вы будете готовы и к тому, и к другому, и есть несколько общих концепций, с которыми люди должны быть знакомы при собеседовании на обе роли. Поговорим о темах для размышления чуть подробнее.

1) Структуры данных
В большинстве компаний один или несколько раундов проверят ваши знания структуры данных и алгоритмов, и сложность будет зависеть от уровня компании. Все должны четко понимать основные вопросы массивов, строк, связанных списков, деревьев, динамического программирования, стеков, очередей. Если вы занимаетесь соревновательным программированием в качестве хобби, это не должно быть проблемой для вас, в противном случае вы можете пройти и понять работу известных задач из каждой из вышеупомянутых тем.

2) Основы машинного/глубокого обучения
«Основы» — очень расплывчатый и относительный термин, поэтому я перечислю некоторые темы, с которыми вы должны быть знакомы.
а) Компромисс смещения/дисперсии (очень важно)
б) Определения Precision/Recall и все, что с ними связано. (Будьте готовы с некоторыми примерами и вариантами использования)
c) Градиентный спуск (с математикой и интуицией за ним)
г) Регуляризация (L1, L2, Dropouts)
e) Обратное распространение (с математикой и интуицией за этим)
f) Четко понимать с определенным уровнем понимания, что такое кластеризация, классификация, регрессия и уменьшение размерности. Также имейте представление высокого уровня об известных алгоритмах по каждой из вышеперечисленных тем.

3) Язык программирования (я расскажу о Python)
Знакомство с тем, как работает python, передовой опыт, использование различных структур данных, встроенных в python, концепции объектно-ориентированного программирования в python, изменяемые и неизменяемые объекты, строки, чем отличаются «is» и «==». и подобные вещи. Как реализована хэш-функция в python, что такое хешируемые и нехэшируемые структуры данных с разумом, написание и понимание списков, итераторов, генераторов и декораторов и как они реализованы.
Пример забавного вопроса (это настоящий вопрос на собеседовании):

  def foo(x = []):
      x.append(1)
      return x
  print(foo())
  print(foo())

Каков будет результат этого?

4) Способность решать проблемы
Этот раздел может быть, а может и не быть в процессе собеседования. Но на некоторых собеседованиях этот раунд может стать узким местом, если вы больше работаете над инженерной частью. Этот тип раунда в основном включает вопросы, связанные с моделированием сценария с нуля. Например: Как вы моделируете систему, в которой вы хотите обнаруживать мошенничество с кредитными картами? Теперь, когда вы отвечаете на такие вопросы, вы должны подумать о функциях, которые вы выберете, рассуждая, о модели (какой и почему) вы будете использовать, о метриках, которые вы определите, а иногда и о том, как вы будете их производить.

5) Исследовательские роли (не те, которые требуют магистра или доктора наук)
Вы должны быть знакомы с математикой и всей интуицией, лежащей в основе всех основных концепций машинного обучения и концепций, лежащих в основе проектов, которые вы упомянули в своем резюме. Ниже я приведу несколько примеров того, что можно ожидать и какой уровень детализации конкретной концепции можно ожидать.

Теперь предположим, что у вас есть что-то, связанное с обнаружением объектов, поэтому вы должны четко понимать каждую деталь того, что вы упомянули в своем проекте. Некоторые вещи, о которых вы должны быть абсолютно уверены, — это математическая интуиция, стоящая за сверткой, а также фактическая математика, как обучается модель обнаружения объектов, какова история моделей, которые используются для обнаружения объектов, таких как Fast RCNN, Faster RCNN, маска RCNN и т. д. и почему мы перешли от одной модели к другой. Вы также должны иметь четкое представление о различных методах объединения и о том, когда что использовать. Я надеюсь, что это дало вам представление о том, до какого уровня и деталей могут дойти исследовательские интервью.

Вышеприведенное было примером того, насколько глубоко могут работать интервьюеры в области, связанной с исследованиями. Вы также должны знать математику, лежащую в основе машинного обучения, например, математическую формулу смещения.

6) Инженерные роли (в команде машинного обучения)
Этот тип роли потребует хороших знаний о том, как обслуживать модели в производстве, и о проблемах, стоящих за этим. Здесь большим плюсом будет знание того, как масштабировать модели и конвейеры больших данных. Предыдущий опыт в производстве и развертывании моделей имеет важное значение и поможет вам ответить на различные сценарии, предложенные интервьюером. Вас также могут попросить написать некоторые базовые функции API для данного сценария, например, как вы улучшите извлечение значения определенного ключа из большой базы данных, если служба не может соответствовать SLA.

Наконец, вы должны очень четко объяснять свои проекты, потому что в этой области существует много недоразумений.

Если вам интересно, что статистика нигде не упоминается, я полагаю, что основная статистика запрашивается в роли аналитика или относится к описанию работы.

Составление резюме — еще один важный аспект попадания в шорт-лист собеседований по науке о данных. Я бы рассказал об этом в другом блоге.

PS: Это мой взгляд на собеседования по науке о данных, и он не гарантирует вам работу, он просто увеличивает вероятность того, что вы лучше проявите себя на собеседованиях по науке о данных.

Кредиты — Nathan W Pyle за иллюстрацию!

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *