Линейная классификация и её производные
Линейная классификация — это второй алгоритм, который мы детально рассматриваем. У нас есть граница в форме прямой линии, разделяющая два множества. В случае малого количества параметров (двумерная плоская картинка) всё выглядит хорошо, но порой прямая подходит плохо и не может адекватно разделить данные.
Даже в простом случае существует множество способов провести прямую. Встает вопрос: какая из них лучшая? Естественно, та, которая максимально удалена как от одного, так и от второго множества. То есть такая линия, расстояние от которой до множеств будет самым большим. Мы стремимся максимизировать зазор между классами.
В двумерном пространстве это прямая, в трехмерном — плоскость, а далее — гиперплоскость. Гиперплоскость — это плоскость размерности N−1N−1, где NN — размерность пространства. В трехмерном пространстве мы разделяем два множества, «прорезая» его плоскостью. Принципиально важно, что модель является линейной и делит пространство на два полупространства.
Обобщение линейной модели необходимо для более сложных границ. Очевидно, что в нелинейных задачах никакой прямой не получится разделить данные корректно, поэтому граница усложняется. Однако нельзя допускать переобучения: если дать кривой слишком много свободы, она начнет огибать каждую точку, и мы получим переобученную модель.
Схема линейной классификации:
У нас есть два признака ( XX и YY) и соответствующие им коэффициенты (веса AA и BB). Мы вычисляем сумму A⋅X+B⋅Y — это работа сумматора. Далее мы сравниваем результат с пороговым значением CC. Если сумма больше CC, то ответ 1, иначе 0. Граница здесь — прямая линия. В N-мерном пространстве логика та же: сумматор с N весами, сравнение с порогом и бинарный ответ.
Пороговое значение CC определяет, на каком уровне проведена прямая. Мы ищем то значение CC, при котором разделение будет наилучшим.
Нейронные сети
Если продолжить цепочку таких разделений, не ограничиваясь одним сумматором, а выстроив сложную архитектуру из множества элементов, мы получим нейронную сеть (Neural Network, NN). Нейронная сеть — это цепочка вычислений, где каждый следующий нейрон получает информацию от предыдущих. Связи необязательно должны быть полносвязными: архитектор алгоритма сам определяет, кто с кем и в каком количестве связан.
Внутри каждого элемента после вычисления суммы производится нелинейное преобразование. Это необходимо, чтобы улавливать криволинейные зависимости, а не только линейные.
Преимущества нейронных сетей:
- Способность подстраиваться под данные любой сложности.
Недостатки нейронных сетей:
- Часто переобучаются из-за огромного количества параметров.
- Паралич сети: алгоритм обучения может «застопориться» в локальном минимуме.
- Мало общего с работой реального мозга (который ближе к квантовым вычислениям).
Несмотря на недостатки, современные мощные архитектуры сетей позволяют решать крайне сложные и разнообразные задачи, что вызывает пик их популярности.
Решающие деревья и композиции
Дерево решений — это последовательность вопросов. Мы спрашиваем про параметр (например, пропорция больше 95%?). Если «да» — присваиваем класс, если «нет» — задаем следующий вопрос, и так до конечного ответа.
Проблема ручного составления: Эксперты могут ошибаться, их мнения могут расходиться, и они физически не способны проанализировать все данные. Поэтому необходимо, чтобы машина сама строила дерево, находя оптимальное разбиение среди всех возможных.
Критерий качества дерева может быть разным. Меняя критерий оптимальности, мы получаем разные деревья. Например, задача: разделить треугольники и кружочки.
- Уровень 1: Проверка X1X1. Если объект левее порога C1C1 — это точно треугольник (точность 100%).
- Уровень 2: Если объект правее C1C1, проверяем X2X2. Если выше C2C2 — это кружочек, если ниже — треугольник. За два шага получается почти идеальное разделение с минимальной ошибкой.
Преимущества деревьев перед метрическими алгоритмами:
- Не требуется придумывать сложную функцию расстояния (метрику). Дерево использует лишь факт «ближе к А, чем к Ц».
- Устойчивость к преобразованиям признаков. Регрессия страдает от корреляции признаков, а деревья спокойно работают с такими данными.
Выбор условий разбиения: Мы перебираем признаки. Лучшее разбиение — то, которое наиболее явно отделяет классы. Можно использовать разные критерии, например:
- Критерий Джини: максимизация числа пар объектов с одинаковым классом и одинаковым ответом на условие.
- Критерий Донского: максимизация числа пар с разными классами и разными ответами.
Разные виды деревьев (CHAID, QUEST, CART, C5.0) отличаются именно критериями оценки качества разбиения на каждом шаге.
Недостатки деревьев:
- Сильное переобучение в реальных задачах.
- Неустойчивость к данным (на других выборках точность может резко падать).
Борьба с переобучением деревьев
- Стрижка (Подрезание) деревьев: Мы искусственно ограничиваем глубину дерева. Лучше иметь точность 70% на обучении и 70% на проверке, чем 90% на обучении и 50% на проверке. Стрижка повышает стабильность на новых данных.
- Ограничение на количество объектов в узлах:
- В листе: Запрещаем деление, если в узле осталось меньше N объектов (например, меньше 5).
- В узле: Ограничиваем минимальное количество объектов, которые должны дойти до точки ветвления.
- Разбиение обучения на части: Строим несколько деревьев. Проходим по поддеревьям одного и заменяем их фрагментами (левыми или правыми потомками) другого, если они дают меньше ошибок.
- Вероятностные ответы: Вместо однозначного ответа «класс А» мы выдаем вероятности. Например, если в лист попало 7 синих и 3 красных объекта, мы говорим о вероятности 70% для синего и 30% для красного. Это позволяет не считать такой результат ошибкой в строгом смысле.
- Композиции алгоритмов: Наиболее популярное решение — построить TT (много) деревьев и усреднить их результаты. Главное условие — деревья должны быть разными. Для этого меняется выборка данных для каждого дерева. Такой подход называется бэггинг (Bagging). Когда множество деревьев усредняются, получается лес деревьев.
Результат работы случайного леса (Random Forest):
- На 50 деревьях: граница размыта, видны эффекты переобучения.
- На 2000 деревьях: картина мира становится очень точной, шумы отдельных деревьев компенсируются ансамблем.
Краткие итоги
Эволюция методов в машинном обучении демонстрирует фундаментальный сдвиг от поиска одной идеальной функции к управлению ансамблями и сложностью. Начав с линейной классификации, мы видим, что простота модели ограничивает её применение, но дает четкий геометрический смысл — максимизацию зазора. Усложнение архитектуры через добавление нелинейности логически приводит к нейронным сетям, которые, обладая высокой гибкостью, становятся чувствительными к проблеме переобучения и интерпретируемости.
На этом фоне решающие деревья предлагают принципиально иную парадигму, близкую человеческой логике: последовательность проверок. Их сила в отказе от сложных метрик и в устойчивости к сырым данным. Однако одиночное дерево оказывается слишком "хрупким" и склонным к подгонке под обучающую выборку. Анализ методов показывает, что ключевым навыком специалиста становится не просто выбор алгоритма, а умение бороться с его недостатками. Это достигается либо ограничением (стрижка, вероятностные оценки), либо кооперацией.
Практическая ценность изложенных подходов заключается в переходе от слабых, нестабильных моделей к сильным ансамблям. Усреднение множества деревьев, обученных на разных подвыборках, нивелирует индивидуальные ошибки. Наблюдение, что увеличение количества деревьев с 50 до 2000 кардинально повышает качество и сглаживает границы классов, подтверждает: стабильность в машинном обучении часто достигается не сложностью единичной модели, а избыточностью коллективного решения. Это позволяет строить системы, способные выявлять сложные нелинейные закономерности, сохраняя при этом робастность к шуму и вариациям входных данных.
Линейная классификация
Линейный классификатор проводит границу (прямую, плоскость или гиперплоскость) для разделения классов. Лучшая граница — та, что максимизирует зазор (расстояние) до обоих классов. В основе лежит сумматор: он складывает входные признаки (XX, YY), умноженные на веса (AA, BB), и сравнивает сумму с порогом CC. Если сумма больше порога — один класс, меньше — другой. Порог CC определяет положение прямой.
Нейронные сети
Один сумматор не способен строить сложные кривые. Если мы соединяем много сумматоров в цепочку (слои) и добавляем после каждого суммирования нелинейное преобразование, мы получаем нейронную сеть (NN). Такая архитектура позволяет улавливать нелинейные зависимости.
Плюсы: подстройка под любые данные.
Минусы: переобучение, «паралич» обучения, мало общего с реальным мозгом.
Деревья решений
Дерево — это последовательность вопросов. Ручное составление правил экспертами ненадежно, поэтому машина строит дерево сама, перебирая признаки и выбирая наилучшее разбиение на каждом шаге.
Преимущества: не требуют функции расстояния (метрики), устойчивы к корреляции признаков.
Критерии разбиения: Разные алгоритмы (CART, CHAID) используют разные критерии (например, Джини — стремление получить в узле объекты одного класса).
Проблема: Одиночные деревья сильно переобучаются и неустойчивы.
Борьба с переобучением
- Стрижка: Ограничение глубины. Лучше стабильные 70% на тесте, чем 90% на трейне и 50% на тесте.
- Ограничение объектов: Запрет на создание узлов со слишком малым числом объектов.
- Вероятностные ответы: Вместо «да/нет» выдаем вероятность класса (например, 70% синий, 30% красный).
- Замена поддеревьев: Использование частей других деревьев, если они работают лучше.
Композиции (Ансамбли)
Самый эффективный способ — построить много разных деревьев и усреднить их результат (случайный лес). Чтобы деревья были разными, используется бэггинг — обучение на разных случайных подвыборках данных.
Эффект: Чем больше деревьев (например, 2000 вместо 50), тем точнее и стабильнее граница классификации, ошибки отдельных деревьев взаимно компенсируются.
1. Линейный классификатор ищет оптимальную гиперплоскость, максимизирующую зазор между классами в N-мерном пространстве.
2. Модель линейной классификации представляет собой сумматор с весами и порогом, сравнивающий результат для принятия бинарного решения.
3. Добавление к линейным сумматорам нелинейности и объединение их в слои формирует нейронную сеть.
4. Нейронные сети хороши для сложных данных, но склонны к переобучению и не всегда интерпретируемы.
5. Деревья решений автоматизируют создание логических правил, заменяя ручной труд экспертов и анализ метрик.
6. Различные типы деревьев (CART, CHAID и др.) отличаются лишь критерием оценки качества разбиения.
7. Основной недостаток деревьев — высокая нестабильность и переобучение на тестовых данных.
8. Стрижка или ограничение числа объектов в листьях уменьшают переобучение, жертвуя точностью на обучающей выборке ради стабильности.
9. Альтернативой стрижке является выдача вероятностного ответа вместо однозначного класса.
10. Композиции (бэггинг и случайный лес) решают проблему слабости отдельных деревьев через усреднение их прогнозов.
11. Увеличение числа деревьев в ансамбле (например, с 50 до 2000) значительно повышает точность и сглаживает границы.
12. Ключевое условие эффективности композиции — существенное разнообразие входящих в неё моделей.
1. Почему не всякая прямая, разделяющая множества, считается оптимальной в линейной классификации?
2. Какую роль играет пороговое значение CC в схеме линейного сумматора?
3. Зачем в нейронных сетях применяется нелинейное преобразование после суммирования сигналов?
4. В чем заключается принципиальное отличие автоматического построения дерева от ручного составления правил?
5. Как критерий Джини оценивает качество разбиения данных на очередном шаге дерева?
6. Почему использование метрических алгоритмов может быть проблематичным при анализе коррелирующих признаков, в отличие от деревьев?
7. В чем суть метода стрижки (подрезания) решающего дерева?
8. Какова цель введения вероятностных ответов в листьях дерева вместо однозначных?
9. Что такое бэггинг и зачем он используется при построении леса деревьев?
10. Почему увеличение числа деревьев в случайном лесе снижает эффект переобучения?
11. Назовите основные недостатки одиночных деревьев решений в реальных задачах.
12. Какие существуют способы ограничения минимального количества объектов в дереве для борьбы с переобучением?