Chapter 1
InputConvolution Layer
.
.
.
N+2P
T+2P
F
RC
RC
SC
Weights
.
.
.
.
.
.
.
Fp
.
.
OutputConvolution Layer
.
.
.
Np
Tp
Fp
Preface
InputConvolution Layer
.
.
.
N+2P
T+2P
F
RC
RC
SC
Weights
.
.
.
.
.
.
.
Fp
.
.
OutputConvolution Layer
.
.
.
Np
Tp
Fp
Istarted learning about deep learning fundamentals in February 2017.
At this time, I knew nothing about backpropagation, and was com-
pletely ignorant about the differences between a Feedforward, Con-
volutional and a Recurrent Neural Network.
As I navigated through the humongous amount of data available on deep
learning online, I found myself quite frustrated when it came to really un-
derstand what deep learning is, and not just applying it with some available
library.
In particular, the backpropagation update rules are seldom derived, and
never in index form. Unfortunately for me, I have an "index" mind: seeing a 4
Dimensional convolution formula in matrix form does not do it for me. Since
I am also stupid enough to like recoding the wheel in low level programming
languages, the matrix form cannot be directly converted into working code
either.
I therefore started some notes for my personal use, where I tried to rederive
everything from scratch in index form.
I did so for the vanilla Feedforward network, then learned about L1 and
L2 regularization , dropout[1], batch normalization[2], several gradient de-
scent optimization techniques... Then turned to convolutional networks, from
conventional single digit number of layer conv-pool architectures[3] to recent
VGG[4] ResNet[5] ones, from local contrast normalization and rectification to
bacthnorm... And finally I studied Recurrent Neural Network structures[6],
from the standard formulation to the most recent LSTM one[7].
As my work progressed, my notes got bigger and bigger, until a point when
I realized I might have enough material to help others starting their own deep
learning journey.
5