Многоклассовая классификация
Материал из MachineLearning.
| Строка 1: | Строка 1: | ||
| - | {{ | + | ```wiki |
| + | {{Статья | ||
| + | | Название = Многоклассовая классификация | ||
| + | | Область = Машинное обучение | ||
| + | | Уровень = Новичок — Профессионал | ||
| + | }} | ||
| - | == | + | == Определение == |
| - | + | [[Многоклассовая классификация]] — это задача [[обучение с учителем|обучения с учителем]], в которой модель должна отнести каждый объект к одному из более чем двух классов. В отличие от [[бинарная классификация|бинарной классификации]] (где есть только два класса, например, «спам» или «не спам»), здесь пространство меток содержит <tex>K > 2</tex> категорий. | |
| - | + | Пример: классификация изображений по типам животных («кошка», «собака», «попугай», «черепаха») — это многоклассовая задача с <tex>K=4</tex>. | |
--- | --- | ||
| - | == | + | == Формальная постановка задачи == |
| - | Пусть | + | Пусть дано множество объектов <tex>\mathcal{X}</tex> и множество меток <tex>\mathcal{Y} = \{1, 2, \dots, K\}</tex>, где <tex>K>2</tex>. Имеется обучающая выборка <tex>\{(x_i, y_i)\}_{i=1}^N</tex>, где <tex>x_i \in \mathcal{X}</tex>, <tex>y_i \in \mathcal{Y}</tex>. Цель — построить функцию <tex>f: \mathcal{X} \to \mathcal{Y}</tex>, которая минимизирует ошибку на новых данных. |
| - | Часто модель | + | Часто модель сначала предсказывает вектор оценок (логитов) <tex>z(x) \in \mathbb{R}^K</tex>, а затем преобразует их в вероятности с помощью [[softmax]]-функции: |
| + | |||
| + | <tex> | ||
| + | p_k(x) = \frac{\exp(z_k(x))}{\sum_{j=1}^{K} \exp(z_j(x))} | ||
| + | </tex> | ||
| + | |||
| + | Класс выбирается как индекс максимального значения: <tex>\hat{y}(x) = \arg\max_k p_k(x)</tex>. | ||
--- | --- | ||
| - | == | + | == Основные подходы == |
| - | + | === Прямые методы === | |
| - | + | Модель обучается сразу на <tex>K</tex> классах. Это стандартный подход для большинства современных алгоритмов: | |
| - | + | * [[нейронная сеть|Нейронные сети]] с выходным слоем размера <tex>K</tex> и функцией активации [[softmax]]. | |
| - | + | * [[логистическая регрессия|Многоклассовая логистическая регрессия]] (softmax-регрессия). | |
| - | + | * Некоторые реализации [[деревья решений|деревьев решений]] и [[случайный лес|случайных лесов]] поддерживают многоклассовость напрямую. | |
| - | + | === Методы сведения к бинарным задачам === | |
| - | Когда | + | Когда алгоритм изначально разработан для бинарной классификации, используют стратегии сведения: |
| - | + | * **One-vs-Rest (OvR)**: обучается <tex>K</tex> бинарных классификаторов, каждый из которых отделяет один класс от всех остальных. Итоговый прогноз — класс с наибольшей оценкой. | |
| - | + | * **One-vs-One (OvO)**: обучается <tex>\binom{K}{2}</tex> классификаторов для каждой пары классов. Прогноз определяется голосованием. | |
| - | + | ||
| - | + | Эти стратегии полезны, когда нужно применить бинарный метод к многоклассовой задаче, но при больших <tex>K</tex> могут быть вычислительно затратными. | |
--- | --- | ||
| - | == Функции потерь | + | == Функции потерь == |
| - | Для | + | Для обучения моделей в многоклассовой классификации чаще всего используют [[кросс-энтропия|кросс-энтропийную]] функцию потерь: |
<tex> | <tex> | ||
| - | L = -\frac{1}{N}\sum_{i=1}^{N} \ | + | \mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log p_{y_i}(x_i) |
</tex> | </tex> | ||
| - | + | Она штрафует модель за низкую вероятность правильного класса. В задачах с дисбалансом классов применяют модификации, например, взвешенную кросс-энтропию или [[focal loss]]. | |
| - | + | ||
| - | + | ||
--- | --- | ||
| - | == | + | == Практические сложности и нюансы == |
| - | + | * **Дисбаланс классов**: если одни классы встречаются значительно чаще других, модель может игнорировать редкие категории. Решения: взвешивание классов, [[аугментация данных|аугментация]] меньшинства, специальные функции потерь. | |
| + | * **Неопределённость и калибровка**: вероятности, выдаваемые моделью, не всегда отражают реальную уверенность. Для калибровки применяют методы вроде [[Platt scaling]] или изотонической регрессии. | ||
| + | * **Оценка качества**: вместо простой точности ([[accuracy]]) используют более информативные метрики: | ||
| + | * [[macro-average F1]] — усреднение по классам, полезно при дисбалансе. | ||
| + | * [[micro-average F1]] — учитывает размер классов. | ||
| + | * Матрица ошибок ([[confusion matrix]]) помогает увидеть, какие классы модель путает. | ||
| - | - | + | --- |
| - | - | + | |
| - | + | ||
| - | + | == Примеры применения == | |
| + | |||
| + | * Классификация текстов по темам (новости, спорт, наука и т. д.). | ||
| + | * Распознавание рукописных цифр и символов. | ||
| + | * Медицинская диагностика по снимкам (несколько типов патологий). | ||
| + | * Определение жанра музыки или типа сцены в видео. | ||
--- | --- | ||
| - | == | + | == Связь с родственными задачами == |
| - | + | * [[Многозначная классификация]]: объект может принадлежать сразу нескольким классам (в отличие от многоклассовой, где класс ровно один). | |
| - | + | * [[Иерархическая классификация]]: классы организованы в дерево, и предсказание может учитывать структуру иерархии. | |
| - | + | ||
--- | --- | ||
| - | == | + | == Актуальные направления исследований == |
| - | + | Современные работы в области многоклассовой классификации фокусируются на: | |
| - | + | ||
| - | + | ||
| - | + | * Улучшении обобщения при малом числе примеров на класс (few-shot learning). | |
| + | * Балансировке качества между частыми и редкими классами. | ||
| + | * Интерпретируемости решений моделей, особенно в критических областях (медицина, финансы). | ||
| - | + | Среди значимых публикаций можно отметить работы, посвящённые: | |
| - | + | ||
| - | + | ||
| - | + | * Стратегиям борьбы с дисбалансом в глубоких сетях (например, исследования по взвешиванию классов и ресемплингу). | |
| + | * Калибровке вероятностей в современных архитектурах. | ||
| + | * Эффективным методам сведения многоклассовых задач к бинарным в условиях больших <tex>K</tex>. | ||
| - | + | Для поиска актуальных статей рекомендуется использовать базы: [[arXiv]], [[Google Scholar]], [[IEEE Xplore]]. Ключевые запросы: «multiclass classification», «class imbalance», «probability calibration». | |
| - | + | ||
| - | + | ||
--- | --- | ||
| Строка 95: | Строка 108: | ||
== Литература и источники == | == Литература и источники == | ||
| - | * | + | 1. Bishop, C. M. (2006). *Pattern Recognition and Machine Learning*. Springer. — фундаментальное изложение вероятностных подходов, включая многоклассовую классификацию. |
| - | * | + | 2. Hastie, T., Tibshirani, R., Friedman, J. (2009). *The Elements of Statistical Learning*. Springer. — классические методы, включая линейные и нелинейные модели для многоклассовых задач. |
| - | + | 3. Goodfellow, I., Bengio, Y., Courville, A. (2016). *Deep Learning*. MIT Press. — описание нейронных сетей и softmax-слоя для многоклассовой классификации. | |
| - | + | 4. Статьи на arXiv по запросам «multiclass imbalance» и «calibration in deep learning» — для ознакомления с последними результатами. | |
| - | + | ||
| - | * | + | |
--- | --- | ||
| - | + | == См. также == | |
| + | |||
| + | * [[Классификация (машинное обучение)]] | ||
| + | * [[Бинарная классификация]] | ||
| + | * [[Softmax]] | ||
| + | * [[Кросс-энтропия]] | ||
| + | * [[Матрица ошибок]] | ||
| + | ``` | ||
Версия 11:32, 30 июня 2026
```wiki {{{заглавие}}}.
Содержание |
Определение
Многоклассовая классификация — это задача обучения с учителем, в которой модель должна отнести каждый объект к одному из более чем двух классов. В отличие от бинарной классификации (где есть только два класса, например, «спам» или «не спам»), здесь пространство меток содержит категорий.
Пример: классификация изображений по типам животных («кошка», «собака», «попугай», «черепаха») — это многоклассовая задача с .
---
Формальная постановка задачи
Пусть дано множество объектов и множество меток
, где
. Имеется обучающая выборка
, где
,
. Цель — построить функцию
, которая минимизирует ошибку на новых данных.
Часто модель сначала предсказывает вектор оценок (логитов) , а затем преобразует их в вероятности с помощью softmax-функции:
Класс выбирается как индекс максимального значения: .
---
Основные подходы
Прямые методы
Модель обучается сразу на классах. Это стандартный подход для большинства современных алгоритмов:
- Нейронные сети с выходным слоем размера
и функцией активации softmax.
- Многоклассовая логистическая регрессия (softmax-регрессия).
- Некоторые реализации деревьев решений и случайных лесов поддерживают многоклассовость напрямую.
Методы сведения к бинарным задачам
Когда алгоритм изначально разработан для бинарной классификации, используют стратегии сведения:
- **One-vs-Rest (OvR)**: обучается
бинарных классификаторов, каждый из которых отделяет один класс от всех остальных. Итоговый прогноз — класс с наибольшей оценкой.
- **One-vs-One (OvO)**: обучается
классификаторов для каждой пары классов. Прогноз определяется голосованием.
Эти стратегии полезны, когда нужно применить бинарный метод к многоклассовой задаче, но при больших могут быть вычислительно затратными.
---
Функции потерь
Для обучения моделей в многоклассовой классификации чаще всего используют кросс-энтропийную функцию потерь:
Она штрафует модель за низкую вероятность правильного класса. В задачах с дисбалансом классов применяют модификации, например, взвешенную кросс-энтропию или focal loss.
---
Практические сложности и нюансы
- **Дисбаланс классов**: если одни классы встречаются значительно чаще других, модель может игнорировать редкие категории. Решения: взвешивание классов, аугментация меньшинства, специальные функции потерь.
- **Неопределённость и калибровка**: вероятности, выдаваемые моделью, не всегда отражают реальную уверенность. Для калибровки применяют методы вроде Platt scaling или изотонической регрессии.
- **Оценка качества**: вместо простой точности (accuracy) используют более информативные метрики:
* macro-average F1 — усреднение по классам, полезно при дисбалансе. * micro-average F1 — учитывает размер классов. * Матрица ошибок (confusion matrix) помогает увидеть, какие классы модель путает.
---
Примеры применения
- Классификация текстов по темам (новости, спорт, наука и т. д.).
- Распознавание рукописных цифр и символов.
- Медицинская диагностика по снимкам (несколько типов патологий).
- Определение жанра музыки или типа сцены в видео.
---
Связь с родственными задачами
- Многозначная классификация: объект может принадлежать сразу нескольким классам (в отличие от многоклассовой, где класс ровно один).
- Иерархическая классификация: классы организованы в дерево, и предсказание может учитывать структуру иерархии.
---
Актуальные направления исследований
Современные работы в области многоклассовой классификации фокусируются на:
- Улучшении обобщения при малом числе примеров на класс (few-shot learning).
- Балансировке качества между частыми и редкими классами.
- Интерпретируемости решений моделей, особенно в критических областях (медицина, финансы).
Среди значимых публикаций можно отметить работы, посвящённые:
- Стратегиям борьбы с дисбалансом в глубоких сетях (например, исследования по взвешиванию классов и ресемплингу).
- Калибровке вероятностей в современных архитектурах.
- Эффективным методам сведения многоклассовых задач к бинарным в условиях больших
.
Для поиска актуальных статей рекомендуется использовать базы: arXiv, Google Scholar, IEEE Xplore. Ключевые запросы: «multiclass classification», «class imbalance», «probability calibration».
---
Литература и источники
1. Bishop, C. M. (2006). *Pattern Recognition and Machine Learning*. Springer. — фундаментальное изложение вероятностных подходов, включая многоклассовую классификацию. 2. Hastie, T., Tibshirani, R., Friedman, J. (2009). *The Elements of Statistical Learning*. Springer. — классические методы, включая линейные и нелинейные модели для многоклассовых задач. 3. Goodfellow, I., Bengio, Y., Courville, A. (2016). *Deep Learning*. MIT Press. — описание нейронных сетей и softmax-слоя для многоклассовой классификации. 4. Статьи на arXiv по запросам «multiclass imbalance» и «calibration in deep learning» — для ознакомления с последними результатами.
---
См. также
```

