Вопрос или проблема
Цель — это вероятность между N классами, я не хочу, чтобы она предсказывала класс с наивысшей вероятностью, а ‘фактическую’ вероятность для каждого класса.
Например:
| | Класс 1 | Класс 2 | Класс 3 |
------------------------------------
| 1 | 0.9 | 0.05 | 0.05 |
| 2 | 0.2 | 0.8 | 0 |
| 3 | 0.3 | 0.3 | 0.4 |
| 4 | 0.7 | 0 | 0.3 |
------------------------------------
| + | 2.1 | 1.15 | 0.75 | <- как исправить этот дисбаланс?
| >0 | 4 | 3 | 3 | <- или этот?
Некоторые классы имеют ‘больше’ образцов в том смысле, что сумма вероятностей выше, чем у других классов. Должен ли я компенсировать это с помощью весов в функции потерь? Или я должен только исправить дисбаланс в >0, как обычно?
Если у вас несбалансированные классы (например, если у вас 3 класса и 100 примеров класса 1, 1000 примеров класса 2 и 5000 примеров класса 3), то да, я бы взвесил функцию потерь (я бы использовал взвешенную категориальную кросс-энтропию).
Если вы имеете в виду, что некоторые классы имеют более высокую вероятность, чем другие, то это нормальное и ожидаемое поведение. Например, если вы решаете задачу классификации с 10 классами, как на MNIST, и вы пытаетесь предсказать данное изображение, если изображение имеет закругленные участки, то гораздо более вероятно, что это 3 или 8, чем 1.
Ответ или решение
Как взвесить несбалансированные мягкие метки?
В данной статье мы рассмотрим проблему взвешивания несбалансированных мягких меток в задачах многоклассовой классификации, что актуально в условиях несоответствия распределения классов в обучающем наборе данных. Понимание весов для мягких меток критически важно для корректной настройки модели, чтобы она могла правильно интерпретировать и предсказывать вероятности для каждого из классов.
Проблема несбалансированных классов
Когда вы работаете с многоклассовыми задачами, важно учитывать, что некоторые классы могут иметь большее представительство в данных, чем другие. Например, в приведенном вами примере:
| | Class 1 | Class 2 | Class 3 |
------------------------------------
| 1 | 0.9 | 0.05 | 0.05 |
| 2 | 0.2 | 0.8 | 0 |
| 3 | 0.3 | 0.3 | 0.4 |
| 4 | 0.7 | 0 | 0.3 |
------------------------------------
| + | 2.1 | 1.15 | 0.75 |
| >0 | 4 | 3 | 3 |
Из таблицы видно, что сумма вероятностей для различных классов не равномерна. Например, класс 1 имеет значительно больший вес в обучающем наборе (сумма вероятностей 2.1), в то время как класс 3 имеет всего 0.75.
Необходимость и способы взвешивания
Чтобы фактически исправить эту несбалансированность, можно использовать взвешенный кросс-энтропийный критерий. Этот подход позволят корректировать влияние классов на функцию потерь в процессе обучения. Взвешивание классов позволяет контролировать тот факт, что некоторые классы могут быть недостаточно представлены.
-
Использование весов в функции потерь: Используйте метод взвешенной кросс-энтропии, где каждый класс будет иметь соответствующий вес, основанный на его количестве экземпляров. Для выполнения этого шага можно применять формулу:
[
\text{Weighted Loss} = -\sum_{i=1}^{N} w_i \cdot y_i \cdot \log(\hat{y_i})
]
где (w_i) — вес класса, (y_i) — истинные метки, и (\hat{y_i}) — предсказанные вероятности. -
Обработка вероятностей: Важно понимать, что высокие значения вероятностей для некоторых классов могут быть ожидаемыми. Однако, если различия в вероятностях слишком велики, это может указывать на необходимость увеличения весов меньших классов в процессе обучения.
-
Масштабирование вероятностей: В случае, если значение вероятностей для одного или нескольких классов значительно отличается от других, можно использовать методы нормализации, чтобы убедиться, что предсказанные вероятности остаются в диапазоне от 0 до 1 и адекватно отражают степень уверенности модели.
Вывод
В работе с несбалансированными классами ключевым моментом является использование функции потерь с учетом весов классов и внимание к интерпретации вероятностей. Взвешивание классов должно основываться на реальных данных и их распределении, что позволит модели мягко учесть различные классы.
Если вы столкнетесь с ситуацией, где некоторые классы имеют значительные несоответствия в вероятностях, стоит задуматься о перераспределении весов в функции потерь. Такой подход позволит улучшить качество классификации и предсказания для всех классов в вашей модели.
Применение этих методов обеспечит более точное обучение и углубленное понимание динамики вероятностей между классами, что в конечном итоге приведет к созданию более надежной и сбалансированной модели.