Я новичок в Pytorch и ML в целом, поэтому надеялся получить здесь совет для моей ситуации. У меня есть нейронная сеть с несколькими выходными узлами, представляющая варианты, которые агент может использовать, чтобы попытаться получить вознаграждение. Цель состоит в том, чтобы нейронная сеть предсказывала ожидаемую стоимость выбора каждого варианта.
Что меня смущает в моей ситуации, так это то, что в большинстве учебников, которые я читаю онлайн, данные обучения содержат цель для каждого выходного узла. Однако, поскольку мой агент получил вознаграждение только за выполненные действия, я знаю цель только для одного выходного узла. Каков предпочтительный / эффективный способ обработки обратного распространения только для одного выходного узла?
(Одна вещь, с которой я экспериментировал, заключается в том, чтобы при обучении устанавливать целевые значения на прогнозируемые значения наблюдаемого входа и обновлять только целевое значение, для которого мы знаем реальное значение. Идея заключается в том, что потеря для другого Выходные узлы должны быть 0, так как для каждого узла цель и прогноз являются одним и тем же значением. Обновление значений таким образом с помощью ручного присваивания y_target[i][output_node] = rewards[i]
, похоже, изменило grad_fn моего целевого тензора с AddmmBackwards на CopySlices, что я не конечно это проблема или нет)