x элементов из (0,1).
Каждому такому вектору соответствует другой вектор из множества M состоящий из y элементов из (0,1).
Количество элементов M всегда меньше количества элементов N, т.е. нескольким векторам из N соответствует один вектор из M. Какую модель обучить для установления соответствия вектору из M при добавлении нового вектора в N?
Тут вопрос: сколько у тебя базово векторов в М. Потому что похоже на классификацию, только количество классов у тебя разумное? Или оно будет постоянно меняться?
Забыл ещё один момент указать, количество единиц во всех векторах из M фиксированное (z) и всегда меньше y. Размер N сотни тысяч. Размер M тысячи и далее будет единично пополняться. Я пробовал обучить полносвязную сеть с x входами и y выходами, с округлением z выходов с наибольшей вероятностью до 1 и обнулением всех остальных. После вычислял ошибку. В целом не прокатило.
Получается, вы софтмакс в конце делали? А если сигмоиду попробовать и для каждой координаты решать, 1 она или 0, отдельно? Правда, с ограничением на количество тогда не получается
Модель делал в pytorch, на выходе как раз сигмоиду применял. BCEloss для вычисления ошибки.
Насколько я Вас понял, binaryCEloss вообще не подойдет. Вам нужно (без округления во время обучения) вычислять ошибку "близости" y-мерных векторов. Попробуйте что-то вроде MSEloss хотя бы.
Обсуждают сегодня