Neural network 如何计算RNN/LSTM中的损失?

Neural network 如何计算RNN/LSTM中的损失?,neural-network,lstm,recurrent-neural-network,Neural Network,Lstm,Recurrent Neural Network,我通过练习时间序列训练数据来学习LSTM是如何工作的(输入是一个特征列表,输出是一个标量)。 在计算RNN/LSTM的损失时,有一个我无法理解的问题: 如何计算损失?它是在每次我给nn新的输入时计算的,还是通过所有给定的输入计算的,然后返回,答案不取决于神经网络模型。 这取决于您选择的优化方法 如果使用批处理梯度下降,则损失将在整个训练集中平均。这对于神经网络来说通常是不切实际的,因为训练集太大,不适合RAM,而且每个优化步骤都需要花费大量时间 在随机梯度下降中,计算每个新输入的损失。这种方法的

我通过练习时间序列训练数据来学习LSTM是如何工作的(输入是一个特征列表,输出是一个标量)。 在计算RNN/LSTM的损失时,有一个我无法理解的问题:


如何计算损失?它是在每次我给nn新的输入时计算的,还是通过所有给定的输入计算的,然后返回,答案不取决于神经网络模型。 这取决于您选择的优化方法

如果使用批处理梯度下降,则损失将在整个训练集中平均。这对于神经网络来说通常是不切实际的,因为训练集太大,不适合RAM,而且每个优化步骤都需要花费大量时间

在随机梯度下降中,计算每个新输入的损失。这种方法的问题是噪音太大

在小批量梯度下降法中,损失在每个新的小批量上取平均值——一个小的固定大小输入的子样本。其中一些方法通常在实践中使用

因此,问题的答案取决于您选择的小批量


(图片来源)

@种子答案正确。但是,在LSTM或任何RNN体系结构中,每个实例在所有时间步长上的损失都是累积的。换句话说,你会(L0@t0, L1@t1, ... LT@tT)对于输入批次中的每个样本。为批处理中的每个实例分别添加这些损失。最后平均每个输入实例的损失,以获得当前批次的平均损失


有关更多信息,请访问:

我似乎对这个问题考虑过了。顺便说一句,非常感谢你帮助我