Многоклассовая классификация

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

Многоклассовая классификация

Многоклассовая классификация — задача машинного обучения, в которой модель должна отнести входной объект к одному из более чем двух классов. В отличие от бинарной классификации (где есть только два класса, например «спам»/«не спам»), здесь пространство решений богаче: например, классификация изображений по типам животных («кошка», «собака», «попугай», «черепаха») или определение жанра текста («новости», «спорт», «культура», «экономика»).

Постановка задачи

Формально задача ставится так: - Дано множество объектов $X$ (например, векторы признаков). - Дано конечное множество классов $Y = \{c_1, c_2, \dots, c_K\}$, где $K > 2$. - Требуется построить функцию (модель) $f: X \to Y$, которая по объекту $x$ предсказывает его класс $y$.

На практике модель часто выдаёт не жёсткий класс, а вектор вероятностей $p = (p_1, \dots, p_K)$, где $p_k$ — оценка вероятности принадлежности к классу $c_k$. Затем выбирается класс с максимальной вероятностью: $\hat{y} = \arg\max_k p_k$.

Ключевые идеи и подходы

Один против всех (One-vs-Rest, OvR)

Идея: обучить K бинарных классификаторов, каждый из которых отделяет один класс от всех остальных. При предсказании выбирается класс, чей классификатор выдал наибольшую уверенность.

Подходит для многих базовых моделей (логистическая регрессия, SVM и т.д.), но может быть менее согласованным, чем методы, изначально многоклассовые.

Один против одного (One-vs-One, OvO)

Строится \binom{K}{2} классификаторов, каждый из которых различает пару классов. Итоговый класс определяется голосованием. Часто используется с методом опорных векторов, когда число классов не слишком велико.

Нативные многоклассовые модели

Некоторые алгоритмы изначально поддерживают многоклассовость: - Деревья решений и ансамбли на их основе (Random Forest, Gradient Boosting) умеют напрямую предсказывать распределение по классам. - Нейронные сети обычно завершаются слоем softmax, который преобразует логиты в вероятности по всем классам. - Многие реализации логистической регрессии поддерживают многоклассовый вариант (multinomial logistic regression).

Функции потерь и метрики

Для обучения многоклассовых моделей чаще всего используют: - Категориальную кросс-энтропию (categorical cross-entropy) — стандарт для нейросетей и вероятностных моделей. - Потери на основе маржи (в SVM) с многоклассовыми формулировками.

Распространённые метрики качества: - Точность (accuracy) — доля правильно классифицированных объектов. - Precision, recall, F1 — часто усредняют по классам (macro/micro/weighted). - Матрица ошибок — помогает увидеть, какие классы чаще всего путаются.

Практические сложности и решения

- Дисбаланс классов: некоторые классы встречаются намного реже. Решения: взвешивание классов в функции потерь, перебалансировка выборки, использование метрик, устойчивых к дисбалансу. - Переобучение при большом числе классов: регуляризация, ансамбли, трансферное обучение (особенно в задачах компьютерного зрения и NLP). - Интерпретируемость: в сложных моделях (глубокие сети) полезно применять методы вроде SHAP или LIME.

Примеры задач и областей применения

- Распознавание изображений (ImageNet, CIFAR-100): сотни классов объектов. - Классификация текстов по темам или тональности. - Медицинская диагностика: выбор из нескольких заболеваний. - Распознавание речи и классификация намерений (intent classification) в чат-ботах.

Современные тренды и научные результаты

В последние годы акцент смещается на: - Масштабирование числа классов (extreme classification) с миллионами категорий. - Эффективные архитектуры и методы нормализации (BatchNorm, LayerNorm), улучшающие сходимость softmax-слоёв. - Контрастивные и метрические подходы (metric learning), где классификация сводится к поиску ближайшего представителя класса в эмбеддинг-пространстве.

Актуальные обзоры по теме: - Bengio et al., «Deep Learning» (книга, глава про классификацию и softmax). - Goodfellow, Bengio, Courville, «Deep Learning», MIT Press, 2016 — классический учебник с подробным разбором многоклассовой классификации и кросс-энтропии. - Статьи по extreme classification в материалах конференций NeurIPS, ICML, KDD — для продвинутых методов с очень большим числом классов.

Полезные ссылки и ресурсы

- Документация библиотек: scikit-learn (реализация OvR/OvO, Random Forest, логистическая регрессия), XGBoost, LightGBM, PyTorch, TensorFlow. - Репозитории с бенчмарками и датасетами: ImageNet, CIFAR, MNIST (как учебный пример), UCI Machine Learning Repository.

Для новичка: как начать

1. Возьмите простой датасет (например, Iris или рукописные цифры MNIST). 2. Обучите несколько моделей: логистическую регрессию, дерево решений, случайный лес. 3. Сравните метрики (accuracy, F1), посмотрите матрицу ошибок. 4. Попробуйте добавить дисбаланс классов и оцените, как меняются результаты. 5. Изучите, как меняется выход модели (вероятности классов) и как работает argmax.

Для профессионала: на что обратить внимание

- Выбор правильной функции потерь и калибровки вероятностей (Platt scaling, isotonic regression). - Работа с экстремальным числом классов: иерархические классификации, отрицательные выборки, специализированные слои. - Учёт структуры классов (семантические связи, онтологии) для улучшения обобщения. - Анализ ошибок: какие пары классов систематически путаются и почему.

Личные инструменты