Могут ли вопросы на собеседовании по машинному обучению быть одновременно прикольными и глубокими?

25 вопросов, которые не просто проверят знания и навыки кандидата, но и вдохновят на плодотворное обсуждение проблем машинного обучения. А ещё — шесть смешных картинок по теме.
Многие из исследователей данных изучают машинное обучение (МО) в основном с точки зрения практического специалиста. Как следствие, мы можем сосредотачиваться скорее на освоении как можно большего количества новых пакетов, фреймворков и методик, чем на глубоком рассмотрении основополагающих теоретических аспектов МО. Кроме того, в этом материале моё определение машинного обучения включает в себя обыкновенное статистическое обучение (т. е. не ограничивается глубинным обучением). Однако пытливый, рассудительный и упорный ум может придумать множество чудесных вопросов по МО, разбор ответов на которые прекрасно способен обнаружить более глубокие его аспекты. В общем, такие вопросы могут помочь высунуть голову из кучи с картинки выше. Мы ведь не хотим целыми днями перемешивать данные — мы хотим нырнуть в глубины свойств, странностей и тонкостей методик машинного обучения и проникнуться ими… В конце концов, в интернете хватает статей о «стандартных вопросах для собеседования по машинному обучению». Может, сделать кое-что другое, поинтереснее?

Сразу скажу: я публикую эти вопросы, просто чтобы вдохновить вас на размышления и разговоры. Готовых ответов не даётся. В некоторых вопросах есть подсказки, но они на самом деле больше для обсуждений, они не указывают на определённый ответ. Каждый вопрос заслуживает подробного обсуждения. Нет какого-то одного ответа. Некоторые вопросы заумные, а некоторые просто забавные. Приятного чтения 🙂 Вдобавок я вставил смешной мем после каждого 5-го вопроса…

Прикольные вопросы

«P > 0,05. Игра окончена, попробуйте ещё раз».
  • Я построил линейную регрессионную модель, показывающую 95%-ный доверительный интервал. Означает ли это, что существует 95%-ная вероятность, что коэффициенты моей модели верно оценивают функцию, которую я хочу аппроксимировать? (Подсказка: на самом деле это означает 95% времени…)
  • В чём сходство между файловой системой Hadoop и алгоритмом k-ближайших соседей? (Подсказка: «лень»)
  • Какая структура мощнее в смысле выразительных возможностей (т. е. она может достоверно отобразить заданную булеву функцию) — однослойный перцептрон или двухслойное дерево принятия решений? (Подсказка: XOR)
  • А что мощнее — двухслойное дерево принятия решений или двухслойная нейронная сеть без активационных функций? (Подсказка: нелинейность?)
  • Может ли нейронная сеть служить инструментом для понижения размерности? Объясните как.
«Виды головной боли: мигрень, перенапряжение, стресс, математические основы глубинного обучения»
  • Все ругают и обесценивают понятие постоянного слагаемого в линейных регрессионных моделях. Назовите одно из его применений. (Подсказка: сборщик шума/мусора)
  • LASSO-регуляризация сводит коэффициенты точно к нулю. Гребневая регрессия сводит их к очень маленькому, но не нулевому значению. Можете ли вы объяснить разницу между ними интуитивно, по графикам двух простых функций: |x| и x²? (Подсказка: острые уголки на графике |x|)
  • Допустим, что вы ничего не знаете о распределении, откуда взят некий набор данных (непрерывнозначные числа), и вам запрещается предполагать, что это гауссово нормальное распределение. Приведите как можно более простое доказательство того, что, независимо от характера распределения, вы можете гарантировать, что ~89% данных лежат в пределах ±3 стандартных отклонений от среднего значения. (Подсказка: научный руководитель Маркова)
  • Большая часть алгоритмов машинного обучения так или иначе связана с операциями над матрицами, например перемножением или обращением. Дайте простое математическое доказательство, почему мини-пакетная версия такого алгоритма МО может быть более эффективна с точки зрения объёма расчётов, чем обучение на полном наборе данных. (Подсказка: временная сложность перемножения матриц…)
  • Не кажется ли вам, что временной ряд — это очень простая задача линейной регрессии с единственной переменной отклика и с единственным предиктором — временем? В чём проблема метода линейной регрессии (необязательно с единственным линейным членом, с многочленами тоже) в случае данных временного ряда? (Подсказка: прошлое указывает на будущее…)
