**This is my network represented in matrices:** *(a dot represents an arbitrary number)* [![enter image description here][1]][1] **Feed-forwarding:** [![enter image description here][2]][2] **Backpropagation** [![enter image description here][3]][3] **The question** ---------- [![enter image description here][4]][4] **What went wrong?** $(\partial E)/(\partial b^3)$ should equal a matrix of dimensions: $3 \times 1$, in order to make the subtraction possible by the former b^3. The batch size of 5, however, made the dimensions of the $b^3$ matrix equal to $3 \times 5$, which is problematic as the subtraction (update of $b^3$) now isn't possible. **What is the proper way to update a bias?** *I suppect it's because I have to intialize my bias with the shape of* (neuronsInGivenLayer, batch_size) *as opposed to* (neuronsInGivenLayer, 1) *?* [1]: https://i.sstatic.net/vHmBQ.png [2]: https://i.sstatic.net/zWi13.png [3]: https://i.sstatic.net/f0fvQ.png [4]: https://i.sstatic.net/7BPRo.png