我使用不同的解决方案解决了这个问题,但我发现编码是解决我问题的最佳解决方案
- 选择具有预先估计最大状态空间的模型,如果
状态空间小于最大状态,我们填充了状态
带零的空格
- 仅考虑代理本身的状态,而不考虑任何共享
另一个州。
- 正如论文
[1] 提到的,额外连接的自治
车辆(CAV)不包括在该州内,如果它们更少
比最大 CAV 值,状态用零填充。我们可以选择如何
许多代理,我们可以分享他们的状态添加到代理的
状态。
-
编码状态,它将帮助我们处理输入并将信息压缩为固定长度。在编码器中,每个
LSTM 层中的单元格或带有门控循环单元 (GRU) 的 RNN
返回隐藏状态 (Ht) 和单元状态 (E't)。
对于编码器,我使用Neural machine translation with attention code
class Encoder(tf.keras.Model):
def __init__(self, vocab_size, embedding_dim, enc_units, batch_sz):
super(Encoder, self).__init__()
self.batch_sz = batch_sz
self.enc_units = enc_units
self.embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim)
self.gru = tf.keras.layers.GRU(self.enc_units,
return_sequences=True,
return_state=True,
recurrent_initializer='glorot_uniform')
def call(self, x, hidden):
x = self.embedding(x)
output, state = self.gru(x, initial_state = hidden)
return output, state
def initialize_hidden_state(self):
return tf.zeros((self.batch_sz, self.enc_units))
-
LSTM 零填充和掩码,我们用一个特殊值填充状态,以便稍后屏蔽(跳过)。如果我们在没有掩码的情况下进行填充,则
填充值将被视为实际值,因此,它成为噪声
在状态 [2-4]。
1- Vinitsky, E., Kreidieh, A., Le Flem, L., Kheterpal, N., Jang, K., Wu, C., ... & Bayen, A. M.(2018 年 10 月)。混合自治交通中强化学习的基准。在机器人学习会议上(第 399-409 页)
2- Kochkina, E.、Liakata, M. 和 Augenstein, I. (2017)。图灵在 semeval-2017 任务 8:使用分支 lstm 进行谣言立场分类的顺序方法。 arXiv 预印本 arXiv:1704.07221。
3- Ma, L. 和 Liang, L. (2020)。增强 CNN 对具有可变长度的 12 导联心电图分类的噪声鲁棒性。 arXiv 预印本 arXiv:2008.03609。
4-How to feed LSTM with different input array sizes?
5- Zhao, X., Xia, L., Zhang, L., Ding, Z., Yin, D., & Tang, J.(2018 年 9 月)。用于页面推荐的深度强化学习。在第 12 届 ACM 推荐系统会议论文集中(第 95-103 页)。