«Что если я скажу тебе, что это — регрессия?»
  • Приведите простое математическое доказательство того, что поиск оптимального дерева решений для задачи классификации среди всех возможных древовидных структур может быть экспоненциально сложной задачей. (Подсказка: а сколько вообще деревьев в джунглях?)
  • Как деревья решений, так и глубокие нейронные сети являются нелинейными классификаторами, т. е. они разбивают пространство посредством сложной границы решений. Почему в таком случае модель дерева решений настолько интуитивно понятнее глубокой нейронной сети?
  • Обратное распространение — рабочая лошадка глубинного обучения. Назовите несколько возможных альтернативных методик обучения нейронной сети без использования обратного распространения. (Подсказка: случайный поиск…)
  • Допустим, что у вас две задачи — на линейную регрессию и на логистическую регрессию (классификацию). Какую из них с большей вероятностью упростит открытие нового сверхскоростного алгоритма перемножения матриц? Почему? (Подсказка: какая из них с большей вероятностью использует операции над матрицами?)
  • Как корреляция между предикторами затрагивает метод главных компонент? Как с этим справиться?
«Что делать с… корреляцией?»
  • Вам поручили построить классификационную модель столкновения метеоритов с Землёй (важный проект для человеческой цивилизации). После предварительного анализа вы получаете 99%-ную достоверность. Вы можете быть довольны? Почему нет? Что с этим можно сделать? (Подсказка: редкое событие…)
  • Возможно ли определить корреляцию между непрерывной и дискретной переменной? Если да, то как?
  • Если вы работаете с данными по экспрессии генов, часто бывает так, что предикторных переменных миллионы, а замеров только несколько сотен. Приведите простое математическое доказательство, почему обычный метод наименьших квадратов — плохой выбор в такой ситуации, когда нужно построить регрессионную модель. (Подсказка: кое-что из матричной алгебры…)
  • Объясните, почему k-проходная перекрёстная проверка плохо работает с моделями временного ряда. Что можно сделать по этому поводу? (Подсказка: ближайшее прошлое прямо указывает на будущее…)
  • Простая выгрузка случайной выборки из обучающего набора данных в обучающую и проверочную выборку хорошо подходит для задачи регрессии. А что может пойти не так с этим подходом для задачи классификации? Что с этим можно сделать? (Подсказка: все ли классы преобладают в одной и той же степени?)
«Случайная выборка не работает!»
  • Что для вас важнее — достоверность модели или качество модели?
  • Если бы вы могли воспользоваться многоядерным процессором, вы бы предпочли алгоритм бустинга над деревьями случайному лесу? Почему? (Подсказка: если задачу можно делать 10 руками, стоит этим воспользоваться)
  • Представьте, что ваш набор данных наверняка линейно разделим и вам нужно гарантировать сходимость и наибольшее число итераций/шагов в вашем алгоритме (из-за вычислительных ресурсов). Выбрали ли бы вы в таком случае градиентный спуск? Что можно выбрать? (Подсказка: какой простой алгоритм с гарантией обеспечивает нахождение решения?)
  • Пусть у вас крайне мало памяти/места для хранения данных. Какой алгоритм вы предпочтёте — логистическую регрессию или k-ближайших соседей? Почему? (Подсказка: пространственная сложность…)
  • Вы строите модель машинного обучения, и изначально у вас было 100 точек данных и 5 признаков. Чтобы уменьшить смещение, вы удвоили количество признаков (включили 5 новых переменных) и собрали ещё 100 точек данных. Объясните: правильный ли это подход? (Подсказка: на машинное обучение наложено проклятье. Слышали о нём?)
«Меня прокляли размерностью!»
  Перевод статьи Tirthajyoti Sarkar “25 fun questions for a machine learning interview
Предыдущая статьяМой опыт спустя год работы с React
Следующая статьяКак настроить непрерывную интеграцию на GitLab с помощью Docker