Сезон смены работы: неполное руководство по собеседованиям по машинному обучению

машинное обучение интервью
Сезон смены работы: неполное руководство по собеседованиям по машинному обучению
Эта статья была изначально создана "AI Frontline", оригинальная ссылка:Сезон смены работы: неполное руководство по собеседованиям по машинному обучению
Автор | Винсент
Редактор | Эмили

Руководство по передовой ИИ:”Весенний праздник прошел в мгновение ока, и сейчас наступил золотой сезон «золотого три серебряного четыре» для смены работы.Предположительно, у вас есть новое направление и цель, которые были закалены в прошлом году, и вы готовится и готов к работе. , будущее развитие искусственного интеллекта в мире вот-вот ляжет на ваши плечи! но! Когда вы прошли отбор компании со своим сильным резюме и пришли на собеседование, столкнувшись с глубокими и меланхолическими глазами интервьюера, сколько раундов вы сможете парировать? Итак, мы собрали некоторые моменты, которые вам нужно подготовить перед собеседованием по машинному обучению, для справки, полные галантереи~»


Обзор

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

какие-то напоминания

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

Представьте свои предыдущие проекты в измеримой форме.

Возьмем простой пример:

1. Участвовал в обучении системы машинного обучения XX и добился хороших результатов.

2. Разработайте и разверните модель глубокого обучения с использованием Keras, Tensorflow и Node.js соответственно для распознавания целей. По сравнению с традиционными нейронными сетями, такими как ResNet, эта модель имеет 1/30 размера модели, 1/3 времени обучения, 1/5 времени вывода и в 2 раза большую скорость сходимости.

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

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

Очень часто кажущиеся простыми вопросы отражают то, что действительно волнует интервьюера. У вас есть хорошее решение этой проблемы? Вы собираете требования или просто делаете предположения? Вы тестировали свой код? Как вы выбирали свои тест-кейсы? Какой компромисс вы сделали? Знаете ли вы о компромиссе, который необходимо сделать?

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

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

Резюме очков знаний

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

Взгляните на картинку ниже:

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

  1. Линейная алгебра, исчисление, вероятность и статистика
  2. теория информации
  3. Возможности анализа данных
  4. Возможности машинного обучения или моделирования глубокого обучения
  5. Навыки A/B-тестирования
  6. Проектирование системы приложений с интенсивным использованием данных
  7. Знание оптимизации для ресурсоемких приложений
  8. Знание масштабируемости и отказоустойчивости

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

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

Линейная регрессия

  • Как изучить параметры: минимизировать функцию потерь
  • Как минимизировать функцию потерь: градиентный спуск
  • Регуляризация:
    • L1 (регрессия лассо): выбор признаков может быть выполнен путем уменьшения коэффициента до нуля;
    • L2 (регрессия хребта): уменьшает все коэффициенты в одинаковом отношении, почти всегда превосходит L1;
    • Слияние (эластичная сеть).
  • Предположим, что между объектами и метками существует линейная связь.
  • Полиномиальные и интерактивные функции могут быть добавлены для увеличения нелинейности

логистическая регрессия

  • Обобщенные линейные модели (GLM) для задач бинарной классификации
  • Примените сигмовидную функцию к выходным данным линейной модели, сжав цель до диапазона [0,1]
  • Делайте прогнозы по порогу: если выход > 0,5, прогнозируйте 1, иначе прогнозируйте 0
  • Функция softmax: решение проблем с множественной классификацией

KNN

Учитывая точку данных, вычислите K ближайших точек данных (ближайших соседей), используя некоторую метрику расстояния (например, евклидово расстояние). Для классификации мы можем взять метки большинства ближайших соседей, для регрессии мы возьмем среднее значение меток.

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

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

Обратите внимание, что когда K равно 1 или другим небольшим числам, модель склонна к переоснащению (высокая дисперсия), а когда K равно количеству точек данных или больше, модель склонна к недообучению (высокое смещение).

SVM

  • Может выполнять линейное, нелинейное или обнаружение выбросов (без присмотра)
  • Классификаторы с большим запасом: у вас есть не только граница решения, но вы хотите, чтобы граница находилась как можно дальше от ближайшей точки обучения.
  • Ближайшие обучающие примеры называются опорными векторами, потому что они являются точками, из которых проводится граница решения.
  • SVM чувствителен к масштабированию функций

