Рынок вакансий в сфере машинного обучения сильно зависит от кандидатов. По статистике, эти специалисты являются самыми высокооплачиваемыми в сфере технологий — средняя зарплата инженера по машинному обучению составляет 142 900 долларов в год.
Спрос на таланты среди работодателей безумен и, по прогнозам, будет расти дальше — исследования показывают , что к концу 2022 года 40% владельцев бизнеса будут добавлять в свои команды специалистов по машинному обучению и искусственному интеллекту.
Если руководители групп готовы заманивать кандидатов высокой зарплатой, лучше убедиться, что инженер по машинному обучению, которого вы хотите нанять, является квалифицированным и надежным. Чтобы эффективно оценивать кандидатов и выбирать подходящих специалистов для своей команды, добавьте эти вопросы по кодированию машинного обучения в собеседование с кандидатами.
10 основных вопросов на собеседовании по машинному обучению
При найме младших инженеров по машинному обучению руководители групп должны ожидать, что кандидаты будут уверенно владеть самыми популярными технологиями машинного обучения, Python, Java и R. Учитывая широкое использование таких сред, как Keras или TensorFlow, убедитесь, что инженеры знают, эти инструменты являются интеллектуальным критерием выбора.
Помимо этого, большинство алгоритмов машинного обучения основаны на линейной алгебре и статистике — убедитесь, что кандидат, которого вы проверяете, знаком с теорией групп, байесовской статистикой и другими ключевыми понятиями.
№1. Дайте определение понятиям «классификация» и «регрессия». Объясните разницу между ними.
Классификация — это инструмент прогнозного моделирования, используемый для группировки входных переменных в предопределенные категории «метки».
Свойства классификации:
- Требуется наличие как минимум двух классов, в которые будут помещены входы.
- Работает с дискретными переменными или действительными значениями.
- Точность классификации — это процент правильных предположений от общего числа классификаций.
Регрессия — это метод прогнозного моделирования, предсказывающий значение (в большинстве случаев диапазон), соответствующее входной переменной. Он часто используется для работы с потоками данных — например, для прогнозирования колебаний фондового рынка.
№ 2. Опишите разницу между «тестовым набором» и «обучающим набором».
Хотя обе концепции описывают набор данных, применяемых к алгоритму, их цели различны.
Учебный набор — это объем данных, используемых для обучения проекта машинного обучения.
С другой стороны, тестовый набор — это данные, используемые для тестирования модели машинного обучения, которая уже прошла обучение.
№3. Дайте понятие «обучение в ансамбле».
Модель ансамбля — это метод машинного обучения, который предлагает объединить несколько базовых моделей для создания единой эффективной модели. Существуют различные методы, которые инженеры используют для реализации ансамблевого обучения — давайте кратко рассмотрим их:
- Начальная загрузка и агрегация (BAGGing) — как следует из названия, метод подразумевает начальную загрузку наборов данных и объединение нескольких загрузочных подмножеств в единое дерево решений. Затем инженер также агрегирует деревья решений для создания макромодели.
- Случайный лес добавляет дополнительный уровень дифференциации к разделению данных. Алгоритм загружает набор данных таким образом, что каждое дерево решений разбивается на основе набора различных функций.
№ 4. Какие советы вы используете, чтобы избежать переобучения модели?
Проще говоря, переобучение модели данных происходит, когда алгоритм чрезвычайно точен в прогнозах для обучающей выборки, но имеет низкую точность в реальных условиях (концепция более подробно объясняется в «Сигнал и шум» Нейта Сильвера). .
Чтобы обнаружить переоснащение и отделить «сигнал» от «шума», инженеры машинного обучения используют следующие методы:
- Сравнение производительности алгоритма на наборах данных для обучения и тестирования. Если модель имеет значительно более высокую точность при обработке обучающих данных, это красный флаг переобучения.
- Перекрестная проверка модели на различных типах обучающих данных.
- Стремление к простоте. До определенного момента добавление новых функций в модель делает ее более точной и точной. Однако существует порог, после которого каждая новая функция, добавляемая разработчиком, становится избыточной. Инженеры машинного обучения определяют такой предел возможностей для каждого проекта в основном посредством итеративного обучения .
№ 5. В чем разница между «контролируемым» и «неконтролируемым» машинным обучением?
Контролируемое машинное обучение — это процесс обучения модели с учетом желаемых результатов, которые она должна производить. В процессе инженер по машинному обучению гарантирует, что реальный результат соответствует прогнозируемому.
Однако неконтролируемое машинное обучение — это процесс обмена немаркированными данными с моделью, что позволяет ей самостоятельно находить новую информацию. В отличие от стратегии контролируемого обучения, эта стратегия непредсказуема и может выявить закономерности, о которых инженеры не знали в начале проекта.
№ 6. Почему инженеры по машинному обучению используют наивный байесовский классификатор?
Прежде чем приступить к описанию преимуществ классификатора, убедитесь, что кандидат имеет представление об условной вероятности и теореме Байеса.
Наивный байесовский классификатор имеет широкий спектр применений, от предсказания погоды и классификации новостей до диагностики заболеваний. Вот почему инженеры по машинному обучению считают его таким надежным:
- Легко понять и применить.
- Не требует больших тренировочных сетов.
- Хорошо подходит для прогнозов в реальном времени.
- Высокая скорость бега.
- Масштабируемость.
- Поддерживает как дискретные, так и непрерывные значения.
№ 7. Хорошо ли, когда модель имеет низкое смещение и высокую дисперсию? Какими были бы ваши действия, если бы вы создали такой алгоритм?
Низкое смещение и высокая дисперсия — симптомы переобучения модели, описанные выше. Такая модель не способна отделить «сигнал» релевантных данных от нерелевантной информации («шум»). Основная причина, по которой некоторые модели имеют низкое смещение и высокую дисперсию, заключается в избыточности функций.
Чтобы найти способ обойти проблему, инженеру машинного обучения необходимо найти баланс между смещением и дисперсией, который уменьшит общую ошибку.
Общая ошибка = смещение ^ 2 + дисперсия + неустранимая ошибка.
№8. Что такое уменьшение размерности?
Уменьшение размерности — это процесс сокращения ряда признаков (столбцов) в наборе данных с использованием линейных и нелинейных методов.
Наиболее популярными методами уменьшения линейной размерности являются:
- Анализ основных компонентов, используемый для уменьшения количества функций в непрерывных наборах данных.
- Факторный анализ — метод, который инженеры по машинному обучению используют для группировки множества переменных путем выявления общих факторов.
- Линейный дискриминантный анализ — поиск способа проецирования данных, повышающего их разделимость.
№ 9. Чем отличаются методы кластеризации KNN и k.means?
K-means — это метод кластеризации, используемый для неконтролируемых вопросов и проектов на собеседованиях по глубокому обучению . Он обрабатывает набор данных и группирует его в k кластеров.
Вот краткое описание того, как инженеры машинного обучения классифицируют данные с помощью k.means:
- Определите количество кластеров (чаще всего с помощью метода локтя).
- Случайным образом назначьте все точки данных в наборе кластеру.
- Задайте координаты центроида для каждого кластера.
- Определите расстояние между точками данных и центроидом.
- Повторяйте последние две операции до тех пор, пока все данные не будут принадлежать кластеру.
KNN — (K-Nearest Neighbours) — это алгоритм кластеризации, используемый для контролируемых учебных проектов. Он использует набор помеченных значений, чтобы научить алгоритм группировать неразмеченные данные.
Вот как работает КНН:
- Определить желаемое количество кластеров.
- Вычислите расстояние между новыми входными данными и помеченными данными, используя метод Евклида, метод Минковского или метод Манхэттена.
- Определите соседей с минимальным значением расстояния.
- Распределяйте соседей по категориям большинством голосов.
№10. Как инженер по машинному обучению анализирует производительность набора данных?
Наиболее распространенный способ анализа производительности набора данных — измерение его показателя F1. Он определяет среднее значение между точностью и полнотой модели.
Оптимальная оценка F1 стремится к 1, в то время как низкоточная модель обычно приближается к 0.
5 промежуточных вопросов на собеседовании по машинному обучению
Инженер машинного обучения среднего уровня должен обладать навыками выбора функций, моделей обучения и трансферного обучения. Такой профессионал должен хорошо владеть библиотеками визуализации данных.
Вот вопросы, которые руководители групп должны задать на собеседовании среднему инженеру по машинному обучению :
№1. Как выбрать классификатор тренировочного набора?
Наиболее распространенным критерием классификации данных является размер множества. Меньшие обучающие модели с меньшей вероятностью будут иметь высокое смещение и низкую дисперсию — чтобы избежать этого, инженеру следует рассмотреть возможность использования наивного байесовского классификатора.
С другой стороны, наборы данных большого размера подвержены риску переобучения — для их эффективной классификации лучше полагаться на логическую регрессию и другие модели с высокой дисперсией.
№ 2. Что такое ЛДА?
LDA (сокращение от линейного дискриминантного анализа) — это широко используемый метод уменьшения размерности. Хотя первоначальный линейный дискриминант применялся для решения задач с двумя классами, позже он был обобщен для обработки нескольких классов.
LDA позволяет инженерам машинного обучения проецировать набор данных на меньшее подмножество, не теряя при этом дискриминационную информацию по классам.
В пост-случаях LDA превосходит PCA (анализ главных компонентов). Однако есть случаи, когда последнее более эффективно — например, распознавание изображений.
№3. Как вы справляетесь с поврежденными или отсутствующими данными?
Ключевым процессом обработки поврежденных или отсутствующих данных является определение строк таблицы, содержащих такие значения, и замена их новыми. Существует множество инструментов, упрощающих обслуживание наборов данных — большинство разработчиков используют Pandas.
Для обнаружения поврежденных ячеек используются методы isnull() и dropna(). Чтобы добавить значения в эти строки, инженеры используют команду fillna().
№ 4. Объясните разницу между параметрами модели и гиперпараметрами
Основное отличие состоит в том, что инженерам не нужно задавать параметры модели — они автоматически выводятся из входных данных. Это не относится к гиперпараметрам — вам нужно указать их вручную.
Параметры модели используются как:
- Веса в нейронных сетях
- Коэффициенты линейной регрессии
- Опорные векторные машинные векторы.
Гиперпараметры используются как:
- k-число для кластеризации KNN.
- Параметры C и сигма для вспомогательных векторных машин
- Скорость обучения для обучения нейронных сетей.
№ 5. Какова связь между внешним и первичным ключами в SQL?
Поскольку SQL является основным языком баз данных, используемым в машинном обучении, задавать несколько вопросов на собеседовании по машинному обучению — всегда отличная идея!
Первичные ключи — это столбцы, которые служат уникальными идентификаторами каждой строки в таблице.
Внешние ключи — это столбцы, которые ссылаются на первичный ключ в другой таблице. Хотя первичные ключи должны быть уникальными, внешние ключи поддерживают повторяющиеся значения.
5 вопросов для собеседования по продвинутому машинному обучению
Старший инженер по машинному обучению должен обладать достаточными навыками, чтобы быстро обнаруживать ошибки алгоритма и проводить проверки кода. Разработчик высшего уровня должен знать, как руководить командой, сочетая отличное владение техническими инструментами с умением просто объяснять концепции.
Вот несколько вопросов, которые помогут вам оценить, насколько опытен старший инженер по машинному обучению, как указано в резюме.
№1. Каковы преимущества и недостатки использования нейронных сетей?
Преимущества использования нейронных сетей:
- Высокая отказоустойчивость
- Распределенная память
- Поддержка моделей с неполными знаниями
- Параллельная обработка
- Единое хранилище данных для всей сети.
Что касается ограничений нейронных сетей, то вот самые важные из них:
- Непредсказуемое поведение
- Зависимость от оборудования
- Проблемы управления
- Невозможно оценить продолжительность сети.
№ 2. Как, по вашему мнению, наша техническая команда может внедрить GPT-3?
Этот вопрос проверяет, насколько хорошо инженер по машинному обучению знаком с инновационными технологиями. GPT-3 — это модель генерации языка, которая создает пользовательский текст, похожий на человеческий. Естественно, применения такого мощного инструмента бесчисленны — назовем несколько:
- Улучшенный поиск (когда GPT-3 работает в паре с NLP).
- Автоматизация обслуживания клиентов и внедрение чат-ботов.
- Удаление избыточности UX/UI.
- Автоматизация адаптации сотрудников и оптимизация внутренних процессов в компании.
№3. Почему инженеры используют модель кодер-декодер при работе с НЛП?
Модель кодер-декодер является краеугольным камнем машинного перевода, субтитров к видео и других приложений НЛП.
Он состоит из трех блоков:
- Энкодер для приема элементов ввода
- Промежуточный вектор — инкапсулирует информацию из входных элементов.
- Декодер — производит вывод на основе скрытого состояния предыдущего элемента.
Эта модель имеет значение, когда входные и выходные последовательности имеют разную длину (например, «Как дела» и «お元気ですか») на английском и японском языках.
№ 4. Кратко опишите процесс создания метода машинного обучения
Задавая вопрос, руководитель группы проверяет способность кандидата не слишком подробно описывать технические детали и понятно описывать процессы.
Ответ должен иметь следующую структуру:
- Определите цель модели и согласуйте технические характеристики с бизнес-целями.
- Накопить данные для генерации набора.
- Очистите набор данных.
- Проанализируйте данные, используя основные исследовательские методы.
- Создайте модель, применяя соответствующие алгоритмы машинного обучения.
- Протестируйте модель на тестовом наборе данных.
№ 5. Назовите пять книг по машинному обучению, которые должен прочитать младший разработчик.
Это отличный вопрос для завершения собеседования. В конце концов, вы же хотите, чтобы кандидату это понравилось, верно? Какой лучший способ сделать кого-то счастливым, если не заставлять его говорить о том, что ему нравится?
С другой стороны, если попросить инженеров назвать книги, которые они могли бы предложить младшим, это покажет, насколько хорошо они понимают учебные потребности будущих товарищей по команде. Опытный разработчик не должен предлагать что-то слишком техническое или требующее знаний в области линейной алгебры или статистики.
Проводя собеседование с инженерами по машинному обучению, не забывайте, что кандидаты тоже выбирают. Не забывайте оставаться дружелюбным и чутким, старайтесь избегать односторонних вопросов и превращайте разговор в диалог, а не в допрос.
Наше ИТ кадровое агентство предлагает вам найти разработчиков менее чем за 2 недели. Свяжитесь с нами сегодня, чтобы узнать больше о том, как мы можем помочь масштабировать ваш следующий проект до новых высот. Мы гарантируем поиск самого сильного, а не самого дорого кандидата. За 10 лет в подборе it специалистов, мы закрыли 5500+ вакансий и собрали 25+ команд с нуля. Убедитесь сами и ознакомьтесь с отзывами клиентов о нашем рекрутинговом агентстве! Нужно больше референсов? Напишите нам в телеграмм.