RNN 并非专门用于进行语言建模,它们旨在处理时间序列数据,而语言恰好可以表示为时间序列。有很多论文展示了如何使用 RNN 对时间序列进行分类和回归(很棒的论文列表)。
One-hot 编码通常用于输入是离散的而不是可以直接输入模型的数字的情况。然而,one-hot 编码实际上并不总是语言建模的规范,一些研究实际上将每个字符(或每个单词,取决于如何建模问题)映射到一个唯一的数字标识符(例如id∈{0…n}; 和n词汇表的大小)和模型将该标识符映射到向量表示。当词汇量很大并且您希望避免处理大的 one-encoded 向量时,这特别有用。查看word2vec和word2vec Tensorflow了解更多详情。
在您的情况下,您想要处理传感器数据。无需一次性编码,因为您的数据是连续的和数字的。也就是说,您可以直接输入记录的脑电数据;尽管通常最好事先清理它们并使其正常化。实际上有很多关于使用 RNN 处理 EEG 数据的论文。
无论数据类型如何,将它们输入 RNN 的想法都是一样的:提供数据样本x对于每个时间步t.
对于使用 1 个电极记录 5 个时间步长的 EEG 数据a,您将有一个一维向量,每个时间步有一个样本:
a=[0.12,0.44,0.134,0.39,0.23]
inputvector=[0.12,0.44,0.134,0.39,0.23]
对于使用 3 个电极记录 5 个时间步长的 EEG 数据a,b,c,您将有一个 3 维向量,每个时间步有一个样本:
a=[0.12,0.44,0.134,0.39,0.23]
b=[0.43,0.92,0.3,0.37,0.4]
c=[0.13,0.1,0.4,0.21,0.14]
inputvector=[[0.12,0.43,0.13],[0.44,0.92,0.1],...]
我强烈建议您阅读我上面链接的一些文献。