哪种类型的神经网络可以处理可变的输入和输出大小?

Dam*_*aut 8 machine-learning neural-network conv-neural-network rnn

我正在尝试使用本文https://arxiv.org/abs/1712.01815中描述的方法来使算法学习新游戏。

只有一个问题不能直接适合这种方法。我尝试学习的游戏没有固定的棋盘尺寸。因此,当前输入张量的尺寸为m*n*11,其中m和n是游戏板的尺寸,并且每次玩游戏时都可以变化。因此,首先,我需要一个能够利用这种变化的输入大小的神经网络。

输出的大小也是电路板大小的函数,因为它具有一个向量,其中包含电路板上每个可能移动的条目,因此,如果电路板大小增加,输出向量将更大。

我已经读过递归和递归神经网络,但是它们似乎都与NLP有关,我不确定如何将其转化为我的问题。

任何能够处理我的案例的关于NN体系结构的想法都将受到欢迎。

Aks*_*gal 6

你需要的是指针网络(https://arxiv.org/abs/1506.03134

这是一篇关于它的文章的引言:

指针网络是一种新的神经架构,可以学习指向输入序列中位置的指针。这是新的,因为现有技术需要有固定数量的目标类,这通常不适用——考虑旅行商问题,其中类的数量等于输入的数量。另一个例子是对可变大小的序列进行排序。- https://finbarr.ca/pointer-networks/

它是一个基于注意力的模型。

本质上,指针网络用于预测指向输入的指针,这意味着您的输出层实际上不是固定的,而是可变的。

我使用它们的一个用例是将原始文本转换为 SQL 查询。

  • 输入:“1983 年美国销售了多少汽车”
  • 输出:SELECT COUNT(Car_id) FROM Car_table WHERE (Country='US' AND Year=='1983')

像这样的原始文本的问题在于它只对特定表格有意义(在这种情况下,汽车表格具有一组围绕汽车销售的变量,类似于您用于棋盘游戏的不同棋盘)。意思是,如果问题不能是唯一的输入。所以实际进入指针网络的输入是-

输入 -

  1. 询问
  2. 表的元数据(列名)
  3. 所有分类列的标记词汇
  4. SQL 语法中的关键字(SELECT、WHERE 等)

所有这些都附加在一起。

然后输出层简单地指向输入的特定索引。它指向 Country 和 Year(来自元数据中的列名),它指向 US 和 1983(来自分类列词汇表中的标记),它指向来自输入的 SQL 语法组件的 SELECT、WHERE 等。

这些索引在附加索引中的序列然后用作计算图的输出,并使用作为 WIKISQL 数据集存在的训练数据集进行优化。

您的情况非常相似,您需要将输入、游戏元数据以及您需要的内容作为附加索引作为输出的一部分传递。然后指针网络简单地从输入中进行选择(指向它们)。


bol*_*old 0

您需要回到固定的输入/输出问题。

应用于图像/时间序列时解决此问题的常见方法是使用滑动窗口来缩小尺寸。也许这可以应用到你的游戏中。