-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
S effortT-shirt effort weighing: ST-shirt effort weighing: SbugSomething isn't workingSomething isn't workinglow priorityNice to have but not crucialNice to have but not crucial
Description
Description
- When optimizing for Recall (minimizing FNR), only label positive samples are considered for computing the loss or its gradient;
- However, passing a gradient of zero for all label negatives leads to weird behavior in the
GBM::Trainfunction; - So, for now, we're scaling down the gradient of all label negatives by multiplying them with a tiny positive number: see the
label_negative_weightinConstrainedRecallObjective::GetGradients;- This shouldn't be needed, but seems to temporarily fix the issue with no unintended consequences (as the gradient flowing is very small);
Reproducible example
- Omit the else clause in
ConstrainedRecallObjective::GetGradients, which deals with label negative samples, and in theory should not be needed for optimizing for recall; - Compile and run, and observe weird "-inf split" messages, which can lead to training stopping too early;
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
S effortT-shirt effort weighing: ST-shirt effort weighing: SbugSomething isn't workingSomething isn't workinglow priorityNice to have but not crucialNice to have but not crucial