我正在为一个大学项目开发一个简单的游戏,使用统一。这个游戏利用机器学习,所以我需要TensorFlow来建立一个神经网络( NN ),根据神经网络的预测来完成游戏中的某些动作。
特别是我的学习方法是强化学习。我需要监视用C#编码的环境中的状态和回报,并将它们传递给用Python编码的NN。然后,来自Python代码的预测应该被发送回环境到C#代码。
可悲的是,我很困惑如何让C#和Python进行交流。我在网上读了很多书,但什么也帮不了我。有人能澄清我的想法吗?谢谢。
我知道在正常的深度强化学习(DRL)场景中,我们学习了一个深层神经网络来将当前状态映射到Q值。Q值的数目(神经网络输出的#)与可能的动作数相同,因此我们可以根据相关的Q值选择动作。
然而,在本文"基于组合动作空间的深度强化学习预测流行Reddit线程“中,作者使用状态和动作作为输入。网络只输出一个Q值(见下图)。s_t是time的状态,t和a_t^i是time t的i^{\text{th}}操作(您可以忽略这一点,但每个操作都是向量c_t^1到c_t^3的组合)。Q_t只是Q at time t for action i。我想知道为什么只学到一个Q值?如果是这样的话,我们如何确定下一步