Skip to content
This repository has been archived by the owner on May 21, 2024. It is now read-only.

Compute policy gradient using cross entropy loss #10

Open
weiliu620 opened this issue Oct 11, 2017 · 2 comments
Open

Compute policy gradient using cross entropy loss #10

weiliu620 opened this issue Oct 11, 2017 · 2 comments

Comments

@weiliu620
Copy link

weiliu620 commented Oct 11, 2017

This is not an issue of the code per se, but I am learning RL and am wondering how the policy gradient is calculated in pg_reinforce.py. In this line

self.cross_entropy_loss = tf.nn.sparse_softmax_cross_entropy_with_logits(
logits=self.logprobs, labels=self.taken_actions)

A loss defined as the cross entropy between the action distribution from policy, and the actual action taken. But standard text such as Sutton define the policy gradient in the the REINFORCE algorithm simply as the 'log grad' of the policy function.

What is the difference of the two definitions? It seems cross entropy loss is a more general definition because it includes not just the action taken but all remaining actions. Can you give a reference of your method?

This is great project. Thank you for sharing this.

@Utsavz
Copy link

Utsavz commented Dec 13, 2017

Did you get an answer? @weiliu620 Currently I am learning RL. Please help

@luofuli
Copy link

luofuli commented Jan 6, 2019

@Utsavz @weiliu620

  • The 'log grad' of the policy function is the log(p(x)).
  • The loss function of cross-entropy is \sum q * log(p).

These two are the same because q is a one-hot vector (the index of x is 1, others are 0). That's is two say,when the q is a one-hot vector, \sum q * log(p) = log(p(x)), where x refers to the sampled example.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants