如何使用神经网络处理不断变化的输入向量长度

机器算法验证 机器学习 神经网络 特征选择 自然语言
2022-03-13 21:55:49

我想训练一个以字符序列作为输入向量的神经网络。学习示例有不同的长度,因此我不知道如何表示它们。

假设我有两个序列示例,这里是名称:

john doe
maurice delanoe

第一个示例的长度为 8,第二个示例的长度为 15。

有没有办法学习这两个例子?意思是在同一个学习系统中同时使用大小为 8 和 15 的输入向量。

谢谢你的帮助 !

1个回答

对于具有不同输入大小的 NN,我可以想到三种通用策略:

  1. 预处理输入以保存相同的大小。例如,人们经常将图像大小(忽略纵横比)调整为 NN 的标准正方形分辨率。在语言情况下,如果有意义,您可以将所有单词转换为符号表示(例如“john”=1、“james”=2、“maurice”=3、“kelly”=4、“doe”=5)在您的应用程序中。
  2. 使用滑动窗口。网络可以看到输入的固定大小部分,然后您以固定的步幅滑动窗口并再次运行(从头开始),重复直到结束,然后以某种方式组合所有输出。
  3. 与 #2 相同,但使用循环神经网络,以便网络具有在每个步幅之间传递的一些内部状态。例如,这就是神经网络处理语音音频的方式。显然,与其他选项相比,这是对体系结构的一个更显着的变化,但对于许多语言任务来说,这可能是必要的(如果您有很长的输入并且需要以复杂的方式跨字符串组合信息)。