Brief history of convolutional neural networks, variants of residual networks, and their best practices