向网络呈现构成训练集的观察结果(输入向量)的顺序仅在一方面重要——随机排列的观察结果根据响应变量与有序排列相比,强烈推荐。
例如,假设您的训练集有 150 个观测值,并且对于每个观测值,响应变量是三个类标签(I 类、II 类或 III 类)之一,因此观测值 1-50 属于 I 类,51-100 属于 I 类。 II 级,III 级 101-50。您不想做的是以该顺序将它们呈现给网络。换句话说,您不希望网络看到 I 类中的所有 50 个观测值,然后是 II 类中的所有 50 个观测值,然后是 III 类中的所有 50 个观测值。
训练分类器期间发生了什么?最初,您向网络呈现四个观察结果,无序 [0, 1, 1, 0]。
我想知道在网络无法收敛的情况下输入向量的顺序是什么?如果它是 [1, 1, 0, 0] 或 [0, 1, 1, 1],这与上面提到的这个有据可查的经验规则是一致的。
另一方面,我想知道这条规则是否适用于你的情况。原因是你的训练实例太少,即使顺序是 [1, 1, 0, 0],在多个时期进行训练(我确信你必须这样做)将意味着这个顺序看起来更“随机”而不是我上面提到的示例(即 [1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0] 是网络如何呈现三个时期的训练数据) 。
诊断问题的一些建议:
正如我上面提到的,查看非收敛情况下输入向量的排序——它们是按响应变量排序的吗?
在不收敛的情况下,查看您的权重矩阵(我假设您有两个)。查找任何非常大的值(例如,其他值的 100 倍,或初始化值的 100 倍)。大的权重可能会导致溢出。