Четыре ключевых раздела каждого интервью по машинному обучению: руководство по подготовке и ресурсы.
Многие из моих сверстников со времен моей докторской диссертации теперь ищут новое место для переезда. И зная все трудности с поиском первой работы, я активно помогаю им подготовиться. Со временем я накопил большой объем отзывов об интервью, и в этой статье я обобщаю соответствующие источники для подготовки к интервью с помощью машинного обучения.
Есть четыре роли для тех, кто ищет работу в области машинного обучения: ученый-исследователь, ученый-прикладник, инженер-исследователь и инженер (разработчик). Несмотря на их различия (посмотрите здесь и здесь, что может повлечь за собой каждая из ролей), все эти роли имеют много общего, когда речь идет о подготовке к собеседованию. Как правило, собеседования на все четыре позиции будут состоять из четырех разделов, посвященных программированию, теории машинного обучения, пониманию системы и межличностным навыкам.
Список полезных ресурсов, упомянутых в статье, приводится в конце!
Кодирование
Ничто не может быть проще для практики, чем программирование — решите как можно больше задач, и вы будете в безопасности. Как правило, существует два типа вопросов по кодированию — живое кодирование и домашнее задание.
Живое кодирование
Для позиций ML не принято спрашивать о сложных алгоритмических проблемах. Вряд ли вас попросят реализовать красно-черное дерево... Однако вопросы общего характера, скорее всего, будут включать некоторые аспекты повседневной работы по машинному обучению.
Часть кодирования не включает проверьте не только свою способность решать проблемы, но и ваш мыслительный процесс и способность общаться с интервьюером и писать понятный код. Поэтому, даже если вы знаете решение и можете сразу его написать, сначала потратьте некоторое время на объяснение своих рассуждений и приложите усилия, чтобы обдумать структуру кода, чтобы сделать его чистым и легким для анализа.
Если проблема непростая, задайте уточняющие вопросы и начните с грубого решения. Следующий шаг — набросать псевдокод решения — либо с объявлением функции и комментариями, либо просто с комментариями. Это облегчило бы просмотр общей картины. Затем вы можете просмотреть разделы комментариев, заполняя решение.
Вообще лучший способ подготовиться — это решить 50–100 вопросов по литкоду. Большим преимуществом leetcode перед другими платформами являются подробные ответы и статистика вопросов — сложность вопроса и то, какие компании его задавали. Еще один полезный ресурс — Книга интервью Cracking the Coding.
Домашнее задание
Обычно получают домашнее задание по программированию/инженерному кодированию, которое непосредственно проверяет ваши знания и навыки в предметной области на реальной проблеме. Обычно вам предоставляется набор данных и набор инструкций. Вам либо предложат выделить 4–6 часов (обратный отсчет начнется с момента получения задания), либо вам дадут больший временной интервал от нескольких дней до недели на решение задачи.
Чтобы подготовиться к такого рода вопросам, хорошим ресурсом является kaggle. Где вы можете практиковать проблемы науки о данных и искать решения от других. Те же принципы применимы и к живому кодированию — понятный, документированный и повторно используемый код с обоснованными алгоритмическими решениями. Если есть документы, на которые вы полагаетесь, обязательно приложите и их.
Адаптируйте свое решение к требованиям работы — если компания представляет собой фонд высокочастотной торговли, было бы неразумно использовать медленные алгоритмы глубокого обучения — обычно достаточно простых персептронов. А с другой стороны, компании, занимающиеся спутниковой съемкой, рассчитывали бы на знание глубинных моделей зрения.
Домашнее задание обычно обсуждается на следующем этапе собеседования. У вас будет возможность обосновать свои решения и подумать, как можно улучшить решение.
Примеры вопросов:
- Напишите классификатор изображений/текста.
- Учитывая зашумленный временной ряд потребления электроэнергии, определите, когда свет на кухне был выключен.
- Имея данные, извлеките признаки и постройте модель кластеризации.
Теория машинного обучения
Как правило, это были вопросы по основам — линейной алгебре, исчислению, теории вероятностей и общим знаниям в области машинного обучения, а также по предметным знаниям в области знаний. Для исследовательских должностей вас, вероятно, попросят представить ваше текущее исследование или прочитать и обсудить статью.
Основы
Линейная алгебра: наименьшие квадраты, собственные векторы, собственные значения, ранг матрицы, анализ главных компонент, разложение по сингулярным числам, положительно определенные матрицы, ортогональные и ортонормированные матрицы;
Вероятность: случайная величина, дисперсия, ожидание, вероятность, апостериорный анализ, байесовский вывод, выборка, распределение, функция плотности вероятности;
Вычисление и оптимизация: выпуклость, регуляризация, интегрирование, цепное правило дифференцирования;
Машинное обучение: компромисс между смещением и дисперсией, метод опорных векторов, перцептроны.
Готовя эту статью, я нашел эту книгу-интервью Q/A для позиций машинного обучения, в которой есть солидный список вопросов с ответами на них. Еще одна замечательная книга, Подготовка к собеседованию по машинному обучению, содержит много хороших разделов о поведении на собеседованиях, переговорах о зарплате и технических вопросах. Кроме того, я нашел этот блог, в котором обобщаются каналы из стеклянной двери об интервью по машинному обучению.
Примеры вопросов:
- Что такое нормализация партии? Каковы его недостатки? Опишите нормализации, которые их исправляют.
- Объясните компромисс между смещением и дисперсией.
- Перечислите распространенные генеративные модели и их плюсы и минусы.
- Почему сложно обучать ванильные GAN? Как можно улучшить обучение.
- Как бы вы предотвратили переоснащение нейронной сети?
- Объясните, как применить отсев. Отличается ли он для обучения и тестирования?
- Приведите примеры нейросетевых оптимизаторов, как они работают? Что такое градиентный взрыв? Как исправить это с помощью функций активации?
- Почему нейронные сети могут не подойти для данной задачи? (ознакомьтесь с этой статьей)
- Объясните механизм внимания в трансформерах (теперь это общая схема, которую можно применять к широкому кругу задач).
- Опишите метод уменьшения размерности по вашему выбору.
Область знаний
Чаще всего работа предполагает, что вы специализируетесь в какой-то области. В зависимости от должности вам нужно будет знать либо основополагающие документы, либо основополагающие документы и современные модели, опубликованные месяц назад.
Я обнаружил, что раздел о методах в документах с кодом очень полезен для пересмотра основных документов при подготовке к интервью. Наиболее полезной особенностью раздела является резюме статей с изображениями и основными пояснениями.
Примеры вопросов резюме:
- Почему CNN так хороши применительно к изображениям?
- Как применить деконволюцию?
- Почему трансформеров сложно применять к изображениям?
- Как бы вы перенесли эмоции с одного лица на другое?
- Что такое временная согласованность и как ее достичь?
- Какие функции потерь вы можете использовать для генеративной модели?
- Почему оценка FID может быть не лучшей метрикой реализма?
- Опишите типы сверток и их мотивацию.
- Что такое нормализация экземпляра?
- Описать функции потерь для реконструкции изображений, их плюсы и минусы.
Примеры вопросов НЛП:
- Зачем нам нужно позиционное кодирование в трансформерах?
- Опишите несколько механизмов внимания, в чем их преимущества и недостатки?
- В чем преимущества LSTM по сравнению с ванильными RNN?
- Что мы ожидаем от хорошего встраивания?
- Как оценить качество перевода? Почему BLEU — не очень хорошая метрика?
- Что такое контрастное прогностическое кодирование и чем оно полезно?
- Какие методы увеличения данных НЛП вы знаете?
- Как учить редкие слова при обучении моделей?
- Объясните, как язык можно рассматривать как граф. Какими свойствами должен обладать график?
Понимание системы
Проблемы понимания системы будут проверять ваш подход к типичной проблеме, с которой сталкивается компания. Например, вас могут попросить перечислить этапы разработки системы рекомендаций для рекламной управляющей компании; для компании, занимающейся визуализацией, вас могут спросить о шагах по созданию нового фильтра; для компании, занимающейся компьютерной графикой, вас спросят об алгоритме, который может реконструировать карту нормалей изображения.
Примеры вопросов:
- Как бы вы сказали, какая из двух моделей лучше?
- Как бы вы с нуля разработали алгоритм отрисовки видео/переноса лица/реконструкции карты нормалей (это из компьютерной графики)/детектора спама?
- Как бороться с дрейфом данных в развернутой модели?
- Как разработать алгоритм, который по изображению поврежденного забора оценивал бы стоимость страховки?
Представление
На собеседованиях на исследовательские должности вас попросят подготовить презентацию о вашем исследовании или обсудить один из последних докладов с соответствующей конференции.
В каждом случае структурируйте презентацию так, чтобы она соответствовала должности, на которую вы претендуете. И в каждом из случаев убедитесь, что вы осведомлены о более широкой области и знаете большинство последних публикаций и последующих работ. У меня есть руководство Как сделать сильную презентацию здесь.
Мягкие навыки
Мягкие навыки проверяются на каждом из этапов процесса собеседования — как вы общаетесь с интервьюером, как вы говорите о решении для кодирования и как вы реагируете на замечания, критику и проблемы. Однако почти всегда есть отдельный раздел, который будет тестировать поведенческую часть.
Всем, у кого брал интервью Amazon, нравится ясность в отношении ценностей, которые они ожидают от своих сотрудников. В целом, я оцениваю их руководство по подготовке к собеседованию как одно из самых честных и актуальных, когда речь идет о поведенческих вопросах и вопросах межличностного общения. Вы можете найти примеры вопросов, проверяющих каждое из базовых значений мягких навыков здесь и здесь.
Для ответа на вопросы, основанные на принципах/поведении, можно использовать несколько структур. Большинство из них попадают в структуру Ситуация-Цель-Действие-Результат (STAR). Всегда имейте под рукой несколько примеров.
Проведя личное собеседование с несколькими десятками кандидатов, я понял, что лучше нанять кого-то с немного худшими техническими навыками, но сильными коммуникативными и командными навыками. Я резюмировал некоторые из этих навыков в этой статье. Вы можете проверить это перед собеседованием.
Разнообразный
Знакомство с вашими интервьюерами
Перед собеседованием вам обычно сообщают имена ваших интервьюеров. Обязательно найдите их и прочитайте об их области знаний. Знание нескольких основных статей в своей области и перспективы, с которой они смотрят на машинное обучение, помогут вам лучше ориентироваться в своих ответах.
Отношение
По моему опыту, отношение так же важно, как знания и навыки. Я большой поклонник двух книг — Думай быстро и медленно и Выбросы. Первый помогает понять распространенные ловушки, в которые может заманить вас ваш разум, а второй задает правильный настрой.
Хотя сейчас это очень сложно, особенно если вы спешите найти работу, относитесь к собеседованию как к учебному опыту, а не как к тесту — это поможет вам быть более открытым и восприимчивым в процессе.
Замораживание мозга
Я не встречал ни одного человека, который ни разу не испытывал зависания мозга во время интервью — мозг немеет, руки трясутся, и даже привычные вопросы становятся сложными.
Есть простое лечение, которое срабатывало у меня несколько раз — вместо того, чтобы пытаться скрыть зависание, признайте это. Скажите вслух интервьюеру, что вы вот-вот поймаете заморозку мозга и переживаете, что даже простые вещи перестанут работать. С помощью этого трюка вы сняли бы напряжение, пытаясь скрыть замирание мозга, и подали бы сигнал интервьюеру о поддержке. В конце концов, они хотят, чтобы вы тоже хорошо выступили!
Вопросы
Интервью — это улица с двусторонним движением; Используйте время интервью, чтобы узнать больше о роли и команде. Вам будет предоставлена возможность задавать вопросы, а не просто спрашивать: «Когда я могу ожидать ответа?».
Краткое содержание
Интервьюирование — это навык, который, к сожалению, приобретается через болезненный опыт отказа (или в более безопасной обстановке имитационных интервью, которые я настоятельно рекомендую вам практиковать). Нет ничего необычного в том, чтобы разослать сотни заявлений и пройти десятки собеседований, чтобы получить работу. Таким образом, лучше оставить компании, которые вам больше всего нравятся, ближе к концу, чтобы вы хорошо подготовились к интервью. Ниже я оставляю резюме ссылок, которые я упомянул в тексте:
Мягкие навыки: Руководство по подготовке к собеседованию на Amazon, принципы, которые Amazon ожидает от своих сотрудников, Объяснение принципов Amazon, Техника работы с ситуацией, задачей, действием и результатом, мягкие навыки от доктора наук по машинному обучению;
Программирование:литкод для подготовки к собеседованию по кодированию, Книга для интервью по кодированию, отработка задач машинного обучения;
Теория машинного обучения: Машинное обучение QA книга 1, Машинное обучение QA книга 2, резюме из стеклянной двери, когда не использовать машинное обучение, раздел методов работы с кодом.
Если вам понравилась эта статья, поделитесь ею с другом! Чтобы узнать больше о темах машинного обучения и обработки изображений, нажмите подписаться!
Понравился автор? Оставайся на связи!
Я ничего не пропустил? Не стесняйтесь оставлять заметки, комментарии или сообщения прямо в LinkedIn или Twitter!