内容简介:Implementation of Backpropagation algo on mini-batches with step by step execution of equations.You must be thinking, another Backprop from scratch blog? Well kinda yes but I thought this through and came up with something that you can use to tinker around
Implementation of Backpropagation algo on mini-batches with step by step execution of equations.
Apr 19 ·4min read
You must be thinking, another Backprop from scratch blog? Well kinda yes but I thought this through and came up with something that you can use to tinker around along with easy to understand equations that you usually write down to understand the algorithm.
This blog will focus on implementing the Backpropagation algorithm step-by-step on mini-batches of the dataset. There are plenty of tutorials and blogs to demonstrate the backpropagation algorithm in detail and all the logic behind calculus and algebra happening. So I’ll skip that part and cut to equations in math and implementation using Python (coz why not).
Why from scratch?
This has been a long time community question as to why we should implement an algorithm from scratch even if it’s been readily available to put to use by almost all frameworks. Evidently while using certain high-level frameworks you can’t even notice backpropagation doing its magic. To understand it upside down, in and out completely you should once try to make your hands dirty with this stuff. Backpropagation is something on which experimentation can be done while playing around.
Why Mini-Batches?
The reason behind mini-batches is simple. It saves memory and processing time by dividing data into mini-batches and supply the algorithm a fraction of the dataset on each iteration of the training loop. Feeding a 10000x10000 matrix at once would not only blow up memory but would take a long time to run. Instead, bringing it down to 50 per iteration would not only reduce memory usage but you can track progress.
Note-This is different from the stochastic method where we take a stratified sample from data for each class and train on that assuming the model would generalize.
Implementation time!
This is the head of the data I’ll be using for this implementation.
The target variable here is Occupancy which is a categorical variable (0/1).
This will be the architecture we’ll be coding.
Algorithm:
for i:=1 to i:=m:
- Perform Forward propagation or Forward pass to calculate Activation values of neurons in each layer.
2. Backpropagation step:
- Calculate the error term (MSE or LogLoss or your wish) using the label in the data:
- Error terms in the hidden layers are calculated using:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出MFC (第二版)
侯俊杰 / 华中科技大学出版社 / 2001-1 / 80.00元
《深入浅出MFC》分为四大篇。第一篇提出学习MFC程序设计之前的必要基础,包括Widnows程序的基本观念以及C++的高阶议题。“学前基础”是相当主观的认定,但作者是甚于自己的学习经验以及教学经验,其挑选应该颇具说服力。第二篇介绍Visual C++整合环境开发工具。此篇只是提纲挈领,并不企图取代Visual C++使用手册;然而对于软件使用的老手,此篇或已足以帮助掌握Visual C++整合环境......一起来看看 《深入浅出MFC (第二版)》 这本书的介绍吧!