LSTM 是序列分类的正确实现吗

数据挖掘 分类
2022-02-18 11:34:38

我在两个类别中有 20k 个样本,positivenegative. 样本由 10 位数字组成,在每个样本中,一个数字仅使用一次。例如; 0123456789并且9876543102是正确的样本,因为每个数字都使用一次。数字的顺序是产生样本positive或的原因negative例如,分类语句,positive样本可以有2after 5,但negatives不能。或者更复杂的是,90% 的正样本都有前导 0,而没有一个negatives有这个。对于剩余的 10%,512并且315是使样本呈阳性的模式。

总共有10!=3.6m可能的样本。那么,为了进行二元分类,正确的 ML 方法应该是什么?LSTM 可以处理这个吗?也许是一个具有 10 个输入和二进制分类的原始神经网络?或者我应该寻找不同的机器学习方法?谢谢。

1个回答

所以,据我所知,任务是识别数字的正负序列,遵守一定的规则。

取决于规则本身:例如,如果有少量显式和原始规则(例如每个样本序列必须只有每个数字中的一个),那么将规则硬编码到函数中并通过输入序列可能会更好那个功能。

当您不知道如何将输入转换为输出的规则(函数)时,最好使用机器学习。
如果您不知道规则,那么 LSTM 将是一个好主意,因为它会在对序列进行分类时说明数字序列本身。输入将是数字序列(可能标准化 [即除以最大数字 = 9] 例如 1 将表示为 1/9 等)然后这将是一个多对一架构,您可以在其中输入对整个数字序列进行建模,然后将此输出输入到两个类上的最终 softmax 层,从而为您提供类的概率分布(即该样本为正的可能性有多大?)

不建议使用标准神经网络,因为当您将输入输入神经网络时,数据是并行输入的,并且不考虑数字的顺序,这似乎是您的任务的基础。如果您确实想使用神经网络,您可能会使用位置编码,以便您可以考虑数字的排序(https://medium.com/nlp-trend-and-review-en/positional-embeddings-7b168da36605在自然语言的上下文中,但同样适用于您的问题)。