← Вернуться к списку

Как рассчитываются веса для потерь на основе взвешенной энтропии при несбалансированных данных?

Краткое содержание

Я пытаюсь построить классификатор, который должен быть обучен с использованием функции потерь кросс-энтропии. Данные для обучения сильно несбалансированы по классам. Чтобы решить эту проблему, я просмотрел рекомендации в документации TensorFlow и теперь использую взвешенную функцию кросс-энтропии, где веса рассчитываются как `weight_for_class_a = (1 / samples_for_class_a) * total_number_of_samples/number_of_classes` следуя упомянутой статье. Это работает идеально, но почему существует этот фактор `total_number_of_samples/number_of_classes`? Упомянутая статья говорит, что это [...] помогает поддерживать величину потерь на аналогичном уровне. Но я не понимаю, почему. Не могли бы вы разъяснить?

Полный текст

Как рассчитываются веса для потерь с взвешенной x-энтропией при несбалансированных данных? Задать вопрос

Задано 5 лет, 8 месяцев назад Изменено сегодня Просмотрено 2 тыс. раз

Задано 5 лет, 8 месяцев назад

2 $\begingroup$ Я пытаюсь построить классификатор, который нужно обучать с использованием потерь на основе x-энтропии. Данные для обучения сильно несбалансированы по классам. Чтобы решить эту проблему, я изучил рекомендации из документации TensorFlow и теперь использую взвешенную x-энтропийную потерю, где веса рассчитываются как weight\_for\_class\_a = (1 / samples\_for\_class\_a) * total\_number\_of\_samples/number\_of\_classes в соответствии с упомянутой статьей. Это работает идеально, но почему тогда этот фактор total\_number\_of\_samples/number\_of\_classes? Упомянутая статья говорит, что [...] помогает поддерживать величину потерь на сопоставимом уровне. Но я не понимаю, почему. Не мог бы кто-нибудь это разъяснить? машинное обучение классификация наборов данных веса x-энтропия
Поделиться Улучшить этот вопрос Следить за вопросом задан 14 апреля 2020 г. в 10:28 jmatin 21 2 2 бронзовые значки $\endgroup$ Добавить комментарий | 1 Ответ 1 Отсортировано по: Сбросить к значению по умолчанию Наивысший рейтинг (по умолчанию) Измененная дата (новые первыми) Созданная дата (старые первыми) 0 $\begingroup$ Это связано с тем, что вы хотите, чтобы величина потерь была одинаковой. Подумайте об этом так: не взвешенная функция потерь фактически имеет все свои веса равными 1 и, таким образом, образцы в наборе данных имеют вес 1 во всей совокупности, а сумма всех весов равна N, если N - это общее количество образцов. Теперь, когда мы используем взвешенную функцию потерь, мы хотим, чтобы веса также суммировались до N, чтобы величина потерь была сопоставима (i = 1..C являются вашими классами, N\_i является количеством образцов для класса i): $$S = \sum_{i=0\ }^{C} \sum_{s_i=1}^{N_i} w_{i} = \sum_{i=0}^{i}\sum_{s_i=1}^{N_i}\frac{1}{N_i} \frac{N}{C} = \frac{N}{C} \sum_{i=0}^{C}\sum_{s_i=1}^{N_i}\frac{1}{N_i} = \frac{N}{C} \sum_{i=0}^{C}N_i\frac{1}{N_i} = \frac{N}{C} \sum_{i=0}^{C}1 = \frac{N}{C} C = N$$ Поделиться Улучшить этот ответ Следить за ответом ответил 14 апреля 2020 г. в 13:10 ted 276 1 1 серебряный значок 4 4 бронзовые значки $\endgroup$ Добавить комментарий | Вам необходимо войти, чтобы ответить на этот вопрос. Задайте вопрос, чтобы получить ответы Найдите ответ на свой вопрос, задав его. Задайте вопрос Исследуйте связанные вопросы машинное обучение классификация наборов данных веса x-энтропия Смотрите похожие вопросы с этими тегами.