我知道这可能已经解决了很多次,但我不断听到矛盾的观点,我不确定我应该如何去计算损失函数,而且,如何计算一个小批量的梯度。
假设我有一个简单的线性回归人工神经网络模型,有一个输入,一个输出,没有激活函数。权重矩阵(W)和偏置矩阵(B)的形状为(1,1)。如果我将数据批量处理成大小为32的小批量,那么输入矩阵(X)的维数将为(1,32)。向前道具的执行没有任何障碍:它只是W.X + B,因为形状是兼容的。然后它产生的预测可以表示为矩阵Yi,形状为(1,32)。然后将代价计算为模型输出和真值的均方误差。在这种情况下,只有一个输出,所以一个训练示例的成本只是(truth - predicting)2。
所以我在这一点上对几个方面感到困惑。a)计算小批量的平均成本,然后计算平均成本w.r.t对权重和偏差的导数;还是b)计算小批量中每个例子的单独成本,然后计算成本的导数,再计算权重和偏差,最后求和梯度并平均它们?
由于梯度是一个线性算子,研究生(成本(x1) +…+成本(xn))/n) =(研究生(成本(x1)) +…研究生(成本(xn)))/n。