Многоклассовая классификация
Материал из MachineLearning.
| (6 промежуточных версий не показаны.) | |||
| Строка 1: | Строка 1: | ||
| + | {{well|Статья написана с использованием LLM '''ChatGPT 5.5''' и проверена участником [[Liliia Davletova]]}} | ||
| + | |||
= Многоклассовая классификация = | = Многоклассовая классификация = | ||
| - | '''Многоклассовая классификация''' | + | '''Многоклассовая классификация''' — задача [[машинное обучение|машинного обучения]], в которой требуется отнести каждый объект к одному из трёх и более взаимоисключающих [[класс (машинное обучение)|классов]] на основании наблюдаемых [[признак (машинное обучение)|признаков]]. Является одним из фундаментальных разделов [[обучение с учителем|обучения с учителем]] и применяется в [[компьютерное зрение|компьютерном зрении]], [[обработка естественного языка|обработке естественного языка]], [[биоинформатика|биоинформатике]], медицинской диагностике, рекомендательных системах и других областях. |
| - | + | В отличие от [[бинарная классификация|бинарной классификации]], где возможны только два класса, при многоклассовой классификации алгоритм выбирает один класс из множества возможных. Примерами являются распознавание рукописных цифр (10 классов), классификация видов растений, определение языка текста или диагностика заболевания по нескольким категориям. | |
== Постановка задачи == | == Постановка задачи == | ||
| - | Пусть задано множество объектов | + | Пусть задано множество объектов |
| - | :< | + | :<tex>\mathcal{D} = {(x_i, y_i)}_{i=1}^{N},</tex> |
| - | + | где <tex>x_i \in \mathbb{R}^{d}</tex> — вектор признаков, а | |
| - | + | :<tex>y_i \in {1,\ldots,K}</tex> | |
| - | + | — номер одного из <tex>K</tex> классов. | |
| - | + | Требуется построить функцию | |
| - | + | :<tex>f : X \rightarrow {1,\ldots,K},</tex> | |
| - | + | которая минимизирует вероятность ошибки на новых данных. | |
| - | + | Во многих современных алгоритмах модель оценивает вероятности принадлежности объекта каждому классу | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | :<tex>P(y=k\mid x),</tex> | |
| - | + | после чего выбирается класс с максимальной вероятностью: | |
| - | + | :<tex>\hat y=\arg\max_k P(y=k|x).</tex> | |
| - | + | == История == | |
| - | + | Первые методы многоклассовой классификации появились в статистической теории распознавания образов в середине XX века. Существенный вклад внесли работы по [[линейный дискриминантный анализ|линейному дискриминантному анализу]], [[логистическая регрессия|логистической регрессии]] и [[байесовский классификатор|байесовским классификаторам]]. | |
| - | + | В 1990-х годах широкое распространение получили методы, основанные на [[метод опорных векторов|методе опорных векторов]], для которых были предложены схемы сведения многоклассовой задачи к нескольким бинарным задачам. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | С начала 2010-х годов доминирующими стали методы [[глубокое обучение|глубокого обучения]], использующие многослойные [[искусственная нейронная сеть|нейронные сети]] и функцию потерь [[Softmax|Softmax]] с [[кросс-энтропия|кросс-энтропией]]. | |
| - | == Основные | + | == Основные подходы == |
| - | + | === Прямые многоклассовые модели === | |
| - | + | Некоторые алгоритмы непосредственно оптимизируют многоклассовую постановку: | |
| - | * [[ | + | * [[логистическая регрессия|многономиальная логистическая регрессия]]; |
| - | * | + | * [[дерево решений|деревья решений]]; |
| - | * | + | * [[случайный лес]]; |
| - | * | + | * [[градиентный бустинг]]; |
| - | * [[ | + | * [[искусственная нейронная сеть|нейронные сети]]; |
| - | * | + | * [[наивный байесовский классификатор]]. |
| - | + | В нейронных сетях обычно используется последний слой Softmax, который преобразует выходы модели в вероятностное распределение по классам. | |
| - | == | + | === Сведение к бинарной классификации === |
| - | + | Для алгоритмов, ориентированных на бинарные задачи, применяются специальные схемы. | |
| - | + | ==== One-vs-Rest ==== | |
| - | + | Каждый классификатор обучается отличать один класс от всех остальных. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Преимущества: | |
| - | + | * простота реализации; | |
| + | * небольшое число моделей (<tex>K</tex>). | ||
| - | + | Недостатки: | |
| - | + | * возможен сильный дисбаланс классов; | |
| + | * вероятности различных моделей плохо согласованы между собой. | ||
| - | + | ==== One-vs-One ==== | |
| - | + | Строится отдельный классификатор для каждой пары классов. | |
| - | + | Количество моделей составляет | |
| - | + | :<tex>\frac{K(K-1)}{2}</tex> | |
| - | + | Итоговое решение принимается голосованием либо агрегированием вероятностей. | |
| - | + | ==== Error-Correcting Output Codes ==== | |
| - | + | Метод использует кодирование классов длинными двоичными кодами, что позволяет повысить устойчивость к ошибкам отдельных бинарных классификаторов. | |
| - | + | == Методы машинного обучения == | |
| - | + | === Логистическая регрессия === | |
| - | + | Многономиальная логистическая регрессия моделирует вероятности всех классов одновременно посредством функции Softmax. Благодаря выпуклой оптимизации является одним из наиболее интерпретируемых методов. | |
| + | |||
| + | === Метод опорных векторов === | ||
| + | |||
| + | Классический [[метод опорных векторов]] первоначально был разработан для бинарной классификации. Для многоклассовых задач обычно используются схемы One-vs-One, One-vs-Rest либо специализированные многоклассовые постановки. | ||
| + | |||
| + | === Деревья решений === | ||
| + | |||
| + | [[Дерево решений|Деревья решений]] разбивают пространство признаков на области, соответствующие различным классам. Они легко интерпретируются и способны учитывать нелинейные зависимости. | ||
| + | |||
| + | === Ансамблевые методы === | ||
| + | |||
| + | [[Случайный лес]] и [[градиентный бустинг]] являются одними из наиболее успешных классических алгоритмов. Они эффективно работают с табличными данными и устойчивы к шуму. | ||
| + | |||
| + | === Глубокие нейронные сети === | ||
| + | |||
| + | Современные [[искусственная нейронная сеть|нейронные сети]] являются стандартом де-факто для задач компьютерного зрения и обработки естественного языка. Архитектуры [[свёрточная нейронная сеть|CNN]], [[трансформер (машинное обучение)|Transformer]] и [[Vision Transformer]] позволяют классифицировать тысячи категорий с высокой точностью. | ||
| + | |||
| + | == Функции потерь == | ||
| + | |||
| + | Наиболее распространённой является категориальная кросс-энтропия: | ||
| + | |||
| + | :<tex>L=-\sum_{k=1}^{K} y_k \log p_k.</tex> | ||
| + | |||
| + | Для несбалансированных данных применяются: | ||
| + | |||
| + | * [[Focal Loss]]; | ||
| + | * взвешенная кросс-энтропия; | ||
| + | * Label Smoothing; | ||
| + | * Balanced Softmax. | ||
| + | |||
| + | == Оценка качества == | ||
| + | |||
| + | Для оценки качества многоклассовых моделей используются: | ||
| + | |||
| + | * [[accuracy]]; | ||
| + | * [[precision]]; | ||
| + | * [[recall]]; | ||
| + | * [[F-мера]]; | ||
| + | * [[матрица ошибок]]; | ||
| + | * Macro Average; | ||
| + | * Micro Average; | ||
| + | * Weighted Average; | ||
| + | * Top-k Accuracy; | ||
| + | * Log Loss. | ||
| + | |||
| + | При сильном дисбалансе классов точность (Accuracy) может быть недостаточно информативной, поэтому обычно дополнительно анализируются Precision, Recall и F-мера. | ||
| + | |||
| + | == Дисбаланс классов == | ||
| + | |||
| + | Во многих практических задачах различные классы представлены неодинаково. | ||
| + | |||
| + | Для борьбы с дисбалансом применяются: | ||
| + | |||
| + | * повторная выборка данных; | ||
| + | * генерация примеров ([[SMOTE]]); | ||
| + | * взвешивание функции потерь; | ||
| + | * Focal Loss; | ||
| + | * ансамблевые методы. | ||
| + | |||
| + | == Современные исследования == | ||
| + | |||
| + | В последние годы исследования сосредоточены на нескольких направлениях. | ||
| + | |||
| + | === Большое число классов === | ||
| + | |||
| + | В задачах поиска изображений и интернет-каталогов число классов может достигать миллионов. Для таких случаев разрабатываются иерархические Softmax, Approximate Nearest Neighbor и методы поиска по эмбеддингам. | ||
| + | |||
| + | === Few-shot и Zero-shot классификация === | ||
| + | |||
| + | Современные модели способны распознавать новые категории по небольшому числу примеров (Few-shot Learning) либо исключительно по текстовому описанию (Zero-shot Learning). | ||
| + | |||
| + | Наиболее известными моделями являются [[CLIP]] и последующие мультимодальные архитектуры. | ||
| + | |||
| + | === Самообучение === | ||
| + | |||
| + | Всё большую популярность приобретают методы [[самообучение|самообучения]], позволяющие предварительно обучать представления без разметки, после чего выполнять многоклассовую классификацию с небольшим количеством размеченных данных. | ||
| + | |||
| + | === Калибровка вероятностей === | ||
| + | |||
| + | Одной из актуальных задач является получение хорошо откалиброванных вероятностей. Наиболее распространены методы Temperature Scaling, Platt Scaling и Isotonic Regression. | ||
| + | |||
| + | == Области применения == | ||
| + | |||
| + | Многоклассовая классификация используется в: | ||
| + | |||
| + | * [[компьютерное зрение|компьютерном зрении]]; | ||
| + | * [[обработка естественного языка|обработке естественного языка]]; | ||
| + | * [[медицинская диагностика|медицинской диагностике]]; | ||
| + | * [[биоинформатика|биоинформатике]]; | ||
| + | * анализе спутниковых изображений; | ||
| + | * промышленном контроле качества; | ||
| + | * рекомендательных системах; | ||
| + | * робототехнике; | ||
| + | * финансовом анализе; | ||
| + | * обнаружении вредоносного программного обеспечения. | ||
== См. также == | == См. также == | ||
| - | * [[ | + | * [[Машинное обучение]] |
| - | + | ||
* [[Обучение с учителем]] | * [[Обучение с учителем]] | ||
| + | * [[Бинарная классификация]] | ||
| + | * [[Логистическая регрессия]] | ||
| + | * [[Метод опорных векторов]] | ||
| + | * [[Дерево решений]] | ||
| + | * [[Случайный лес]] | ||
* [[Глубокое обучение]] | * [[Глубокое обучение]] | ||
| - | * [[ | + | * [[Кросс-энтропия]] |
* [[Матрица ошибок]] | * [[Матрица ошибок]] | ||
| - | |||
== Примечания == | == Примечания == | ||
| - | + | {{примечания}} | |
== Литература == | == Литература == | ||
| - | {{ | + | * {{статья |
| - | |автор= | + | | автор = Bishop C. M. |
| - | |заглавие=Pattern Recognition and Machine Learning | + | | заглавие = Pattern Recognition and Machine Learning |
| - | | | + | | язык = en |
| - | |издательство=Springer | + | | издательство = Springer |
| - | |год=2006 | + | | год = 2006 |
| - | }} | + | }} |
| + | |||
| + | * {{книга | ||
| + | | автор = Hastie T., Tibshirani R., Friedman J. | ||
| + | | заглавие = The Elements of Statistical Learning | ||
| + | | издание = 2-е | ||
| + | | издательство = Springer | ||
| + | | год = 2009 | ||
| + | | язык = en | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | | автор = Rifkin R., Klautau A. | ||
| + | | заглавие = In Defense of One-vs-All Classification | ||
| + | | издание = Journal of Machine Learning Research | ||
| + | | год = 2004 | ||
| + | | том = 5 | ||
| + | | страницы = 101–141 | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | | автор = Dietterich T., Bakiri G. | ||
| + | | заглавие = Solving Multiclass Learning Problems via Error-Correcting Output Codes | ||
| + | | издание = Journal of Artificial Intelligence Research | ||
| + | | год = 1995 | ||
| + | | том = 2 | ||
| + | | страницы = 263–286 | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | | автор = Deng J., Dong W., Socher R., Li L.-J., Li K., Fei-Fei L. | ||
| + | | заглавие = ImageNet: A Large-Scale Hierarchical Image Database | ||
| + | | издание = CVPR | ||
| + | | год = 2009 | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | | автор = He K., Zhang X., Ren S., Sun J. | ||
| + | | заглавие = Deep Residual Learning for Image Recognition | ||
| + | | издание = CVPR | ||
| + | | год = 2016 | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | | автор = Radford A. и др. | ||
| + | | заглавие = Learning Transferable Visual Models From Natural Language Supervision | ||
| + | | издание = ICML | ||
| + | | год = 2021 | ||
| + | }} | ||
| + | |||
| + | * {{статья | ||
| + | | автор = Guo C., Pleiss G., Sun Y., Weinberger K. | ||
| + | | заглавие = On Calibration of Modern Neural Networks | ||
| + | | издание = ICML | ||
| + | | год = 2017 | ||
| + | }} | ||
| - | {{ | + | * {{статья |
| - | |автор= | + | | автор = Lin T.-Y., Goyal P., Girshick R., He K., Dollár P. |
| - | |заглавие= | + | | заглавие = Focal Loss for Dense Object Detection |
| - | + | | издание = ICCV | |
| - | | | + | | год = 2017 |
| - | |год= | + | }} |
| - | }} | + | |
| - | {{ | + | * {{cite web |
| - | | | + | | url = https://scikit-learn.org/stable/modules/multiclass.html |
| - | | | + | | title = Multiclass and Multioutput Algorithms |
| - | | | + | | website = scikit-learn |
| - | | | + | | language = en |
| - | | | + | | access-date = 2026-06-30 |
| - | + | }} | |
| - | }} | + | |
| - | {{ | + | * {{cite web |
| - | | | + | | url = https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html |
| - | | | + | | title = CrossEntropyLoss |
| - | | | + | | website = PyTorch Documentation |
| - | | | + | | language = en |
| - | | | + | | access-date = 2026-06-30 |
| - | }} | + | }} |
| - | {{ | + | * {{cite web |
| - | | | + | | url = https://keras.io/api/losses/probabilistic_losses/ |
| - | | | + | | title = Probabilistic Losses |
| - | | | + | | website = Keras Documentation |
| - | | | + | | language = en |
| - | }} | + | | access-date = 2026-06-30 |
| + | }} | ||
Текущая версия
| | Статья написана с использованием LLM ChatGPT 5.5 и проверена участником Liliia Davletova |
Содержание |
Многоклассовая классификация
Многоклассовая классификация — задача машинного обучения, в которой требуется отнести каждый объект к одному из трёх и более взаимоисключающих классов на основании наблюдаемых признаков. Является одним из фундаментальных разделов обучения с учителем и применяется в компьютерном зрении, обработке естественного языка, биоинформатике, медицинской диагностике, рекомендательных системах и других областях.
В отличие от бинарной классификации, где возможны только два класса, при многоклассовой классификации алгоритм выбирает один класс из множества возможных. Примерами являются распознавание рукописных цифр (10 классов), классификация видов растений, определение языка текста или диагностика заболевания по нескольким категориям.
Постановка задачи
Пусть задано множество объектов
где — вектор признаков, а
— номер одного из классов.
Требуется построить функцию
которая минимизирует вероятность ошибки на новых данных.
Во многих современных алгоритмах модель оценивает вероятности принадлежности объекта каждому классу
после чего выбирается класс с максимальной вероятностью:
История
Первые методы многоклассовой классификации появились в статистической теории распознавания образов в середине XX века. Существенный вклад внесли работы по линейному дискриминантному анализу, логистической регрессии и байесовским классификаторам.
В 1990-х годах широкое распространение получили методы, основанные на методе опорных векторов, для которых были предложены схемы сведения многоклассовой задачи к нескольким бинарным задачам.
С начала 2010-х годов доминирующими стали методы глубокого обучения, использующие многослойные нейронные сети и функцию потерь Softmax с кросс-энтропией.
Основные подходы
Прямые многоклассовые модели
Некоторые алгоритмы непосредственно оптимизируют многоклассовую постановку:
- многономиальная логистическая регрессия;
- деревья решений;
- случайный лес;
- градиентный бустинг;
- нейронные сети;
- наивный байесовский классификатор.
В нейронных сетях обычно используется последний слой Softmax, который преобразует выходы модели в вероятностное распределение по классам.
Сведение к бинарной классификации
Для алгоритмов, ориентированных на бинарные задачи, применяются специальные схемы.
One-vs-Rest
Каждый классификатор обучается отличать один класс от всех остальных.
Преимущества:
- простота реализации;
- небольшое число моделей (
).
Недостатки:
- возможен сильный дисбаланс классов;
- вероятности различных моделей плохо согласованы между собой.
One-vs-One
Строится отдельный классификатор для каждой пары классов.
Количество моделей составляет
Итоговое решение принимается голосованием либо агрегированием вероятностей.
Error-Correcting Output Codes
Метод использует кодирование классов длинными двоичными кодами, что позволяет повысить устойчивость к ошибкам отдельных бинарных классификаторов.
Методы машинного обучения
Логистическая регрессия
Многономиальная логистическая регрессия моделирует вероятности всех классов одновременно посредством функции Softmax. Благодаря выпуклой оптимизации является одним из наиболее интерпретируемых методов.
Метод опорных векторов
Классический метод опорных векторов первоначально был разработан для бинарной классификации. Для многоклассовых задач обычно используются схемы One-vs-One, One-vs-Rest либо специализированные многоклассовые постановки.
Деревья решений
Деревья решений разбивают пространство признаков на области, соответствующие различным классам. Они легко интерпретируются и способны учитывать нелинейные зависимости.
Ансамблевые методы
Случайный лес и градиентный бустинг являются одними из наиболее успешных классических алгоритмов. Они эффективно работают с табличными данными и устойчивы к шуму.
Глубокие нейронные сети
Современные нейронные сети являются стандартом де-факто для задач компьютерного зрения и обработки естественного языка. Архитектуры CNN, Transformer и Vision Transformer позволяют классифицировать тысячи категорий с высокой точностью.
Функции потерь
Наиболее распространённой является категориальная кросс-энтропия:
Для несбалансированных данных применяются:
- Focal Loss;
- взвешенная кросс-энтропия;
- Label Smoothing;
- Balanced Softmax.
Оценка качества
Для оценки качества многоклассовых моделей используются:
- accuracy;
- precision;
- recall;
- F-мера;
- матрица ошибок;
- Macro Average;
- Micro Average;
- Weighted Average;
- Top-k Accuracy;
- Log Loss.
При сильном дисбалансе классов точность (Accuracy) может быть недостаточно информативной, поэтому обычно дополнительно анализируются Precision, Recall и F-мера.
Дисбаланс классов
Во многих практических задачах различные классы представлены неодинаково.
Для борьбы с дисбалансом применяются:
- повторная выборка данных;
- генерация примеров (SMOTE);
- взвешивание функции потерь;
- Focal Loss;
- ансамблевые методы.
Современные исследования
В последние годы исследования сосредоточены на нескольких направлениях.
Большое число классов
В задачах поиска изображений и интернет-каталогов число классов может достигать миллионов. Для таких случаев разрабатываются иерархические Softmax, Approximate Nearest Neighbor и методы поиска по эмбеддингам.
Few-shot и Zero-shot классификация
Современные модели способны распознавать новые категории по небольшому числу примеров (Few-shot Learning) либо исключительно по текстовому описанию (Zero-shot Learning).
Наиболее известными моделями являются CLIP и последующие мультимодальные архитектуры.
Самообучение
Всё большую популярность приобретают методы самообучения, позволяющие предварительно обучать представления без разметки, после чего выполнять многоклассовую классификацию с небольшим количеством размеченных данных.
Калибровка вероятностей
Одной из актуальных задач является получение хорошо откалиброванных вероятностей. Наиболее распространены методы Temperature Scaling, Platt Scaling и Isotonic Regression.
Области применения
Многоклассовая классификация используется в:
- компьютерном зрении;
- обработке естественного языка;
- медицинской диагностике;
- биоинформатике;
- анализе спутниковых изображений;
- промышленном контроле качества;
- рекомендательных системах;
- робототехнике;
- финансовом анализе;
- обнаружении вредоносного программного обеспечения.
См. также
- Машинное обучение
- Обучение с учителем
- Бинарная классификация
- Логистическая регрессия
- Метод опорных векторов
- Дерево решений
- Случайный лес
- Глубокое обучение
- Кросс-энтропия
- Матрица ошибок
Примечания
Литература
- Bishop C. M. Pattern Recognition and Machine Learning. — Springer, 2006.
- Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. — 2-е. — Springer, 2009.
- Rifkin R., Klautau A. In Defense of One-vs-All Classification // Journal of Machine Learning Research. — 2004. — Т. 5. — С. 101–141.
- Dietterich T., Bakiri G. Solving Multiclass Learning Problems via Error-Correcting Output Codes // Journal of Artificial Intelligence Research. — 1995. — Т. 2. — С. 263–286.
- Deng J., Dong W., Socher R., Li L.-J., Li K., Fei-Fei L. ImageNet: A Large-Scale Hierarchical Image Database // CVPR. — 2009.
- He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition // CVPR. — 2016.
- Radford A. и др. Learning Transferable Visual Models From Natural Language Supervision // ICML. — 2021.
- Guo C., Pleiss G., Sun Y., Weinberger K. On Calibration of Modern Neural Networks // ICML. — 2017.
- Lin T.-Y., Goyal P., Girshick R., He K., Dollár P. Focal Loss for Dense Object Detection // ICCV. — 2017.

