k-tree
Электронный учебник

Ансамбли

«Ансамбли» методов позволяют машинам учиться и исправлять ошибки друг друга, на данный момент используются в следующих областях:

  • Замена классических алгоритмов (но работают точнее)
  • Поисковые системы
  • Компьютерное зрение
  • Распознавание объектов

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

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

Особенно лучше даже тогда, когда алгоритмы, которые берутся, максимально нестабильны и сильно плавают от входных данных. Поэтому чаще всего берётся «Регрессия» и «Деревья решений», им хватает одной сильной аномалии в полученных данных, чтобы заработала вся модель.

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

Стекинг

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

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

Беггинг

Данный способ также называется Bootstrap AGGregatING. Обучается один алгоритм много раз на случайных выборках из данных, а в конце ответы усредняются.

При случайных выборках данные вполне могут повторяться. При использовании набора 1-2-3, можно делать выборки 2-2-3, 1-2-2 и так далее. На таких выборках один и тот же алгоритм обучается несколько раз, а в конце ответ вычисляется простым голосованием.

Наиболее популярный пример Беггинга – это алгоритм Random Forest. Когда мы открываем на телефоне камеру, мы можем видеть, как она очерчивает лица людей в кадре прямоугольниками. Нейросеть в таком случаем будет слишком медлительна, а беггинг в таком случае справляется гораздо лучше, ведь он просчитывает все данные параллельно друг другу.

Бустинг

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

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

Плюсы — неистовая, даже нелегальная в некоторых странах, точность классификации, которой позавидуют все бабушки у подъезда. Минусы уже названы — не параллелится. Хотя всё равно работает быстрее нейросетей, которые как гружёные камазы с песком по сравнению с шустрым бустингом.

Реальный пример работы бустинга мы можем наблюдать в работе поисковика «Яндекс», с помощью данного способа он выводит нам результаты.

Сегодня есть три популярных метода бустинга, отличия которых хорошо донесены в статье CatBoost vs. LightGBM vs. XGBoost

Вам понравилась статья? /

Seen: 5 404

Рейтинг: 5 (4 голоса)

Читать следующую
Нейронные сети