Dam*_*aut 8 machine-learning neural-network conv-neural-network rnn
我正在尝试使用本文https://arxiv.org/abs/1712.01815中描述的方法来使算法学习新游戏。
只有一个问题不能直接适合这种方法。我尝试学习的游戏没有固定的棋盘尺寸。因此,当前输入张量的尺寸为m*n*11,其中m和n是游戏板的尺寸,并且每次玩游戏时都可以变化。因此,首先,我需要一个能够利用这种变化的输入大小的神经网络。
输出的大小也是电路板大小的函数,因为它具有一个向量,其中包含电路板上每个可能移动的条目,因此,如果电路板大小增加,输出向量将更大。
我已经读过递归和递归神经网络,但是它们似乎都与NLP有关,我不确定如何将其转化为我的问题。
任何能够处理我的案例的关于NN体系结构的想法都将受到欢迎。
你需要的是指针网络(https://arxiv.org/abs/1506.03134)
这是一篇关于它的文章的引言:
指针网络是一种新的神经架构,可以学习指向输入序列中位置的指针。这是新的,因为现有技术需要有固定数量的目标类,这通常不适用——考虑旅行商问题,其中类的数量等于输入的数量。另一个例子是对可变大小的序列进行排序。- https://finbarr.ca/pointer-networks/
它是一个基于注意力的模型。
本质上,指针网络用于预测指向输入的指针,这意味着您的输出层实际上不是固定的,而是可变的。
我使用它们的一个用例是将原始文本转换为 SQL 查询。
像这样的原始文本的问题在于它只对特定表格有意义(在这种情况下,汽车表格具有一组围绕汽车销售的变量,类似于您用于棋盘游戏的不同棋盘)。意思是,如果问题不能是唯一的输入。所以实际进入指针网络的输入是-
输入 -
所有这些都附加在一起。
然后输出层简单地指向输入的特定索引。它指向 Country 和 Year(来自元数据中的列名),它指向 US 和 1983(来自分类列词汇表中的标记),它指向来自输入的 SQL 语法组件的 SELECT、WHERE 等。
这些索引在附加索引中的序列然后用作计算图的输出,并使用作为 WIKISQL 数据集存在的训练数据集进行优化。
您的情况非常相似,您需要将输入、游戏元数据以及您需要的内容作为附加索引作为输出的一部分传递。然后指针网络简单地从输入中进行选择(指向它们)。