工作过程:训练总样本个数是固定的,batch_size大小也是固定的,但组成一个mini_batch的样本可以从总样本中随机选择。将mini_batch中每个样本都经过前向传播和反向传播,求出每个样本在每一层每个神经元关于w和b的梯度。注意:同一个mini_batch中所有样本经过网络时,网络的参数是相同的(因为每次梯度更新是经过一个mini_batch后才更新的,不是一个样本就更新)。然后对于每一层每个神经元,把mini_batch中所有样本关于这个神经元的w和b梯度求和取平均就是这个神经元最终需要更新的梯度。neural networks and deep learning的43页有这个的公式。
batch GD:整个样本做一个mini-batch
SGD:一个样本做一个mini-batch
mini-batch:k个样本做一个mini-batch
online GD
他们是都基于梯度下降。
现在的SGD一般都指mini-batch gradient descent。caffe里面的SGD指的也是mini-batch GD。