优化神经网络输入以实现收敛
Optimizing Neural Network Input for Convergence
我正在为图像构建神经网络 classificaion/recognition。 10 类 中的每一个都有 1000 张图像(30x30 灰度)。不同类的图片放在不同的文件夹中。我打算使用反向传播算法来训练网络。
- 我将训练样本输入网络的顺序会影响它的收敛吗?
- 我应该按随机顺序提供训练样本吗?
首先我来回答你的问题
- 是会影响收敛
- 是的,我们鼓励这样做,这叫做随机排列
但是为什么呢?
引用自here
大多数 ANN 软件中的一个常见示例是 IRIS data,其中您有 150 个实例组成您的数据集。这些是关于三种不同类型的鸢尾花(Versicola、Virginics 和 Setosa)。该数据集包含四个变量的测量值(萼片长度和宽度,以及花瓣长度和宽度)。这些案例的排列方式是,第一个案例 50 个案例属于 Setosa,而案例 51-100 个案例属于 Versicola,其余案例属于 Virginica。现在,您不想做的是以该顺序将它们呈现给网络。换句话说,您不希望网络看到 Versicola class 中的所有 50 个实例,然后是 Virginics class 中的所有 50 个实例,然后是 Setosa class 中的所有 50 个实例。如果没有随机化,您的训练集将不会代表所有 classes,因此不会收敛,也无法概括。
另一个例子,过去我也有每个字母的100张图片(26 classes),
当我按顺序(按字母表)训练它们时,它未能收敛,但在我随机化后它很容易收敛,因为神经网络可以概括字母表。
我正在为图像构建神经网络 classificaion/recognition。 10 类 中的每一个都有 1000 张图像(30x30 灰度)。不同类的图片放在不同的文件夹中。我打算使用反向传播算法来训练网络。
- 我将训练样本输入网络的顺序会影响它的收敛吗?
- 我应该按随机顺序提供训练样本吗?
首先我来回答你的问题
- 是会影响收敛
- 是的,我们鼓励这样做,这叫做随机排列
但是为什么呢?
引用自here
大多数 ANN 软件中的一个常见示例是 IRIS data,其中您有 150 个实例组成您的数据集。这些是关于三种不同类型的鸢尾花(Versicola、Virginics 和 Setosa)。该数据集包含四个变量的测量值(萼片长度和宽度,以及花瓣长度和宽度)。这些案例的排列方式是,第一个案例 50 个案例属于 Setosa,而案例 51-100 个案例属于 Versicola,其余案例属于 Virginica。现在,您不想做的是以该顺序将它们呈现给网络。换句话说,您不希望网络看到 Versicola class 中的所有 50 个实例,然后是 Virginics class 中的所有 50 个实例,然后是 Setosa class 中的所有 50 个实例。如果没有随机化,您的训练集将不会代表所有 classes,因此不会收敛,也无法概括。
另一个例子,过去我也有每个字母的100张图片(26 classes), 当我按顺序(按字母表)训练它们时,它未能收敛,但在我随机化后它很容易收敛,因为神经网络可以概括字母表。