我尝试构建一个策略梯度 RL 机器,让我们看看 REINFORCE 的方程,它通过采用梯度进行上升来更新模型参数(如果符号有点不合常规,我深表歉意):
我不确定的问题如下:
- 我是否在每个时间步计算梯度值 (如以 SGD 方式)或在情节的所有时间步长上平均梯度是更好的选择?
- 我是否只关心获取所选动作概率输出的梯度值(在离散情况下忽略其他动作的输出)?换句话说,我是否考虑 非选定动作的术语为 0,这使得梯度值也等于 0?
在离散情况下,交叉熵(损失)定义为:
(来源:维基百科)
这是否意味着如果我替换标签(表示为 ) 与 在我的神经网络训练中,术语(仅对选定动作非零),我将获得完全满足 REINFORCE 定义的对数损失的正确梯度值?