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

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 1: Строка 1:
-
{{викистатья|Многоклассовая классификация}}
+
```wiki
 +
{{Статья
 +
| Название = Многоклассовая классификация
 +
| Область = Машинное обучение
 +
| Уровень = Новичок — Профессионал
 +
}}
-
== Многоклассовая классификация ==
+
== Определение ==
-
**Многоклассовая классификация** — задача [[машинное обучение|машинного обучения]], в которой требуется отнести каждый объект к одному из более чем двух классов. В отличие от [[бинарная классификация|бинарной классификации]], где есть только два возможных исхода (например, «спам» или «не спам»), в многоклассовой постановке пространство меток содержит <tex>K > 2</tex> классов: <tex>\mathcal{Y} = \{1, 2, \dots, K\}</tex>.
+
[[Многоклассовая классификация]] — это задача [[обучение с учителем|обучения с учителем]], в которой модель должна отнести каждый объект к одному из более чем двух классов. В отличие от [[бинарная классификация|бинарной классификации]] (где есть только два класса, например, «спам» или «не спам»), здесь пространство меток содержит <tex>K > 2</tex> категорий.
-
Эта задача встречается повсеместно: от распознавания рукописных цифр до определения жанра фильма по кадру, от классификации видов растений до маршрутизации обращений в техподдержку.
+
Пример: классификация изображений по типам животных («кошка», «собака», «попугай», «черепаха») — это многоклассовая задача с <tex>K=4</tex>.
---
---
-
== Постановка задачи ==
+
== Формальная постановка задачи ==
-
Пусть дана обучающая выборка <tex>\{(x_i, y_i)\}_{i=1}^N</tex>, где <tex>x_i \in \mathcal{X}</tex> — признаковое описание объекта (вектор, изображение, текст), а <tex>y_i \in \{1,\dots,K\}</tex> — его истинная метка класса. Цель — построить функцию <tex>f: \mathcal{X} \to \{1,\dots,K\}</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>\hat{p}_i = (\hat{p}_{i1}, \dots, \hat{p}_{iK})</tex>, где <tex>\sum_{k=1}^{K} \hat{p}_{ik} = 1</tex> и <tex>\hat{p}_{ik} \ge 0</tex>. Тогда финальный класс выбирается как <tex>\arg\max_k \hat{p}_{ik}</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>.
---
---
-
== Подходы к решению ==
+
== Основные подходы ==
-
### Прямые методы (native multiclass)
+
=== Прямые методы ===
-
Некоторые алгоритмы изначально поддерживают многоклассовую постановку:
+
Модель обучается сразу на <tex>K</tex> классах. Это стандартный подход для большинства современных алгоритмов:
-
- [[деревья решений]] и ансамбли на их основе ([[случайный лес|случайные леса]], [[градиентный бустинг]]) — строят правила разделения пространства признаков сразу на несколько классов.
+
* [[нейронная сеть|Нейронные сети]] с выходным слоем размера <tex>K</tex> и функцией активации [[softmax]].
-
- [[метод опорных векторов|SVM]] с многоклассовыми стратегиями (например, one-vs-rest или структурные SVM).
+
* [[логистическая регрессия|Многоклассовая логистическая регрессия]] (softmax-регрессия).
-
- [[нейронные сети]] с выходным слоем из <tex>K</tex> нейронов и активацией [[softmax]].
+
* Некоторые реализации [[деревья решений|деревьев решений]] и [[случайный лес|случайных лесов]] поддерживают многоклассовость напрямую.
-
### Стратегии сведения к бинарным задачам
+
=== Методы сведения к бинарным задачам ===
-
Когда базовый алгоритм умеет решать только бинарные задачи, применяют стратегии композиции:
+
Когда алгоритм изначально разработан для бинарной классификации, используют стратегии сведения:
-
- **One-vs-Rest (OvR)**: для каждого класса обучается отдельный классификатор «этот класс против всех остальных». Итого <tex>K</tex> бинарных моделей.
+
* **One-vs-Rest (OvR)**: обучается <tex>K</tex> бинарных классификаторов, каждый из которых отделяет один класс от всех остальных. Итоговый прогноз — класс с наибольшей оценкой.
-
- **One-vs-One (OvO)**: обучается <tex>\binom{K}{2}</tex> классификаторов, каждый различает пару классов. Финальный класс определяется голосованием.
+
* **One-vs-One (OvO)**: обучается <tex>\binom{K}{2}</tex> классификаторов для каждой пары классов. Прогноз определяется голосованием.
-
- **Древовидные стратегии**: классы организуются в бинарное дерево, и объект последовательно проходит по узлам, пока не достигнет листа.
+
-
На практике OvR и OvO часто реализуются как «обёртки» над бинарными алгоритмами и широко используются в библиотеках типа scikit-learn.
+
Эти стратегии полезны, когда нужно применить бинарный метод к многоклассовой задаче, но при больших <tex>K</tex> могут быть вычислительно затратными.
---
---
-
== Функции потерь и обучение ==
+
== Функции потерь ==
-
Для нейронных сетей и многих вероятностных моделей стандартом является **кросс-энтропийная потеря** (categorical cross-entropy):
+
Для обучения моделей в многоклассовой классификации чаще всего используют [[кросс-энтропия|кросс-энтропийную]] функцию потерь:
<tex>
<tex>
-
L = -\frac{1}{N}\sum_{i=1}^{N} \sum_{k=1}^{K} y_{ik} \log(\hat{p}_{ik}),
+
\mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log p_{y_i}(x_i)
</tex>
</tex>
-
где <tex>y_{ik}</tex> — индикаторная переменная: <tex>1</tex>, если объект <tex>i</tex> принадлежит классу <tex>k</tex>, и <tex>0</tex> иначе.
+
Она штрафует модель за низкую вероятность правильного класса. В задачах с дисбалансом классов применяют модификации, например, взвешенную кросс-энтропию или [[focal loss]].
-
 
+
-
Для алгоритмов, не выдающих вероятности напрямую, используют другие критерии: например, долю ошибок (accuracy) или более устойчивые метрики при дисбалансе.
+
---
---
-
== Метрики качества ==
+
== Практические сложности и нюансы ==
-
Помимо общей [[точность (машинное обучение)|точности]] (accuracy), важно оценивать качество по каждому классу:
+
* **Дисбаланс классов**: если одни классы встречаются значительно чаще других, модель может игнорировать редкие категории. Решения: взвешивание классов, [[аугментация данных|аугментация]] меньшинства, специальные функции потерь.
 +
* **Неопределённость и калибровка**: вероятности, выдаваемые моделью, не всегда отражают реальную уверенность. Для калибровки применяют методы вроде [[Platt scaling]] или изотонической регрессии.
 +
* **Оценка качества**: вместо простой точности ([[accuracy]]) используют более информативные метрики:
 +
* [[macro-average F1]] — усреднение по классам, полезно при дисбалансе.
 +
* [[micro-average F1]] — учитывает размер классов.
 +
* Матрица ошибок ([[confusion matrix]]) помогает увидеть, какие классы модель путает.
-
- [[точность (precision)|точность]] и [[полнота (recall)|полнота]] для каждого класса.
+
---
-
- [[F-мера|F1-мера]], в том числе макро- и микроусреднённые версии.
+
-
- Матрица ошибок (confusion matrix) — наглядно показывает, какие классы чаще всего путают.
+
-
При сильном дисбалансе классов accuracy может быть обманчиво высокой, поэтому используют взвешенные метрики и анализ по слабым классам.
+
== Примеры применения ==
 +
 
 +
* Классификация текстов по темам (новости, спорт, наука и т. д.).
 +
* Распознавание рукописных цифр и символов.
 +
* Медицинская диагностика по снимкам (несколько типов патологий).
 +
* Определение жанра музыки или типа сцены в видео.
---
---
-
== Практические сложности и нюансы ==
+
== Связь с родственными задачами ==
-
- **Дисбаланс классов**: некоторые классы представлены гораздо реже остальных. Помогают техники вроде взвешивания классов, oversampling/undersampling, focal loss.
+
* [[Многозначная классификация]]: объект может принадлежать сразу нескольким классам (в отличие от многоклассовой, где класс ровно один).
-
- **Перекрытие классов**: объекты разных классов могут иметь схожие признаки. Здесь полезны ансамбли и более сложные модели.
+
* [[Иерархическая классификация]]: классы организованы в дерево, и предсказание может учитывать структуру иерархии.
-
- **Интерпретируемость**: в критических областях (медицина, финансы) важно понимать, почему модель выбрала тот или иной класс.
+
---
---
-
== Примеры применения ==
+
== Актуальные направления исследований ==
-
- Распознавание изображений: определение объекта среди десятков или сотен категорий (ImageNet).
+
Современные работы в области многоклассовой классификации фокусируются на:
-
- Обработка естественного языка: классификация текста по темам, тональности, языку.
+
-
- Медицина: дифференциальная диагностика по набору признаков.
+
-
Интересно, что задача определения фильма по кадру — это тоже многоклассовая классификация: каждый фильм выступает как отдельный класс, а модель должна выбрать наиболее вероятный из тысяч кандидатов.
+
* Улучшении обобщения при малом числе примеров на класс (few-shot learning).
 +
* Балансировке качества между частыми и редкими классами.
 +
* Интерпретируемости решений моделей, особенно в критических областях (медицина, финансы).
-
---
+
Среди значимых публикаций можно отметить работы, посвящённые:
-
 
+
-
== Современные тенденции ==
+
-
В последние годы развитие многоклассовой классификации тесно связано с прогрессом в глубоком обучении:
+
* Стратегиям борьбы с дисбалансом в глубоких сетях (например, исследования по взвешиванию классов и ресемплингу).
 +
* Калибровке вероятностей в современных архитектурах.
 +
* Эффективным методам сведения многоклассовых задач к бинарным в условиях больших <tex>K</tex>.
-
- Большие предобученные модели (трансформеры, сверточные сети) дают сильные признаки, которые затем дообучаются под конкретную задачу.
+
Для поиска актуальных статей рекомендуется использовать базы: [[arXiv]], [[Google Scholar]], [[IEEE Xplore]]. Ключевые запросы: «multiclass classification», «class imbalance», «probability calibration».
-
- Методы борьбы с дисбалансом и «длинным хвостом» классов (long-tail classification) активно исследуются.
+
-
- Важным направлением остаётся интерпретируемость и надёжность предсказаний.
+
---
---
Строка 95: Строка 108:
== Литература и источники ==
== Литература и источники ==
-
* {{статья |автор=Hastie T., Tibshirani R., Friedman J. |заглавие=The Elements of Statistical Learning |издание=Springer Series in Statistics |год=2009 |ссылка=https://hastie.su.domains/ElemStatLearn/}}
+
1. Bishop, C. M. (2006). *Pattern Recognition and Machine Learning*. Springer. — фундаментальное изложение вероятностных подходов, включая многоклассовую классификацию.
-
* {{книга |автор=Murphy K. P. |заглавие=Machine Learning: A Probabilistic Perspective |издательство=MIT Press |год=2012}}
+
2. Hastie, T., Tibshirani, R., Friedman, J. (2009). *The Elements of Statistical Learning*. Springer. — классические методы, включая линейные и нелинейные модели для многоклассовых задач.
-
* {{статья |автор=Bishop C. M. |заглавие=Pattern Recognition and Machine Learning |издательство=Springer |год=2006}}
+
3. Goodfellow, I., Bengio, Y., Courville, A. (2016). *Deep Learning*. MIT Press. — описание нейронных сетей и softmax-слоя для многоклассовой классификации.
-
* {{cite web |url=https://scikit-learn.org/stable/modules/multiclass.html |title=Multiclass and multilabel algorithms |publisher=scikit-learn documentation}}
+
4. Статьи на arXiv по запросам «multiclass imbalance» и «calibration in deep learning» — для ознакомления с последними результатами.
-
* {{статья |автор=He K., Zhang X., Ren S., Sun J. |заглавие=Deep Residual Learning for Image Recognition |conference=CVPR |год=2016}}
+
-
* {{статья |автор=Dosovitskiy A. et al. |заглавие=An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale |conference=ICLR |год=2021}}
+
---
---
-
{{см. также|бинарная классификация|мультилейбл-классификация|ансамблевые методы}}
+
== См. также ==
 +
 
 +
* [[Классификация (машинное обучение)]]
 +
* [[Бинарная классификация]]
 +
* [[Softmax]]
 +
* [[Кросс-энтропия]]
 +
* [[Матрица ошибок]]
 +
```

