PyTorch: обучение разделению на два класса: это и не это. Как такое сделать?
Допустим я хочу обучить сетку делить данные на два класса. Первый класс это то, что нужно. И второй класс это все прочее. Есть понятные мне варианты:
Сделать бинарную функцию активации: когда x > 0 - это то, что нужно. А те значения, что меньше нуля, те не нужные.
Сделать, чтобы сетка на все нужное выдавала 1, а на все не нужное выдавала 0.
Но тут у меня возник в голове еще один вариант, которые пока не знаю как сделать. Делить значения на нужные и не нужные. При этом, нужные приравниваются скажем 1, а не нужные принимают любое другое значение подальше от 1. Т.е. для не нужных увеличивать ошибку, но не обязательно, скажем делать их всех меньше - просто подальше от 1.
При обучении сетки нужному, изменение весов считается как квадратичная ошибка на производную с обратным знаком. Вроде так было.
А для не нужных значений, получается нужно менять веса по принципу, что ошибка будет квадратичной дистацией до некоторой максимальной границы подальше от 1, за которой уже можно не беспокоится о не нужном значении.
Как такая штука называется в нейросеточной науке? И есть ли для этого типовая функция потерь в PyTorch, или как это проще сделать?