`BCEWithLogitsLoss` и дисбаланс наборов данных учебного класса в Pytorch - PullRequest
0 голосов
/ 15 февраля 2019

Немного разъяснений по поводу BCEWithLogitsLoss у Pytorch: я использую: pos_weights = torch.tensor([len_n/(len_n + len_y), len_y/(len_n + len_y)]) для инициализации потери, с [1.0, 0.0], являющимся отрицательным классом, и [0.0, 1.0], являющимся положительным классом, и len_n, len_y - соответственно длина отрицательных и положительных образцов.

Причина использования BCEWithLogitsLoss в первую очередь именно потому, что я предполагаю, что он компенсирует дисбаланс между количеством положительных и отрицательных выборок, избегая того, чтобы сеть просто «по умолчанию» переходила к наиболее распространенному классу.введите учебный набор.Я хочу контролировать приоритеты потерь при правильном определении менее богатого класса.В моем случае отрицательные выборки поездов превышают положительные выборки в 25–1 раза, поэтому очень важно, чтобы сеть правильно прогнозировала большую долю положительных выборок, а не имела высокую общую скорость прогнозирования (даже если значение по умолчанию всегда было отрицательным, это привело бы к 96% прогнозированию, если бы я только заботился об этом).

Вопрос Правильно ли мое предположение о BCEWithLogitsLoss с использованием параметра pos_weights для контроля дисбалансов в классе обучения?Любое понимание того, как дисбаланс учитывается в оценке потерь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...