Реализация градиента политики при большом количестве выходных классов - PullRequest
0 голосов
/ 22 февраля 2019

Мне известен этот хитрый способ реализации градиента политики (см. Его для справки: Обучение усилению ).В частности, определяется категориальная кросс-энтропия H(p, q) = sum(p_i * log(q_i)).Для предпринятых действий a мы можем установить p_a = advantage * [index of action a in 1-hot-vector representation].Между тем, q_a является выходом сети политики, которая представляет собой вероятность совершения действия a, то есть policy(s, a).

Однако, когда классы вывода огромны (например, как в машинеперевод или языковое моделирование), я просто не могу сначала преобразовать вывод в один горячий вектор, используя функцию to_categorical(output, num_classes=output_class) в кератах.

Из-за этого я не могу применить трюк для вычисления p_a.

Итак, как реализовать градиент политики в этом случае?

Надеюсь, я четко сформулирую свой вопрос!

...