我对使用多个训练样本更新权重的过程感到非常困惑。
假设我有{(x1,y1),(x2,y2),(x3,y3)}(总共3个样本)
我有一个神经网络,激活函数为S型。
我首先随机设置权重并传播第一个样本(x1,y1),然后我将得出假设的结果,当然会有一些误差。 (向前传播结束)
然后,我可以使用反向传播算法针对从最后一个激活层到第一层的每个权重计算成本函数的导数,并相应地更新所有权重。 (向后传播结束),并且如果我进行传播,那么我将获得更好的结果(错误更少)。在这里,我不确定必须运行多少次。 (可能是一些未知数,但是直到我得到最低的误差函数值)。
但对我来说,更令人困惑的是,如果我为首次训练输入设置了很好的权重。一旦我插入(x2,y2),我相信已经设置的权重并不能保证(x2,y2)的任何成功结果。会发生一些错误,我应该再次进行反向传播,直到我获得与input2最低的错误分数。但是除非我们确信我们的第一个工作(对第一个样本的正向传播和向后传播)尽管通过input2进行了更改后仍以某种方式保留在权重中,否则对我来说没有意义处理多个样本。< / p>
因为不可能同时运行三个样本,而是运行一个样本并以一个周期更新权重,所以我想确信运行第二个样本不会破坏权重的第一次更新结果
你能给我个主意吗?