神经网络训练集

4
我的问题涉及监督式人工神经网络(ANN)中的训练集。
如您所知,训练集由输入和期望输出的成对数据组成。
训练阶段本身如下:
for every pair in a training set

-we input the first value of the pair and calculate the output error i.e. how far is the generated output from the desired output, which is the second value of the pair

-based on that error value we use backpropagate algorithm to calculate weight gradients and update weights of ANN 

end for

现在假设训练集中有 pair1, pair2, ...pair m, ...,我们先拿出 pair1,产生一些错误,更新权重,然后拿出pair2,以此类推,到达pair m,产生一些错误,更新权重。我的问题是,如果 pair m 后的权重更新会消除一些权重更新,甚至包括之前发生的更新呢?例如,如果 pair m 将消除之后发生的 pair1pair2 的权重更新,那么尽管 ANN 可以为输入 m 产生合理的输出,但它会遗忘对 pair1pair2 的更新,因此输入 1 和 2 的结果将很差,这样训练还有什么意义?除非我们在 pair m 之后再次用 pair1pair2 进行训练。
3个回答

3
例如,如果对m进行配对以消除在配对1、配对2或两者之后发生的权重更新,则尽管ANN将为输入m生成合理的输出,但它会有点忘记对配对1和配对2的更新,而且输入1和2的结果将很差,那么训练的目的是什么?
训练神经网络的目的是找到一组权重,使其能够适应所有可能的输入值并得出所需的输出。在反向传播过程中,您正在遍历误差曲面,以便最终停留在误差低于误差阈值的区域内。请记住,在进行一组输入的误差反向传播时,并不意味着神经网络自动识别该特定输入并立即产生确切的响应。当您进行误差反向传播时,这只意味着您已更改了权重,以使您的神经网络更好地识别该特定输入(即,误差持续降低)。
因此,如果先提供配对1,然后再提供配对2,那么配对2可能会在某种程度上抵消变化。然而,从长远来看,神经网络的权重将倾向于正确识别所有输入。问题在于,您不能关注特定输入/输出集的特定训练尝试的结果,并担心这些更改将被抵消。正如我之前提到的,当您训练神经网络时,您正在遍历一个误差曲面,以找到误差最低的位置。将其视为沿着具有一堆山和谷的景观行走。想象一下您没有地图,而是有一个特殊的指南针,告诉您应该朝什么方向移动,以及移动多远。该指南针基本上试图将您引导到该景观中的最低点。现在,该指南针也不太了解该景观,因此在尝试将您发送到最低点时,它可能会稍微偏离正确方向(即,使您上山一段距离),但之后它会尝试纠正自己。从长远来看,您最终将到达该景观中的最低点(除非您处于局部极小值,即低点,但不是最低点)。

3
无论何时进行监督训练,您都应该通过训练数据集运行多个(甚至数千个)回合。每一次通过训练数据集的回合称为一个“纪元”。
在监督训练期间,还有两种不同的更新神经网络参数的方法。批处理训练和随机训练。批处理训练是对数据集进行一次循环,累计整个数据集的总误差,并在累积所有误差时仅更新参数(权重)一次。随机训练是您所描述的方法,其中为每个输入和期望输出对调整权重。
在几乎所有情况下,如果训练数据集相对于一般情况来说比较具有代表性,则应优先选择随机训练而非批处理训练。随机训练在100个案例中有99个案例胜过批处理训练!(需要引用:-)。 (简单的异或训练案例和其他玩具问题是例外)
回到您的问题(适用于随机训练):是的,第二组确实可以使权重与第一组相反方向进行调整。但是,对于两种情况,所有权重都相反地进行调整并不太可能。然而,由于您将通过每个纪元运行多个回合,因此效果将在每个回合中减弱。您还应该为每个时期随机排列一对。(使用某种Fisher-Yates算法)。这将进一步减少效果。
下一个提示:将基准数据集与训练数据分开。对于每个n周期的训练,请使用基准集对神经网络进行基准测试。也就是计算此基准数据集中对的总误差。当误差不降低时,就是停止训练的时候了。
祝你好运!

0

如果您正在执行随机梯度下降(SGD),那么这种情况可能不会发生,因为对于第一对的参数更新将在计算第二对的参数更新之前生效。这就是为什么 SGD 可能会更快地收敛。

如果您同时使用所有数据(甚至一部分数据)来计算参数更新,则这两个对可能会互相抵消。然而,这并不是坏事,因为显然,这两个数据点对提供了冲突的信息。这就是为什么批量反向传播通常被认为更加稳定的原因。


谢谢您的评论,但说实话,到目前为止,我从未听说过参数更新同时使用所有数据或其中一部分的策略:) 这是一种流行的策略吗? - mangusta
是的,我会说这是一种非常流行的策略;可能比随机梯度下降更受欢迎。它们具有不同的最优解,因为它们不使用真正的梯度,而是使用一个近似值:该近似值是通过将所有梯度相加得到的。 - danelliottster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接