我是强化学习和深度学习的初学者,我想为DQN代理(在Keras中(构建一个神经网络,该代理接收长度等于3的矢量作为输入,并输出另一个长度等于10的矢量。
输入向量的一个元素等于1,而其他元素等于0。它也可以是全零,但不能有多个值为1的元素。
示例:
[0, 1, 0]
或者:
[0, 0, 0]
输出必须是一个包含10个元素的向量,其中一个元素等于1,所有其他元素的值都等于0。就像输入向量一样,它也可以全为零,但不能有多个值为1的元素。
示例:
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
或者:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
如果输入向量中有"1",则输出向量最多必须有一列值为1。
如果输入向量都是零,那么输出向量的所有值都必须设置为0。
我试图创建一个卷积神经网络,但我遇到的例子将图像(因此是2D矩阵(视为输入,并将一个值作为输出,而不是向量。
DQN强烈基于马尔可夫决策过程,因此状态、行动和奖励的概念必须明确才能定义。
对我来说,您的输入似乎是一个在一个热编码中编码的状态。要为这个问题选择体系结构,您需要提供更多详细信息。例如,它可以是时间序列的LSTM层,也可以是简单的致密层。
DQN中的输出总是单一且连续的值,它表示在某种状态下有多好,并执行一个动作a,称为Q值。对我来说,你所说的输出实际上就是你的行动。
我强烈建议您按照这里的材料来理解马尔可夫决策过程的每个组成部分,然后深入研究DQN方法。