我的问题关于神经网络的训练。我已经搜索过这个问题,但没有找到好的解释。
首先,如何计算均方误差?(我知道这听起来很傻,但我真的不明白)
其次:当神经网络进行训练时,我们输入一个训练集,其中包含许多对(输入及其期望输出)。那么,我们应该在什么时候计算均方误差?是当我们已经处理完所有对时,还是对每对都计算?
如果是对每对计算,那么在处理完训练集中的所有对之前,误差可能已经达到最小期望误差。
第三:epoch值是随着训练集的一次循环增加,还是在处理每对(输入和期望输出)时增加?(我知道这听起来也很傻,但请包涵)
非常感谢
回答:
我的问题关于神经网络的训练。我已经搜索过这个问题,但没有找到好的解释。
网络和文献中有很多好的解释,一个这样的例子可能是Haykin的书:《神经网络与学习机器》
首先,如何计算均方误差?(我知道这听起来很傻,但我真的不明白)
用最简单的术语来说,均方误差定义为
sum_i 1/n (desired_output(i) - model_output(i))^2
所以你只需计算错误(你的输出与期望输出之间的差异)的平方的平均值。
那么,我们应该在什么时候计算均方误差?是当我们已经处理完所有对时,还是对每对都计算?
两种方法都使用,一种称为批量学习,另一种是在线学习。所以所有后续问题都有一个答案:“两者都正确,取决于你是使用批量还是在线学习”。选择哪一种?显然——这取决于具体情况,但为了简单起见,我建议从批量学习开始(所以你计算所有训练样本的误差,然后进行更新)。