我正在训练一个具有相似和不同对象对的连体神经网络。对象的特征是关于它们是否包含某些属性的二进制数据(每个对象 2048 个特征)。
然后,我将数据集拆分为训练、验证和测试集 (60:20:20)。之后,我自己准备了数据集,通过随机配对对象相应地产生 50% 相似和 50% 不同的对,我通过随机生成额外的对来扩充训练集中的数据(导致 100,000 个不同的实例,再次是一个平衡的数据集(50:50),而验证集有 1,000 个实例)。然后我继续训练连体网络并最终估计两个输出之间的余弦距离,以获得一个相似性度量,该度量与我的标签与二进制交叉熵损失函数进行比较。使用的学习率很低(lr = 0.0001),我正在使用 Adam 优化器。我尝试过生产非常小的批次(batch_size = 25),添加 dropout 并增加实例数量以避免过度拟合,但无论如何,该模型似乎都不能很好地概括(见图)。我想知道是否有人可以给我任何关于正在发生的事情的提示 - 以及为什么在学习过程中可以欣赏到这样的颠簸 - 。
