Return 神经网络中动作集 space 的分布
Return distribution over set of action space from Neural Network
我正在尝试构建一个神经网络来输出整个动作集的概率分布 space。
我的操作 space 是 3 个单独操作的矢量:[a,b,c]
a
本身可以有 3 个可能的动作 a1,a2,a3
,类似地 b
有 b1,b2,b3
,c
有 c1,c2,c3
。所以我总共可以有 27 种不同的这些动作组合 3^3 = 27
。最终神经网络应该输出这些动作的 27 种组合(这是一个 27 x 3 的矩阵):[[a1,b1,c1],[a2,b2,c2],[a3,b3,c3],[a1,b1,c2],[a1,b1,c3],.....]
等等所有 27 种组合。只需提及我网络的输入是一个状态,它是 5 个元素的向量。
我想要与这 27 种组合中的每一种相关联的概率。
我知道我可以通过使用具有 27 个输出的 softmax 来关联概率,但我不明白在这种情况下网络如何输出矩阵,其中每一行都有一个与之关联的概率。
您是否有任何理由希望它 return 这些操作的矩阵?为什么不将 27 种组合中的每一种都映射到整数 0-26?所以你的架构可能看起来像 [Linear(5, n), ReLU, Linear(n, .) ... Softmax(Linear(., 27))]
。然后当你需要评估时,你可以将它映射回动作序列。这类似于在 NLP 任务中如何通过 stoi
将多维词向量映射到整数进行训练并通过 itos
.
将它们带回来
我应该指出,如果您的训练范式涉及对这些离散选择的进一步使用(假设您使用另一个网络上游的 argmax
),那么 argmax
的不可微性意味着这个架构不会学到任何东西。我之所以提到这一点,是因为您使用了 DRL 中典型的短语 "action space"。如果是这种情况,您可能需要考虑像 REINFORCE 这样的算法,其中可以离散地学习动作序列并通过策略梯度在上游使用。
我正在尝试构建一个神经网络来输出整个动作集的概率分布 space。
我的操作 space 是 3 个单独操作的矢量:[a,b,c]
a
本身可以有 3 个可能的动作 a1,a2,a3
,类似地 b
有 b1,b2,b3
,c
有 c1,c2,c3
。所以我总共可以有 27 种不同的这些动作组合 3^3 = 27
。最终神经网络应该输出这些动作的 27 种组合(这是一个 27 x 3 的矩阵):[[a1,b1,c1],[a2,b2,c2],[a3,b3,c3],[a1,b1,c2],[a1,b1,c3],.....]
等等所有 27 种组合。只需提及我网络的输入是一个状态,它是 5 个元素的向量。
我想要与这 27 种组合中的每一种相关联的概率。
我知道我可以通过使用具有 27 个输出的 softmax 来关联概率,但我不明白在这种情况下网络如何输出矩阵,其中每一行都有一个与之关联的概率。
您是否有任何理由希望它 return 这些操作的矩阵?为什么不将 27 种组合中的每一种都映射到整数 0-26?所以你的架构可能看起来像 [Linear(5, n), ReLU, Linear(n, .) ... Softmax(Linear(., 27))]
。然后当你需要评估时,你可以将它映射回动作序列。这类似于在 NLP 任务中如何通过 stoi
将多维词向量映射到整数进行训练并通过 itos
.
我应该指出,如果您的训练范式涉及对这些离散选择的进一步使用(假设您使用另一个网络上游的 argmax
),那么 argmax
的不可微性意味着这个架构不会学到任何东西。我之所以提到这一点,是因为您使用了 DRL 中典型的短语 "action space"。如果是这种情况,您可能需要考虑像 REINFORCE 这样的算法,其中可以离散地学习动作序列并通过策略梯度在上游使用。