Как не провалить собеседование. Алгоритмы ML простым языком.

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Пролог

Почти ни одно техническое интервью по Machine Learning или аналитике не обходится без вопроса: «А объясните-ка мне вот такую модельку простыми словами». И все, кандидат теряется и не знает, что сказать. В голове куча математических формул, код на Python или R, а что сказать — не знает.

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

Поехали!

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

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

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

Ридж регрессия

Ридж регрессия, также известная как L2 регуляризация, - это регрессионная техника, в которой вводится небольшое дополнительное смещение для борьбы с переобучением. Это делается за счет минимизации суммы квадратов остатков и “штрафа”. Штрафом называется некоторый коэффициент лямбда (выбирается исследователем), умноженный на квадрат коэффициента наклона.

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

Лассо регрессия

Лассо регрессия, также известная как L1 регуляризация, очень похожа на Ridge регрессию. Разница заключается только в виде штрафа: здесь лямбда умножается на абсолютное значение наклона, а не на квадрат.

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

Логистическая регрессия - техника классификации, которая также ищет “лучшую линию”. Однако, в отличие от линейной регрессии, где наилучшая линия находилась с помощью метода наименьших квадратов, в логистической регрессии линия (логистическая кривая) находится с помощью метода максимального правдоподобия. Это потому что логистическая регрессия решает задачу бинарной классификации, т.е. наша величина может принимать значение либо 0, либо 1.

K ближайших соседей

Метод K-Nearest Neighbours - алгоритм классификации, где новая точка определяется к какому-то классу на основании ближайших точек, которые уже расклассифицированы. Отсюда и название алгоритма.

Например, если k = 1, то неизвестная точка будет отнесена к синему классу.

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

Наивный Байес

Наивный Байесовский классификатор - метод классификации, основанный на теореме Байеса, которая утверждает:

Подробно останавливаться на этой формуле сейчас не будем, мы планируем написать на эту тему отдельный материал. А пока можно почитать Wiki, там эта тема раскрыта достаточно доступно.

Также в основе метода лежит “наивное” предположение (откуда и название), что все характеристики, описывающие объекты, равноправны и друг от друга не зависят.

В силу такого предположения, мы можем представить условную вероятность в таком виде:

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

Таким образом, классификация сводится к расчету вероятности того, что данный объект относится к тому или иному классу.

Метод опорных векторов

Support Vector Machines - метод классификации, который заключается в нахождении оптимальной границы (т.н. гиперплоскость), которая наилучшим образом разделяла бы классы. Гиперплоскость ищется путем максимизации зазора между классами.

Решающие деревья

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

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

Random Forest - это ансамблирующая методика, которая заключается в объединении нескольких моделей в одну большую для повышения качества. В частности, можно объединить тысячи решающих деревьев в одну модель с помощью случайного выбора элементов из обучающей выборки. С большим количеством деревьев алгоритм случайного леса принимает итоговое решение, опираясь на “мнение большинства”.

Например, если бы мы использовали только одно дерево (например, третье), то мы бы предсказали 0. Однако, целый лес деревьев говорит обратное - нужно брать значение 1, потому что остальные деревья дают именно такой результат. В этом и заключается мощь случайного леса!

AdaBoost

Adaboost - это алгоритм бустинга, наподобие Случайного леса, но у него есть ряд принципиальных отличий:

  1. В основном, Adaboost работает не с лесом деревьев, а с лесом “пней” - stumps. Другими словами, это просто более простая модель - всего лишь вершина и две ветки.

2. Решение каждого отдельного “пня” оценивается по-разному. Слово пеньков с меньшим уровнем ошибки при обучении будет более весомым в бою. Все как в жизни :)

3. Последовательность создания пеньков также играет роль, ведь последующие “пни” подчеркивают важность неправильно обработанных на предыдущих этапах данных.

Таким образом, алгоритм контролирует “слабые места” с помощью весов.

Градиентный бустинг

Gradient Boost похож на AdaBoost в том смысле, что он строит множество деревьев, которые связаны друг с другом. Однако, если AdaBoost работает с пеньками, то градиентный бустинг работает с полноценными деревьями.

Помимо этого, градиентный бустинг контролирует “слабые места” не с помощью весов, а с помощью градиентов.

XGBoost

Экстремальный градиентный буситнг - “прокачанная” версия обычного градиентного бустинга.

Если закопаться и залезть внутрь, то можно найти довольно много отличий от стандартного градиентного бустинга, которые и делают XGBoost таким крутым уже много лет. Возможность распараллеливания за счет нового подхода к циклам, встроено несколько регуляризаций, которые борются с переобучением, происходит отсечение ветвей, которые не дают улучшений и много-многое другое. Короче говоря, Gradient Boost на стероидах.

Эпилог

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

Забирайте себе, чтобы не потерять :)

На основе этого источника.


Источник: m.vk.com

Комментарии: