Жадные алгоритмы в машинном обучении
Материал из MachineLearning.
| | Статья написана с использованием LLM ChatGPT, GPT-5.6 Thinking и проверена участником Vadim Iamaletdinov 21:24, 19 июля 2026 (MSD) |
Жадные алгоритмы в машинном обучении — методы, которые строят решение последовательно и на каждом шаге выбирают действие, выглядящее наилучшим в текущем состоянии. Уже сделанные шаги обычно не пересматриваются либо пересматриваются лишь ограниченно. Такой подход заменяет полный перебор множества возможных моделей, признаков или структур серией сравнительно простых локальных решений.
Жадные стратегии применяются при построении решающих деревьев, отборе признаков, построении разреженных моделей, бустинге, кластеризации, выборе репрезентативных объектов, активном обучении и декодировании последовательностей. Их популярность объясняется простотой, скоростью и возможностью получать интерпретируемые промежуточные решения.
Локально лучший шаг не обязан приводить к глобально лучшему результату. Поэтому слово жадный не является синонимом слова оптимальный. Для одних классов задач жадный алгоритм находит точное решение, для других имеет доказанную оценку приближения, а в общем случае остаётся эвристикой, качество которой необходимо проверять экспериментально.
Основная идея
Пусть частичное решение после шагов обозначено
, а множество допустимых продолжений —
. Для каждого кандидата
оценивается локальная выгода
где — критерий качества. Жадный шаг выбирает кандидата
и обновляет решение:
Алгоритм останавливается после достижения заданного размера, исчерпания допустимых кандидатов или выполнения критерия остановки.
Эта схема может принимать разные формы. В дереве решений элементом решения является очередное разбиение вершины; при отборе признаков — новый признак; в разреженном приближении — новый элемент словаря; в бустинге — очередной базовый алгоритм.
Почему используются жадные стратегии
Во многих задачах машинного обучения требуется выбрать структуру из огромного числа вариантов. Например, для признаков существует
различных подмножеств. Если требуется выбрать ровно признаков, число вариантов равно
Даже при умеренных и
полный перебор становится невозможным. Аналогично число возможных деревьев решений, списков правил и последовательностей базовых моделей растёт комбинаторно.
Жадный поиск уменьшает пространство вариантов: вместо сравнения всех законченных решений алгоритм сравнивает кандидатов только для следующего шага. Если на каждом из шагов проверяется не более
кандидатов, а одна проверка стоит
, грубая оценка трудоёмкости имеет вид
На практике число кандидатов может уменьшаться после каждого шага, а результаты предыдущих вычислений могут использоваться повторно.
Пример локально неудачного выбора
Рассмотрим выбор двух признаков из множества . Пусть качество отдельных признаков равно:
| Набор | Качество |
|---|---|
| | 9 |
| | 8 |
| | 7 |
Жадный алгоритм сначала выберет . Предположим, что качества пар равны:
| Набор | Качество |
|---|---|
| | 10 |
| | 10 |
| | 20 |
После выбора алгоритм может получить только качество 10, тогда как оптимальная пара
имеет качество 20. Причина состоит во взаимодействии признаков:
и
по отдельности уступают
, но вместе оказываются значительно полезнее.
В реальной задаче аналогичная ситуация возникает, когда два признака содержат информацию только совместно. Поэтому индивидуальная полезность и полезность после добавления к уже выбранному набору — разные величины.
Основные варианты жадного поиска
Прямой выбор
Прямой выбор начинает с пустого решения и последовательно добавляет наиболее полезные элементы:
- оценить всех ещё не выбранных кандидатов;
- добавить кандидата с наибольшим улучшением;
- повторять до достижения ограничения или прекращения улучшения.
Этот вариант прост и естественен, когда требуется небольшое решение из большого множества элементов.
Обратное исключение
Обратный вариант начинает с полного решения и удаляет элемент, потеря от удаления которого минимальна. Он может лучше учитывать взаимодействия, которые не видны при оценивании отдельных элементов, но требует возможности обучить или оценить большую начальную модель.
Прямо-обратный поиск
После нескольких добавлений разрешаются удаления ранее выбранных элементов. Такой подход частично исправляет ранние ошибки. Он дороже чисто прямого поиска, но остаётся значительно дешевле полного перебора.
Поиск с несколькими продолжениями
Вместо одного лучшего частичного решения можно хранить несколько. Лучевой поиск оставляет на каждом уровне фиксированное число наиболее перспективных вариантов. Это уже не строго жадный алгоритм, но естественное расширение, уменьшающее риск необратимого раннего выбора.
Стохастический жадный выбор
При большом числе кандидатов можно оценивать случайное подмножество кандидатов или использовать приближённые оценки выигрыша. Это уменьшает время работы ценой дополнительной случайности и возможной потери качества.
Построение решающих деревьев
Классические алгоритмы построения деревьев выбирают разбиения жадно. В каждой текущей вершине перебираются допустимые признаки и пороги, после чего выбирается разбиение, сильнее всего уменьшающее неоднородность ответов.
Пусть в вершине находится выборка , а разбиение создаёт подвыборки
и
. Уменьшение критерия неоднородности можно записать как
Алгоритм выбирает разбиение с максимальным . В классификации функцией
может служить энтропия или индекс Джини, в регрессии — разброс целевой переменной.
Работа Р. Куинлана 1986 года описала семейство методов индукции деревьев, использующих последовательный выбор информативных признаков.[1] Методы CART также строят дерево локальными разбиениями, а затем используют обрезку для управления сложностью.[1]
Жадное построение не гарантирует дерево минимального размера или минимальной ошибки. Выбор верхнего разбиения меняет все последующие возможности. Поэтому применяются ограничения глубины, минимального размера листа, постобрезка и ансамбли деревьев.
Отбор признаков
При прямом отборе признаков исходно используется пустое множество . На шаге выбирается признак, который сильнее всего улучшает заданный критерий после добавления к текущему набору:
После этого
Критерием может быть качество по скользящему контролю, уменьшение ошибки регрессии, информационная мера или другой показатель. Выбранные признаки необходимо оценивать внутри процедуры валидации. Если отбор выполнен один раз на всей выборке до разделения на обучающую и тестовую части, возникает утечка данных.
Прямой отбор особенно привлекателен, когда обучение модели на небольшом числе признаков дёшево. Его недостаток — неспособность увидеть комбинацию признаков, каждый из которых отдельно слаб. Прямо-обратные методы позволяют удалять признаки, ставшие избыточными после последующих добавлений.
Исследования связывают качество жадного отбора признаков со свойствами, близкими к субмодулярности. Для слабо субмодулярных критериев удаётся получать гарантии приближения даже тогда, когда строгая субмодулярность отсутствует.[1][1]
Разреженное приближение
Пусть объект требуется приблизить линейной комбинацией небольшого числа элементов словаря
:
Matching Pursuit начинает с остатка и на каждом шаге выбирает элемент словаря, наиболее коррелирующий с текущим остатком:
После выбора коэффициент и остаток обновляются. В Orthogonal Matching Pursuit после добавления нового элемента коэффициенты для всего выбранного набора пересчитываются совместно методом наименьших квадратов.
Matching Pursuit был предложен как адаптивный жадный способ разложения сигналов по избыточному словарю.[1] Для Orthogonal Matching Pursuit известны условия точного восстановления разреженного сигнала по случайным измерениям.[1]
Жадное разреженное приближение применяется в сжатии сигналов, выборе словаря, разреженной регрессии и восстановлении по неполным измерениям.
Бустинг как последовательное построение модели
В бустинге сложная модель строится как сумма простых базовых алгоритмов:
На шаге новый базовый алгоритм выбирается так, чтобы улучшить текущую композицию
. В градиентном бустинге базовый алгоритм приближает направление уменьшения функции потерь.
Дж. Фридман представил градиентный бустинг как жадное приближение функции в пространстве базовых алгоритмов.[1]
Жадность проявляется в том, что ранее добавленные базовые алгоритмы обычно не переобучаются совместно с новым. Такой поэтапный подход делает обучение управляемым, но результат зависит от порядка добавления, глубины базовых деревьев, шага обучения и критерия остановки.
Последовательное построение правил
В алгоритмах последовательного покрытия правило выбирается так, чтобы хорошо описывать часть ещё не покрытых объектов. После добавления правила покрытые объекты удаляются или получают меньший вес, и процесс повторяется.
Похожим образом строятся решающие списки: на каждом шаге выбирается условие и соответствующее решение для некоторой части пространства объектов. Локальный критерий может учитывать точность правила, число покрытых объектов и сложность условия.
Преимущество таких моделей — интерпретируемость. Недостаток — раннее правило изменяет выборку, доступную следующим правилам, и может необратимо отнять у них полезные объекты.
Жадная кластеризация и выбор представителей
В задаче -центров требуется выбрать
центров так, чтобы максимальное расстояние от объекта до ближайшего центра было как можно меньше. Алгоритм дальнего соседа начинает с произвольного центра и каждый раз добавляет объект, наиболее удалённый от уже выбранных центров:
Для метрической задачи -центров этот алгоритм даёт решение, радиус которого не более чем в два раза превышает оптимальный.[1]
Такая стратегия применяется не только для кластеризации, но и для выбора разнообразного подмножества данных, инициализации, построения покрытий и подготовки репрезентативной обучающей выборки.
Субмодулярность и гарантии
Для функции множества субмодулярность выражает убывающую отдачу: добавление одного элемента к меньшему множеству приносит не меньший выигрыш, чем добавление к большему. Для
и
выполняется
Если не убывает, субмодулярна и требуется выбрать не более
элементов, стандартный жадный алгоритм имеет гарантию
Классический анализ приближённого максимизирования субмодулярных функций был дан Г. Немхаузером, Л. Уолси и М. Фишером.[1]
Субмодулярные критерии встречаются при выборе репрезентативных объектов, размещении датчиков, суммаризации данных и максимизации покрытия. Для отбора признаков и разреженной регрессии критерий часто не является строго субмодулярным, но может обладать ослабленными свойствами, достаточными для приближённых гарантий.[1][1]
Наличие гарантии не означает, что результат близок к оптимальному на каждой конкретной выборке. Оценка является худшим случаем и относится к точно сформулированной целевой функции и ограничению.
Когда жадный алгоритм может быть точным
Жадность приводит к точному решению, когда структура задачи допускает безопасный локальный выбор. Классические примеры из дискретной оптимизации связаны с матроидами и задачами, обладающими свойством жадного выбора.
В машинном обучении точность жадного выбора встречается реже, поскольку качество модели зависит от данных, регуляризации и взаимодействия элементов. Даже если внутренний дискретный критерий имеет гарантию, итоговая предсказательная ошибка может оцениваться другим показателем.
Полезно различать три уровня утверждений:
- алгоритм точен для математической оптимизационной задачи;
- алгоритм имеет оценку приближения;
- алгоритм является практической эвристикой без общей гарантии.
Жадное декодирование
В моделях последовательностей жадное декодирование на каждом шаге выбирает наиболее вероятный следующий элемент:
Такой способ быстр и хранит только одну последовательность. Однако наиболее вероятный элемент на текущем шаге может привести к последовательности с меньшей общей вероятностью, чем другой ранний выбор.
Лучевой поиск хранит несколько частичных последовательностей и поэтому часто находит лучший итоговый вариант, но требует больше памяти и вычислений. Жадное декодирование следует отличать от жадного обучения модели: оно применяется после обучения для построения ответа.
Жадная стратегия в обучении с подкреплением
В обучении с подкреплением жадная политика выбирает действие с максимальной текущей оценкой ценности:
Если оценки ещё неточны, постоянный жадный выбор может препятствовать исследованию среды. Поэтому применяется, например, -жадная стратегия: с высокой вероятностью выбирается лучшее известное действие, а с небольшой вероятностью — случайное.
Здесь слово жадный означает использование текущей оценки без учёта ценности исследования. Это родственная идея локального выбора, но она отличается от последовательного построения структуры модели.
Преимущества
Жадные алгоритмы имеют несколько практических достоинств:
- простая реализация;
- умеренные требования к памяти;
- возможность ранней остановки;
- получение последовательности вложенных решений;
- удобство интерпретации порядка выбора;
- возможность применять к дискретным структурам;
- часто существенно меньшая стоимость, чем у полного поиска;
- наличие строгих гарантий для некоторых классов задач.
Последовательность вложенных решений удобна при ограниченном бюджете. Например, прямой отбор признаков сразу даёт наборы размера 1, 2, 3 и так далее.
Ограничения
Необратимость ранних ошибок
Если ранее выбранный элемент нельзя удалить, ошибка на раннем шаге влияет на весь последующий результат. Особенно опасны задачи с сильными взаимодействиями элементов.
Зависимость от критерия
Алгоритм оптимизирует именно локальный критерий, а не абстрактное «качество». Если критерий плохо соответствует прикладной цели, эффективная оптимизация может дать бесполезную модель.
Нестабильность
При близких оценках небольшое изменение выборки может изменить первый выбор, а затем и всю последовательность. Нестабильность характерна для деревьев и пошагового отбора признаков.
Коррелированные кандидаты
Несколько похожих признаков или базовых моделей могут иметь почти одинаковый локальный выигрыш. Выбор одного из них способен скрыть полезность другого или создать произвольный порядок важности.
Переобучение при выборе
Если множество шагов и кандидатов велико, повторный выбор по одной и той же проверочной выборке может подстроиться под её шум. Процедуру выбора и настройку критерия необходимо включать внутрь скользящего контроля.
Стоимость оценки кандидатов
Слово «жадный» не всегда означает «дешёвый». Если на каждом шаге требуется переобучать модель для каждого кандидата, общая стоимость может быть высокой. Применяются кеширование, ленивое обновление оценок, случайное подмножество кандидатов и параллельные вычисления.
Как проверять жадный метод
Для корректной оценки полезно:
- сравнить его с простыми случайными и эвристическими базовыми методами;
- на небольших задачах сравнить с полным перебором или точной оптимизацией;
- проверять несколько порядков и способов разрешения совпадающих оценок;
- измерять не только итоговое качество, но и время, память и размер решения;
- включать весь процесс выбора внутрь скользящего контроля;
- исследовать устойчивость выбранных элементов на повторных разбиениях;
- сравнивать с прямо-обратным и лучевым поиском;
- явно указывать критерий локального выигрыша и правило остановки.
Для отбора признаков частота выбора признака в повторных запусках может быть информативнее одного окончательного списка. Однако она не превращает предсказательный отбор в доказательство причинного влияния признака.
Практический шаблон проектирования
При разработке жадного метода необходимо определить пять компонентов:
| Компонент | Вопрос |
|---|---|
| Частичное решение | Что уже построено после нескольких шагов? |
| Кандидаты | Какие действия допустимы на следующем шаге? |
| Локальный критерий | Как измеряется полезность одного продолжения? |
| Обновление | Пересчитываются ли параметры после добавления? |
| Остановка | Когда прекращается построение? |
Например, для прямого отбора признаков частичное решение — текущий набор признаков, кандидаты — ещё не выбранные признаки, локальный критерий — качество модели после добавления, обновление — переобучение модели, остановка — заданное число признаков или отсутствие улучшения.
Применения
Жадные стратегии используются:
- при построении решающих деревьев;
- в пошаговом отборе признаков;
- в разреженном восстановлении и matching pursuit;
- в градиентном бустинге;
- при синтезе правил и решающих списков;
- в выборе репрезентативных объектов;
- при максимизации субмодулярных критериев;
- в кластеризации
-центров;
- в активном обучении и выборе наблюдений;
- в суммаризации данных;
- при декодировании последовательностей;
- при выборе действий в обучении с подкреплением.
Эти методы объединяет не общий тип модели, а принцип последовательного локального выбора.
История
Жадные стратегии возникли в комбинаторной оптимизации задолго до современного машинного обучения. Их применение к обучению связано с необходимостью строить сложные дискретные структуры без полного перебора.
В 1960–1980-х годах последовательный выбор признаков, правил и разбиений стал важной частью распознавания образов и построения деревьев. Методы CART и ID3 закрепили жадное построение деревьев в прикладном машинном обучении.[1][1]
В 1990-х годах matching pursuit развил жадное построение разреженных представлений.[1] В 2001 году градиентный бустинг был сформулирован как жадное приближение функции.[1]
Современные исследования изучают масштабируемые, случайные и распределённые варианты жадного поиска, а также условия субмодулярности и слабой субмодулярности, объясняющие его эффективность в задачах выбора подмножеств.[1]
См. также
- Жадный алгоритм
- Машинное обучение
- Отбор признаков
- Решающее дерево
- Бустинг
- Градиентный бустинг
- Matching Pursuit
- Orthogonal Matching Pursuit
- Разреженная модель
- Субмодулярная функция
- Лучевой поиск
- Скользящий контроль
- Обучение с подкреплением
- Утечка данных
Примечания
Литература
- Breiman L., Friedman J. H., Olshen R. A., Stone C. J. Classification and Regression Trees. — Belmont: Wadsworth, 1984. — 358 с. — ISBN 978-0-412-04841-8
- Quinlan J. R. Induction of Decision Trees // Machine Learning. — 1986. — Т. 1. — № 1. — С. 81—106.
- Friedman J. H. Greedy Function Approximation: A Gradient Boosting Machine // The Annals of Statistics. — 2001. — Т. 29. — № 5. — С. 1189—1232.
- Mallat S. G., Zhang Z. Matching Pursuits with Time-Frequency Dictionaries // IEEE Transactions on Signal Processing. — 1993. — Т. 41. — № 12. — С. 3397—3415.
- Das A., Kempe D. Submodular Meets Spectral: Greedy Algorithms for Subset Selection, Sparse Approximation and Dictionary Selection // Proceedings of the 28th International Conference on Machine Learning. — 2011. — С. 1057—1064.
- Khanna R., Elenberg E., Dimakis A., Negahban S., Ghosh J. Scalable Greedy Feature Selection via Weak Submodularity // Proceedings of the 20th International Conference on Artificial Intelligence and Statistics. — 2017. — Т. 54. — С. 1560—1568.
- Nemhauser G. L., Wolsey L. A., Fisher M. L. An Analysis of Approximations for Maximizing Submodular Set Functions — I // Mathematical Programming. — 1978. — Т. 14. — С. 265—294.

