У меня проблема классификации по нескольким меткам.У меня 11 классов, около 4к примеров.Каждый пример может иметь от 1 до 4-5 меток.В данный момент я тренирую классификатор отдельно для каждого класса с log_loss.Как вы можете ожидать, обучение 11 классификатора занимает довольно много времени, и я хотел бы попробовать другой подход и обучить только 1 классификатору.Идея состоит в том, что последний слой этого классификатора будет иметь 11 узлов и будет выводить действительное число по классам, которое будет преобразовано в пробу сигмоидом.Потери, которые я хочу оптимизировать, являются средним значением log_loss для всех классов.
К сожалению, я какой-то нуб с pytorch, и даже читая исходный код потерь, я не могу понять, выполняет ли одна из уже существующих потерь именно то, что я хочу, или еслиЯ должен создать новую потерю, и если это так, я не знаю, как это сделать.
Чтобы быть очень конкретным, я хочу дать для каждого элемента партии один вектор размером 11(который содержит действительное число для каждой метки (чем ближе к бесконечности, тем ближе этот класс к 1) и 1 вектору размера 11 (который содержит 1 на каждой истинной метке), и может вычислять среднее значениеlog_loss на всех 11 ярлыках и оптимизировать мой классификатор на основе этой потери.
Любая помощь будет принята с благодарностью :)