我正在构建一个用于图像分类/识别的神经网络。每个类别有1000张图片(30×30灰度),不同类别的图片被放置在不同的文件夹中。我计划使用反向传播算法来训练网络。
- 我输入训练样本的顺序是否会影响网络的收敛?
- 我应该以随机顺序输入训练样本吗?
回答:
首先,我将回答你的问题
- 是的,它会影响收敛
- 是的,建议这样做,这被称为随机排列
但为什么呢?
参考自 这里
大多数人工神经网络软件中的一个常见例子是IRIS数据集,其中包含150个数据实例。这些数据涉及三种不同类型的鸢尾花(Versicola、Virginics和Setosa)。数据集中包含四个变量的测量值(花萼长度和宽度,花瓣长度和宽度)。数据的排列方式是前50个案例属于Setosa,51到100个案例属于Versicola,其余属于Virginica。现在,你不希望以这种顺序将它们呈现给网络。换句话说,你不希望网络先看到Versicola类的所有50个实例,然后是Virginics类的所有50个实例,最后是Setosa类的所有50个实例。如果没有随机化,你的训练集将无法代表所有类别,因此无法收敛,也无法实现泛化。
另一个例子,在过去,我也有每个字母(26个类别)100张图片,当我按顺序(每个字母)训练时,它未能收敛,但在随机化后,它很容易就收敛了,因为神经网络能够对字母进行泛化。