Четыре ключевых раздела каждого интервью по машинному обучению: руководство по подготовке и ресурсы.

Многие из моих сверстников со времен моей докторской диссертации теперь ищут новое место для переезда. И зная все трудности с поиском первой работы, я активно помогаю им подготовиться. Со временем я накопил большой объем отзывов об интервью, и в этой статье я обобщаю соответствующие источники для подготовки к интервью с помощью машинного обучения.

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

Список полезных ресурсов, упомянутых в статье, приводится в конце!

Кодирование

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

Живое кодирование

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

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

Если проблема непростая, задайте уточняющие вопросы и начните с грубого решения. Следующий шаг — набросать псевдокод решения — либо с объявлением функции и комментариями, либо просто с комментариями. Это облегчило бы просмотр общей картины. Затем вы можете просмотреть разделы комментариев, заполняя решение.

Вообще лучший способ подготовиться — это решить 50–100 вопросов по литкоду. Большим преимуществом leetcode перед другими платформами являются подробные ответы и статистика вопросов — сложность вопроса и то, какие компании его задавали. Еще один полезный ресурс — Книга интервью Cracking the Coding.

Домашнее задание

Обычно получают домашнее задание по программированию/инженерному кодированию, которое непосредственно проверяет ваши знания и навыки в предметной области на реальной проблеме. Обычно вам предоставляется набор данных и набор инструкций. Вам либо предложат выделить 4–6 часов (обратный отсчет начнется с момента получения задания), либо вам дадут больший временной интервал от нескольких дней до недели на решение задачи.

Чтобы подготовиться к такого рода вопросам, хорошим ресурсом является kaggle. Где вы можете практиковать проблемы науки о данных и искать решения от других. Те же принципы применимы и к живому кодированию — понятный, документированный и повторно используемый код с обоснованными алгоритмическими решениями. Если есть документы, на которые вы полагаетесь, обязательно приложите и их.

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

Домашнее задание обычно обсуждается на следующем этапе собеседования. У вас будет возможность обосновать свои решения и подумать, как можно улучшить решение.

Примеры вопросов:

  1. Напишите классификатор изображений/текста.
  2. Учитывая зашумленный временной ряд потребления электроэнергии, определите, когда свет на кухне был выключен.
  3. Имея данные, извлеките признаки и постройте модель кластеризации.

Теория машинного обучения

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

Основы

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

Готовя эту статью, я нашел эту книгу-интервью Q/A для позиций машинного обучения, в которой есть солидный список вопросов с ответами на них. Еще одна замечательная книга, Подготовка к собеседованию по машинному обучению, содержит много хороших разделов о поведении на собеседованиях, переговорах о зарплате и технических вопросах. Кроме того, я нашел этот блог, в котором обобщаются каналы из стеклянной двери об интервью по машинному обучению.

Примеры вопросов:

  1. Что такое нормализация партии? Каковы его недостатки? Опишите нормализации, которые их исправляют.
  2. Объясните компромисс между смещением и дисперсией.
  3. Перечислите распространенные генеративные модели и их плюсы и минусы.
  4. Почему сложно обучать ванильные GAN? Как можно улучшить обучение.
  5. Как бы вы предотвратили переоснащение нейронной сети?
  6. Объясните, как применить отсев. Отличается ли он для обучения и тестирования?
  7. Приведите примеры нейросетевых оптимизаторов, как они работают? Что такое градиентный взрыв? Как исправить это с помощью функций активации?
  8. Почему нейронные сети могут не подойти для данной задачи? (ознакомьтесь с этой статьей)
  9. Объясните механизм внимания в трансформерах (теперь это общая схема, которую можно применять к широкому кругу задач).
  10. Опишите метод уменьшения размерности по вашему выбору.

Область знаний

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

Я обнаружил, что раздел о методах в документах с кодом очень полезен для пересмотра основных документов при подготовке к интервью. Наиболее полезной особенностью раздела является резюме статей с изображениями и основными пояснениями.

Примеры вопросов резюме:

  1. Почему CNN так хороши применительно к изображениям?
  2. Как применить деконволюцию?
  3. Почему трансформеров сложно применять к изображениям?
  4. Как бы вы перенесли эмоции с одного лица на другое?
  5. Что такое временная согласованность и как ее достичь?
  6. Какие функции потерь вы можете использовать для генеративной модели?
  7. Почему оценка FID может быть не лучшей метрикой реализма?
  8. Опишите типы сверток и их мотивацию.
  9. Что такое нормализация экземпляра?
  10. Описать функции потерь для реконструкции изображений, их плюсы и минусы.

Примеры вопросов НЛП:

  1. Зачем нам нужно позиционное кодирование в трансформерах?
  2. Опишите несколько механизмов внимания, в чем их преимущества и недостатки?
  3. В чем преимущества LSTM по сравнению с ванильными RNN?
  4. Что мы ожидаем от хорошего встраивания?
  5. Как оценить качество перевода? Почему BLEU — не очень хорошая метрика?
  6. Что такое контрастное прогностическое кодирование и чем оно полезно?
  7. Какие методы увеличения данных НЛП вы знаете?
  8. Как учить редкие слова при обучении моделей?
  9. Объясните, как язык можно рассматривать как граф. Какими свойствами должен обладать график?

Понимание системы

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

Примеры вопросов:

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

Представление

На собеседованиях на исследовательские должности вас попросят подготовить презентацию о вашем исследовании или обсудить один из последних докладов с соответствующей конференции.

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

Мягкие навыки

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

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

Для ответа на вопросы, основанные на принципах/поведении, можно использовать несколько структур. Большинство из них попадают в структуру Ситуация-Цель-Действие-Результат (STAR). Всегда имейте под рукой несколько примеров.

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

Разнообразный

Знакомство с вашими интервьюерами

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

Отношение

По моему опыту, отношение так же важно, как знания и навыки. Я большой поклонник двух книг — Думай быстро и медленно и Выбросы. Первый помогает понять распространенные ловушки, в которые может заманить вас ваш разум, а второй задает правильный настрой.

Хотя сейчас это очень сложно, особенно если вы спешите найти работу, относитесь к собеседованию как к учебному опыту, а не как к тесту — это поможет вам быть более открытым и восприимчивым в процессе.

Замораживание мозга

Я не встречал ни одного человека, который ни разу не испытывал зависания мозга во время интервью — мозг немеет, руки трясутся, и даже привычные вопросы становятся сложными.

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

Вопросы

Интервью — это улица с двусторонним движением; Используйте время интервью, чтобы узнать больше о роли и команде. Вам будет предоставлена ​​возможность задавать вопросы, а не просто спрашивать: «Когда я могу ожидать ответа?».

Краткое содержание

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

Мягкие навыки: Руководство по подготовке к собеседованию на Amazon, принципы, которые Amazon ожидает от своих сотрудников, Объяснение принципов Amazon, Техника работы с ситуацией, задачей, действием и результатом, мягкие навыки от доктора наук по машинному обучению;
Программирование:литкод для подготовки к собеседованию по кодированию, Книга для интервью по кодированию, отработка задач машинного обучения;
Теория машинного обучения: Машинное обучение QA книга 1, Машинное обучение QA книга 2, резюме из стеклянной двери, когда не использовать машинное обучение, раздел методов работы с кодом.

Если вам понравилась эта статья, поделитесь ею с другом! Чтобы узнать больше о темах машинного обучения и обработки изображений, нажмите подписаться!

Понравился автор? Оставайся на связи!

Я ничего не пропустил? Не стесняйтесь оставлять заметки, комментарии или сообщения прямо в LinkedIn или Twitter!