Нейронная сеть Pytorch - потеря вычислений / обратное распространение для одного узла вывода - PullRequest
0 голосов
/ 15 марта 2019

Я новичок в Pytorch и ML в целом, поэтому надеялся получить здесь совет для моей ситуации. У меня есть нейронная сеть с несколькими выходными узлами, представляющая варианты, которые агент может использовать, чтобы попытаться получить вознаграждение. Цель состоит в том, чтобы нейронная сеть предсказывала ожидаемую стоимость выбора каждого варианта.

Что меня смущает в моей ситуации, так это то, что в большинстве учебников, которые я читаю онлайн, данные обучения содержат цель для каждого выходного узла. Однако, поскольку мой агент получил вознаграждение только за выполненные действия, я знаю цель только для одного выходного узла. Каков предпочтительный / эффективный способ обработки обратного распространения только для одного выходного узла?

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

...