我的问题是,为实现小批量SGD算法,应对SGD算法进行哪些更改。
在书中,汤姆·米切尔(Tom Mitchell)撰写的Machine Learning,GD和SGD算法得到了很好的解释。这是本书中有关SGD反向传播算法的摘录:
我知道SGD
和mini-batch SGD
之间的区别在于,在前者中,我们使用一个训练示例来更新(外部while循环的)每次迭代中的权重,而在后者中,在每次迭代中都应使用一批训练示例。但是我仍然不知道如何更改以下算法以解决此更改。
这是我认为的样子,但无法通过我在网络上关注的几个教程来证实。
Until the termination condition is met, Do
batch <- get next batch
For each <x,t> in batch, Do
1- Propagate the input forward through the network.
2- d_k += o_k(1 - o_k)(t_k - o_k)
3- d_h += o_h(1 - o_h)sum(w_kh * d_k)
For each network weight w_ij, Do
w_ji += etha * d_j * x_ij
非常感谢您的帮助!