I still don't know how deconvolution works after watching CS231 lecture, I need help https://www.youtube.com/watch?v=ByjaPdWXKJ4 This is the time-stamped video of "deconvolution". I can understand normal convolution but not so much with upsampling convolution. In the video he explained that you plop down the filter and use each individual scalar as the weight to apply to each value in the filter. I am having a hard time understanding how he got an output shape of 4x4? Is there a special formula for calculating the output for "upconvolution"? I am also confused on the padding and how it affects upconvolution?

My crappy paint image
OP here:

https://towardsdatascience.com/types-of-convolutions-in-deep-learning-717013397f4d
This has helped me understand how deconvolutional layer or transposed convolution works! Note to self don't google deconvolution or upconvolution google transposed convolution instead.

Update 2: http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html

It turns out "deconvolution" is just convolution but with different arithmetics. You can take the transpose or add enough padding so that 

1) You can upsample instead of downsampling.

2) Keep the previously linked relation, what I mean is you need to make sure each upsampled filter still contains a symbolic link with the smaller input.