Может ли «нейронная сеть» заменить «алгоритм дерева решений»?

искусственный интеллект Python алгоритм Нейронные сети

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

Единое дерево решений, такое как более распространенный C4.5 и т. д.

Ансамбль деревьев на основе деревьев решений, таких как случайные леса, повышение градиента и xgboost

Нейронные сети, в том числе сети различной глубины и структуры

Я считаю, что использование единого дерева решений было относительно ограниченным и в основном было заменено интегрированным деревом решений. Ансамблевая модель дерева решений и нейронная сеть имеют разные сценарии использования, и альтернативы нет. Чтобы дать более общий вид только для справки:

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

В модели множественных чисел предпочтение отдается xgboost.

Для малых и средних наборов данных предпочтительнее модель ансамблевого дерева. Рекомендательные нейронные сети для больших наборов данных

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

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

В условиях ограниченных аппаратных условий и ограниченных знаний в области машинного обучения предпочтение отдается древовидной модели.

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

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

Единое дерево решений против ансамблевого обучения

Дерево решений было предложено Морганом и Сонквистом в 1963 году [5], которое реализует классификацию и регрессию через древовидную структуру. Обычно мы считаем, что модель дерева решений:

Легко использовать и интерпретировать [6], единое дерево решений легко визуализировать и извлекать правила.

Выбор признаков может быть автоматизирован [3] - путем расчета «уменьшения примесей» и обрезки при разделении узлов.

Прогностическая способность ограничена и не может сравниться с сильными моделями обучения с учителем [6].

Низкая стабильность (стабильность), высокая дисперсия (дисперсия), возмущение данных могут легко вызвать большие изменения в производительности деревьев решений [1, 6]

Случайный лес предложен Брейманом [10].Модель использует ансамблевое обучение, чтобы уменьшить высокую дисперсию в одном дереве решений и улучшить общую предсказательную способность. Машина повышения градиента (GBM) [9] и xgboost [8] были предложены в 2001 и 2014 годах соответственно. Учитывая, что они похожи и обсуждаются вместе, эти две модели:

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

Очень быстрая и малая потребность в дисковом пространстве для прогностической классификации [3]

Метод обучения бустинга можно рассматривать как своего рода регуляризацию L1 для предотвращения переобучения, поэтому модель нелегко подогнать [3]. Библиотека инструментов Python scikit-learn также упомянула, что ее нелегко переобучить [2], и это не мешает использовать больше базовых обучающих программ.

Просто сравнивая GBM и xgboost, их производительность классификации близка, а xgboost имеет дополнительный член регуляризации для дальнейшего уменьшения переобучения. Хотя xgboost быстрее [4] и, как правило, больше подходит для больших наборов данных.

Согласно различным практикам и исследованиям, random forest, GBM и xgboost значительно лучше, чем обычные одиночные деревья решений, поэтому с этой точки зрения одиночные деревья решений можно исключить.

Самым большим преимуществом единого дерева решений является то, что его можно легко визуализировать и даже извлечь правила классификации правил. И ансамблевое обучение на этом этапе затруднено [34]. А интерпретируемость во многих случаях очень важна для отрасли, и с этой точки зрения у деревьев решений все еще есть небольшая основа. Но предпосылка этого использования состоит в том, чтобы убедиться, что производительность дерева решений хорошая (например, просмотр результатов перекрестной проверки) перед визуализацией и извлечением правил, в противном случае очень вероятно, что будут извлечены недействительные или даже неправильные правила.

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

Модель дерева ансамбля и нейронная сеть

Нейронная сеть — это уже знакомый алгоритм, и его наибольшая способность состоит в том, чтобы представлять признаки из сложных данных, а также считается, что она способна аппроксимировать любую функцию (при условии, что узлов много) [3], а теперь такая популярная глубокое обучение — это специальное название для глубокой нейронной сети. Нейронные сети и модели ансамблевых деревьев сильно различаются по следующим пунктам:

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

С точки зрения разработки признаков: нейронные сети требуют более тщательной подготовки данных, в то время как древовидные модели обычно не требуют следующих шагов: (i) вменение отсутствующих значений (ii) преобразование типа данных (категориальный в числовой): преобразование категории данных становится числовым (iii) масштабирование данных: нормализуйте данные в разных диапазонах до [0,1] или спроецируйте их на нормальное распределение (iv) дополнительные настройки параметров: например, инициализация весов, например, выбор подходящей скорости обучения и т. д.

С точки зрения сложности настройки параметров: ансамблевая древовидная модель значительно уступает нейросетевой. Для большинства моделей ансамблевых деревьев также требуется только: (i) количество базовых учащихся (ii) количество рассматриваемых признаков (iii) максимальная глубина и т. д. Чего не скажешь о трагедии настройки нейронной сети, которая сильно отличается от древовидной модели.

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

С точки зрения предсказательной способности модели: независимо от сложности настройки параметров производительность на больших и средних данных относительно близка. По мере увеличения объема данных увеличивается потенциал нейронных сетей

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

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

Суммировать

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

Так что на данный момент заменено единое дерево решений, а интегрированное дерево решений по-прежнему очень важно или даже важнее. За короткий промежуток времени нет возможности заменить ансамблевую модель дерева решений ʕ•ᴥ•ʔ

* Также рекомендую интересную, но несколько устаревшую статью [7], в которой сравниваются различные алгоритмы и дается авторский анализ.

Оригинал: https://weibo.com/ttarticle/p/show?id=2309404213436883035081#_0

через: Глобальный искусственный интеллект

End