Slide 28
Slide 28 text
CoffeeScript
updateMiniBatch: (miniBatch, eta) ->
nablaB = (Matrix.zeros(b.rows, b.cols) for b in @biases)
nablaW = (Matrix.zeros(w.rows, w.cols) for w in @weights)
for [x, y] in miniBatch
[deltaNablaB, deltaNablaW] = @backprop(x, y)
nablaB = (nb.plus(dnb) for [nb, dnb] in _.zip(nablaB, deltaNablaB))
nablaW = (nw.plus(dnw) for [nw, dnw] in _.zip(nablaW, deltaNablaW))
@weights = (w.minus(nw.mulEach(eta / miniBatch.length))
for [w, nw] in _.zip(@weights, nablaW))
@biases = (b.minus(nb.mulEach(eta / miniBatch.length))
for [b, nb] in _.zip(@biases, nablaB))