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

  • Деревья решений
  • Ансамблевое обучение (случайные леса)
  • Проклятие размерности

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

Деревья решений

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

Набор данных Iris очень популярен в качестве вводного примера в основы машинного обучения. Этот пример, прекрасно объясненный в книге, упомянутой в ссылках, служит для объяснения процесса использования дерева решений. Алгоритм обучения для деревьев решений имеет подходящее имя C.A.R.T (Дерево классификации и регрессии), которое генерирует только двоичные деревья. Для небинарных деревьев можно использовать такие алгоритмы, как ID3.

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

Атрибут gini обозначает чистоту узла. Если все обучающие выборки, к которым применяется узел, принадлежат к одному классу, то этот узел является чистым и имеет примесь Джини, равную 0. Мы также можем использовать энтропию в качестве меры чистоты. Энтропия набора будет равна нулю, если он содержит экземпляры только одного класса. Примесь Джини предпочтительнее из-за привлекательного фактора выделения наиболее часто встречающегося класса в отдельную ветвь дерева, а также из-за простоты и скорости вычислений, когда энтропия дает более сбалансированные деревья и не является вариантом по умолчанию.

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

Деревья решений не имеют заранее определенного количества параметров и не ограничены множеством степеней свободы. Один из способов ограничения или регуляризации дерева - установить ограничение максимальной глубины. У них может быть несколько гиперпараметров, например max_depth или min_samples_split. В общем, уменьшение max_ * и увеличение гиперпараметров min_ * в достаточной степени упорядочит модель.

Проблемы нестабильности

Нахождение оптимального дерева является NP-полной проблемой, и поскольку создание прогнозов включает в себя обход деревьев, общая сложность прогнозирования составляет O (log (m) / log (2)), что является количеством узлов и не зависит от количества функций. п. CART, однако, тренируется, сравнивая все функции и находя пороговые значения для всех выборок на каждом узле, поэтому деревья решений имеют временную сложность O (n * m * log (m) / log (2))

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

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

ПРИМЕЧАНИЕ. Пень принятия решения - это дерево решений с глубиной 1. У него есть один узел решения и два конечных узла.

Ансамблевое обучение

В области машинного обучения хорошо известно, что использование методов ансамблевого обучения может повысить точность вашей модели на 2–3%.

Ансамбль деревьев решений образует случайный лес.

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

Чтобы понять, почему такой метод работает так хорошо, мы можем провести параллель с законом больших чисел. Предположим, у вас есть предвзятая монета, которая выпадает орлом в 51% случаев, когда вы ее подбрасываете. Подбросив его сто раз, можно предположить, что у нас может быть 51 решка и 49 решек. У нас больше орлов, чем решек. За 1000 бросков разница в количестве только увеличится, так как орлов будет на 20 больше, чем решек (510–490). По той же логике, по мере того, как мы подбрасываем больше, вероятность того, что орлов окажется больше, чем решек, будет увеличиваться, при этом соотношение орлов всегда близко к 51%.

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

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

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

* Упаковка

Бэггинг - это сокращение от начальной агрегации

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

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

Поскольку образцы собирают несколько раз по несколько раз, нередки случаи, когда образцы никогда не отбираются. У каждого предиктора теперь есть свой набор невидимых экземпляров out of bag, которые можно использовать в качестве проверочного набора, а ансамбль можно оценить путем усреднения оценок oob каждого предиктора.

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

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

* Повышение

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

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

ПРИМЕЧАНИЕ. Чтобы найти оптимальное количество деревьев при усилении, мы используем раннюю остановку.

* Укладка

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

Общий подход к обучению этого блендера заключается в следующем:

  1. Разделите данные на 2 подмножества и используйте первое разбиение для обучения отдельных предикторов в ансамбле любыми методами.
  2. Сделайте индивидуальные прогнозы на основе этой разбивки данных.
  3. Теперь у нас есть новый набор данных с индивидуальными прогнозами в качестве входных данных и начальными целевыми значениями из имеющихся данных.
  4. Обучите блендер на этих данных

Этот процесс можно выполнить, сделав несколько разделов, а также используя несколько блендеров.

Проклятие размерности

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

  • Проекция
  • Многообразное обучение

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

Многообразие - это топологическое пространство, локально напоминающее евклидово пространство около каждой точки.

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

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

Самый популярный алгоритм уменьшения размерности - Анализ главных компонентов, который определяет ближайшую к данным гиперплоскость и проецирует на нее данные. Ограничение здесь состоит в том, что для выбора правильной гиперплоскости, которая обеспечивает минимальную потерю информации, нам нужно сохранить максимальное количество возможных вариаций. Основные компоненты - это единичные векторы, определяющие оси, которые отклоняются друг от друга (столько же, сколько размеров в данных), причем первый из них отвечает за максимальную дисперсию. Однако их направления нестабильны, потому что небольшие возмущения в данных могут привести к тому, что пара компьютеров будет указывать в противоположном направлении и даже вращаться или поменяться местами. Плоскость, которую они определяют, будет в основном такой же. Однако PCA предполагает, что данные сосредоточены вокруг начала координат, поэтому предварительным условием для этого метода является центрирование данных. Мы можем получить эти компоненты с помощью метода факторизации матриц под названием Разложение по сингулярным значениям, а затем выбрать проецирование данных на гиперплоскость, определяемую первыми d компонентами, где d - меньшее количество измерений, чем Фактические данные имели. Выбор этого значения d зависит от того, сколько дисперсии необходимо сохранить. Однако для визуализации d обычно составляет 2 или 3.

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

Ссылки

  1. Практическое машинное обучение с помощью Scikit-Learn и TensorFlow, автор: Орельен Жерон
  2. Https://amunategui.github.io/simple-heuristics/index.html