Версия 11:32, 30 июня 2026

```wiki {{{заглавие}}}.

Содержание

Определение

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

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

---

Формальная постановка задачи

Пусть дано множество объектов \mathcal{X} и множество меток \mathcal{Y} = \{1, 2, \dots, K\}, где K>2. Имеется обучающая выборка \{(x_i, y_i)\}_{i=1}^N, где x_i \in \mathcal{X}, y_i \in \mathcal{Y}. Цель — построить функцию f: \mathcal{X} \to \mathcal{Y}, которая минимизирует ошибку на новых данных.

Часто модель сначала предсказывает вектор оценок (логитов) z(x) \in \mathbb{R}^K, а затем преобразует их в вероятности с помощью softmax-функции:


p_k(x) = \frac{\exp(z_k(x))}{\sum_{j=1}^{K} \exp(z_j(x))}

Класс выбирается как индекс максимального значения: \hat{y}(x) = \arg\max_k p_k(x).

---

Основные подходы

Прямые методы

Модель обучается сразу на K классах. Это стандартный подход для большинства современных алгоритмов:

Методы сведения к бинарным задачам

Когда алгоритм изначально разработан для бинарной классификации, используют стратегии сведения:

  • **One-vs-Rest (OvR)**: обучается K бинарных классификаторов, каждый из которых отделяет один класс от всех остальных. Итоговый прогноз — класс с наибольшей оценкой.
  • **One-vs-One (OvO)**: обучается \binom{K}{2} классификаторов для каждой пары классов. Прогноз определяется голосованием.

Эти стратегии полезны, когда нужно применить бинарный метод к многоклассовой задаче, но при больших K могут быть вычислительно затратными.

---

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

Для обучения моделей в многоклассовой классификации чаще всего используют кросс-энтропийную функцию потерь:


\mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log p_{y_i}(x_i)

Она штрафует модель за низкую вероятность правильного класса. В задачах с дисбалансом классов применяют модификации, например, взвешенную кросс-энтропию или focal loss.

---

Практические сложности и нюансы

  • **Дисбаланс классов**: если одни классы встречаются значительно чаще других, модель может игнорировать редкие категории. Решения: взвешивание классов, аугментация меньшинства, специальные функции потерь.
  • **Неопределённость и калибровка**: вероятности, выдаваемые моделью, не всегда отражают реальную уверенность. Для калибровки применяют методы вроде Platt scaling или изотонической регрессии.
  • **Оценка качества**: вместо простой точности (accuracy) используют более информативные метрики:
 * macro-average F1 — усреднение по классам, полезно при дисбалансе.
 * micro-average F1 — учитывает размер классов.
 * Матрица ошибок (confusion matrix) помогает увидеть, какие классы модель путает.

---

Примеры применения

  • Классификация текстов по темам (новости, спорт, наука и т. д.).
  • Распознавание рукописных цифр и символов.
  • Медицинская диагностика по снимкам (несколько типов патологий).
  • Определение жанра музыки или типа сцены в видео.

---

Связь с родственными задачами

---

Актуальные направления исследований

Современные работы в области многоклассовой классификации фокусируются на:

  • Улучшении обобщения при малом числе примеров на класс (few-shot learning).
  • Балансировке качества между частыми и редкими классами.
  • Интерпретируемости решений моделей, особенно в критических областях (медицина, финансы).

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

  • Стратегиям борьбы с дисбалансом в глубоких сетях (например, исследования по взвешиванию классов и ресемплингу).
  • Калибровке вероятностей в современных архитектурах.
  • Эффективным методам сведения многоклассовых задач к бинарным в условиях больших K.

Для поиска актуальных статей рекомендуется использовать базы: 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» — для ознакомления с последними результатами.

---

См. также

```

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