我正在研究一个涉及作为时间步序列的样本的二元分类问题。我的模型应该为每个样本的每个时间步提供一个预测, 0或1 。不确定是否相关,但我正在使用 LSTM 和密集的 w/sigmoid 激活函数。我没有得到我期望的结果,我怀疑我的抽样方法。
从标签的角度来看,我的每个样本看起来都像这样:
y = [0,0,0,0,0,0,0,0,...,0,0,0,1,1,1,0,0,0,0,0,0] # usually it possesses around 4000 timesteps
我正在考虑一个正样本是一个包含至少一个标签为1的时间步长的样本。从逻辑上讲,负样本是不包含任何1的样本,其标签向量中仅包含0值。考虑到这一点,我有 1300 个正样本和 6200 个负样本。因此,我的样本中只有大约20%至少有一个我想分类为1的标签,而其余的则完全是0值。然后,我按照通常的做法将我的样本分布在训练、验证和测试集中 - 某种 0.80 - 0.10 - 0.10 - 确保它们之间保持相似百分比的正样本和负样本。
关于我的训练,尽管尝试了批量大小、学习率等的多种配置,但它似乎非常不稳定......我的损失函数和指标“趋于”减少,但它们非常不稳定并且经常突然达到峰值。毫无疑问,调优/优化阶段可能会有一些改进,但我怀疑最大的问题可能不在于这里,而在于采样。该模型仍然能够在训练期间学习一些东西,但我希望它远未达到指标值。
有了这个背景,我想就以下问题获得一些指导:
你对这个问题有什么看法?真的很好奇听到他们的声音!
是的,一个 50 / 50 的平衡训练集是有意义的。
是的,拒绝每个短序列,甚至在检查它是正面还是负面之前,都是有道理的。
这个问题的问题是不可重现/不可测试。https://stackoverflow.com/help/minimal-reproducible-example
不要掉入这个陷阱:
0, 0, 0, ..., 0, 1, 1, 1, 0, ..., 0, 0, 0
A B C D
一些训练方法可能会将 A..C 和 B..D 绘制为两个“不同”的样本,尽管中间有共享的正拉伸。避免这样做。
鉴于您将其设计为 LSTM 解决方案,这表明对样本 B..D 的训练可能不是很有帮助,因为在我们看到积极因素之前状态没有太多时间发展。考虑将正样本限制为在样本的初始 N% 中始终为负。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句