训练样本的成本函数和小批量的成本函数之间的区别

Difference between the cost function of a training sample and the cost function of a mini-batch

假设我有一个名为 'NN' 的神经网络,具有 500 个权重和偏差(总参数 =500)。

对于一个训练样本:通过'NN'引入,它吐出一个输出(Out1),输出与训练标签进行比较,通过反向传播算法有一个小的变化(正或负)在 'NN' 的每个参数中。成本函数由一个维度为 1x500 的向量表示,所有的小修改都是通过反向传播算法获得的。

假设 mini_batch_size=10

对于一个小批量:10 个训练样本中的每一个都提供一个 1x500 维度的成本函数。

为了更好地可视化和解释,假设我们创建了一个 10x500 的矩阵(称为 M),其中每一行都是每个训练样本的成本函数。

问题:对于mini-batch训练样例,minibatch最终的cost function是不是所有列元素的平均值的结果?

PD。 如果问题不够清楚,我留下了一些代码来说明我的确切意思。

for j=1:500
Cost_mini_batch(j)=sum(M(:,j))/10
end

Cost_mini_batch 的尺寸为 1x500。

"Cost"指loss,即Out1与训练标签的误差。

The cost function is represented by a vector of dimentions 1x500, with all the small modifications obtained by the backpropagation algorithm.

这叫做"gradient",不是成本函数。

Question: For the mini-batch training example, Is the final cost function of the minibatch the result of the average of all the column elements?

是的,minibatch 的梯度和成本函数都是 minibatch 中每个示例的梯度的平均值。