Древо решений

  • Непараметрические алгоритмы обучения с учителем
  • Учитывая обучающие данные, алгоритм дерева решений делит пространство признаков на области. Для вывода мы сначала наблюдаем, в какую область попадают точки тестовых данных, и берем среднее значение метки (регрессия) или значение метки большинства (классификация).
  • Построение: Сверху вниз выберите переменную для разделения данных, чтобы целевая переменная в каждом регионе была максимально однородной. Два общих показателя: примесь Джини или прирост информации, результаты двух экспериментов не сильно отличаются.
  • Плюсы: Простота для понимания и объяснения, имитирует процесс принятия решений человеком.
  • вред:
    • Может легко переобучиться, если мы не ограничим глубину дерева, может быть недостаточно надежным: небольшие изменения в обучающих данных
    • может привести к совершенно другим деревьям
    • Нестабильность: чувствителен к вращению тренировочного набора из-за его ортогональной границы решения.

Bagging

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

Вот хороший пример:

  • Бэггинг – это выборка с заменой. Когда подвыборка не имеет замены, она называется вставкой.
  • Бэггинг популярен из-за повышения производительности, а также потому, что отдельные модели машинного обучения можно обучать параллельно и хорошо масштабировать.
  • Ансамблевые подходы работают лучше всего, когда модели машинного обучения максимально независимы друг от друга.
  • Голосование: Мягкое голосование (усреднение предсказанных вероятностей всех алгоритмов) обычно более эффективно, чем жесткое голосование.
  • Экземпляры вне пакета (37%) можно использовать в качестве проверочного набора для упаковки.

случайный лес

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

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

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

Важность функций:

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

Дерево повышения

принцип

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

Отличие от случайного леса (RF)

  • RF — это параллельное обучение, а Boosting — последовательное обучение.
  • RF уменьшает дисперсию, а Boosting уменьшает ошибку за счет уменьшения смещения

XGBoost (Экстремальное повышение градиента):

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

Stacking

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


MLP

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


CNN

Conv-слои — это базовая структура сверточных нейронных сетей. Слой Conv состоит из набора обучаемых фильтров (например, 5 × 5 × 3, ширина × высота × глубина). Во время прямого прохода мы скользим (или, точнее, сворачиваем) фильтр по входным данным и вычисляем скалярное произведение. Когда сеть распространяет ошибку обратно, она учится снова.

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

RNN и LSTM

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

Это выглядит великолепно, но на самом деле RNN почти не работают из-за серии умножений одной и той же матрицы, что приводит к исчезновению или взрыву градиентов. Чтобы решить эту проблему, мы можем использовать вариант RNN, Long Short-Term Memory (LSTM), который способен изучать долгосрочные зависимости.

Математический алгоритм, лежащий в основе LSTM, может быть довольно сложным, но интуитивно LSTM вводит входной вентиль — выходной вентиль — забытый вентиль — блок памяти (внутреннее состояние).

LSTM имитирует процесс человеческой памяти: забыть старые вещи (старое внутреннее состояние × ворота «забыть») и снова войти (узел ввода × ворота входа)

word2vec

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

Генерировать и различать

  • Модель дискриминационного алгоритма p(y|x;w), то есть с учетом набора данных и параметров обучения, какова вероятность того, что y принадлежит к определенному классу. Дискриминативный алгоритм не заботится о том, как были сгенерированы данные, он просто классифицирует приведенные примеры.
  • Генеративные алгоритмы пытаются моделировать p(x|y), то есть учитывая класс признака, его распределение. Генеративные алгоритмы моделируют, как генерируются данные.

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

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

Параметрические и непараметрические

  • Обученная модель, которая суммирует данные с фиксированным набором параметров (независимым от количества обучающих выборок), называется параметрической моделью.
  • Модели с неопределенным количеством параметров перед обучением. Непараметрический не означает, что у них нет параметров. И наоборот, по мере увеличения объема данных непараметрическая модель (потенциально) будет становиться все более и более сложной.

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

Надеюсь, у вас нет сожалений в вашей карьере, давай!

Справочная статья

GitHub.com/Sbadw/data…

GitHub.com/Sbadw/data…

воооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо

Для большего содержания сухих товаров вы можете обратить внимание на AI Frontline, ID:ai-front, фоновый ответ "AI", "TF", "Большие данные«Вы можете получить серию мини-книг в формате PDF и карт навыков «AI Frontline».